ipfsutil

package
v2.182.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2020 License: Apache-2.0, MIT Imports: 64 Imported by: 0

Documentation

Overview

Package ipfsutil contains helpers around IPFS (logging, datastore, networking, core API, ...).

Index

Constants

View Source
const UnknownProtocol = "UnknownProtocol"

Variables

This section is empty.

Functions

func CreateBuildConfig added in v2.53.1

func CreateBuildConfig(repo ipfs_repo.Repo, opts *CoreAPIConfig) (*ipfs_node.BuildCfg, error)

func CreateMockedRepo added in v2.57.1

func CreateMockedRepo(dstore ipfs_ds.Batching) (ipfs_repo.Repo, error)

func EnableConnLogger added in v2.97.0

func EnableConnLogger(ctx context.Context, logger *zap.Logger, h host.Host)

func InjectPubSubAPI added in v2.109.0

func LoadRepoFromPath added in v2.57.1

func LoadRepoFromPath(path string) (ipfs_repo.Repo, error)

func NewDatastoreKeystore

func NewDatastoreKeystore(ds datastore.Datastore) keystore.Keystore

func NewNamespacedDatastore

func NewNamespacedDatastore(child ds.Datastore, prefix ds.Key) ds.Batching

func NewPubSubAPI added in v2.109.0

func NewPubSubAPI(ctx context.Context, logger *zap.Logger, disc p2p_disc.Discovery, ps *p2p_pubsub.PubSub) ipfs_interface.PubSubAPI

func OptionLocalRecord added in v2.94.0

func OptionLocalRecord(ctx context.Context, node *ipfs_core.IpfsNode, api ipfs_interface.CoreAPI) error

OptionLocalRecord is given to CoreAPIOption.Options when the ipfs node setup

func OptionMDNSDiscovery

func OptionMDNSDiscovery(ctx context.Context, node *ipfs_core.IpfsNode, api ipfs_interface.CoreAPI) error

func ParseAddr added in v2.138.0

func ParseAddr(addr string) (ma.Multiaddr, error)

func ParseAddrs added in v2.138.0

func ParseAddrs(addrs ...string) ([]ma.Multiaddr, error)

func ParseAndResolveIpfsAddr added in v2.53.1

func ParseAndResolveIpfsAddr(ctx context.Context, addr string) (*peer.AddrInfo, error)

parseIpfsAddr is a function that takes in addr string and return ipfsAddrs

func ParseAndResolveRdvpMaddrs added in v2.149.0

func ParseAndResolveRdvpMaddrs(ctx context.Context, log *zap.Logger, addrs []string) ([]*peer.AddrInfo, error)

func ServeHTTPApi added in v2.70.0

func ServeHTTPApi(logger *zap.Logger, node *core.IpfsNode, rootDirectory string) error

ServeHTTPApi collects options, creates listener, prints status message and starts serving requests

func ServeHTTPWebui added in v2.70.0

func ServeHTTPWebui(listenerAddr string, logger *zap.Logger) func()

func TestingRDVP added in v2.50.0

func TestingRDVP(ctx context.Context, t testing.TB, h host.Host) (*rendezvous.RendezvousService, func())

func TestingRepo added in v2.31.1

func TestingRepo(t testing.TB, datastore ds.Datastore) ipfs_repo.Repo

Types

type BandwidthCollector added in v2.182.0

type BandwidthCollector struct {
	// contains filtered or unexported fields
}

func NewBandwidthCollector added in v2.182.0

func NewBandwidthCollector(reporter *metrics.BandwidthCounter) *BandwidthCollector

func (*BandwidthCollector) Collect added in v2.182.0

func (bc *BandwidthCollector) Collect(cmetric chan<- prometheus.Metric)

func (*BandwidthCollector) Describe added in v2.182.0

func (bc *BandwidthCollector) Describe(ch chan<- *prometheus.Desc)

type ConnMgr added in v2.70.0

type ConnMgr interface {
	TagPeer(peer.ID, string, int)
	UntagPeer(p peer.ID, tag string)
	Protect(id peer.ID, tag string)
	Unprotect(id peer.ID, tag string) (protected bool)
	GetTagInfo(p peer.ID) *connmgr.TagInfo
}

type CoreAPIConfig added in v2.53.1

type CoreAPIConfig struct {
	BootstrapAddrs []string
	SwarmAddrs     []string
	APIAddrs       []string
	Announce       []string
	NoAnnounce     []string
	APIConfig      config.API

	DisableCorePubSub bool
	HostConfig        func(host.Host, p2p_routing.Routing) error
	ExtraLibp2pOption p2p.Option
	DHTOption         []p2p_dht.Option
	IpfsConfigPatch   IpfsConfigPatcher

	Routing ipfs_libp2p.RoutingOption
	Host    ipfs_libp2p.HostOption

	Options []CoreAPIOption
}

type CoreAPIMock

type CoreAPIMock interface {
	API() ExtendedCoreAPI

	PubSub() *pubsub.PubSub
	Tinder() tinder.Driver
	MockNetwork() p2p_mocknet.Mocknet
	MockNode() *ipfs_core.IpfsNode
	Close()
}

CoreAPIMock implements ipfs.CoreAPI and adds some debugging helpers

func TestingCoreAPI

func TestingCoreAPI(ctx context.Context, t testing.TB) (CoreAPIMock, func())

TestingCoreAPI returns a fully initialized mocked Core API. If you want to do some tests involving multiple peers you should use `TestingCoreAPIUsingMockNet` with the same mocknet instead.

func TestingCoreAPIUsingMockNet

func TestingCoreAPIUsingMockNet(ctx context.Context, t testing.TB, opts *TestingAPIOpts) (CoreAPIMock, func())

TestingCoreAPIUsingMockNet returns a fully initialized mocked Core API with the given mocknet

type CoreAPIOption added in v2.53.1

type DiscoveryNotifee

type DiscoveryNotifee struct {
	// contains filtered or unexported fields
}

func (*DiscoveryNotifee) HandlePeerFound

func (n *DiscoveryNotifee) HandlePeerFound(pi peer.AddrInfo)

type ExtendedCoreAPI added in v2.59.0

type ExtendedCoreAPI interface {
	ipfs_interface.CoreAPI

	NewStream(ctx context.Context, p peer.ID, pids ...protocol.ID) (network.Stream, error)
	SetStreamHandler(pid protocol.ID, handler network.StreamHandler)
	RemoveStreamHandler(pid protocol.ID)
	ConnMgr() ConnMgr
}

func InjectPubSubCoreAPIExtendedAdaptater added in v2.109.0

func InjectPubSubCoreAPIExtendedAdaptater(exapi ExtendedCoreAPI, ps ipfs_interface.PubSubAPI) ExtendedCoreAPI

func NewConfigurableCoreAPI

func NewConfigurableCoreAPI(ctx context.Context, bcfg *ipfs_node.BuildCfg, opts ...CoreAPIOption) (ExtendedCoreAPI, *ipfs_core.IpfsNode, error)

NewConfigurableCoreAPI returns an IPFS CoreAPI from a provided ipfs_node.BuildCfg

func NewCoreAPI added in v2.53.1

func NewCoreAPIFromDatastore added in v2.57.1

func NewCoreAPIFromDatastore(ctx context.Context, ds ds.Batching, cfg *CoreAPIConfig) (ExtendedCoreAPI, *ipfs_core.IpfsNode, error)

func NewCoreAPIFromRepo added in v2.57.1

func NewCoreAPIFromRepo(ctx context.Context, repo ipfs_repo.Repo, cfg *CoreAPIConfig) (ExtendedCoreAPI, *ipfs_core.IpfsNode, error)

func NewExtendedCoreAPI added in v2.59.0

func NewExtendedCoreAPI(host ipfs_host.Host, api ipfs_interface.CoreAPI) ExtendedCoreAPI

type HostCollector added in v2.182.0

type HostCollector struct {
	// contains filtered or unexported fields
}

func NewHostCollector added in v2.182.0

func NewHostCollector(h host.Host) *HostCollector

func (*HostCollector) ClosedStream added in v2.182.0

func (cc *HostCollector) ClosedStream(n network.Network, s network.Stream)

func (*HostCollector) Collect added in v2.182.0

func (cc *HostCollector) Collect(cmetric chan<- prometheus.Metric)

func (*HostCollector) Connected added in v2.182.0

func (cc *HostCollector) Connected(n network.Network, c network.Conn)

func (*HostCollector) Describe added in v2.182.0

func (cc *HostCollector) Describe(ch chan<- *prometheus.Desc)

func (*HostCollector) Disconnected added in v2.182.0

func (cc *HostCollector) Disconnected(n network.Network, c network.Conn)

func (*HostCollector) Listen added in v2.182.0

func (cc *HostCollector) Listen(network.Network, ma.Multiaddr)

func (*HostCollector) ListenClose added in v2.182.0

func (cc *HostCollector) ListenClose(network.Network, ma.Multiaddr)

func (*HostCollector) OpenedStream added in v2.182.0

func (cc *HostCollector) OpenedStream(n network.Network, s network.Stream)

type IpfsConfigPatcher added in v2.174.0

type IpfsConfigPatcher func(*config.Config) error

func ChainIpfsConfigPatch added in v2.174.0

func ChainIpfsConfigPatch(ps ...IpfsConfigPatcher) IpfsConfigPatcher

ChainIpfsConfigPatch will execute multiple IpfsConfigPatcher from the first to the last. They can be safely be nilled and will just be ignored.

type LocalRecord added in v2.94.0

type LocalRecord struct {
	// contains filtered or unexported fields
}

func (*LocalRecord) ClosedStream added in v2.94.0

func (lr *LocalRecord) ClosedStream(network.Network, network.Stream)

called when a stream closed

func (*LocalRecord) Connected added in v2.94.0

func (lr *LocalRecord) Connected(net network.Network, c network.Conn)

called when a connection opened

func (*LocalRecord) Disconnected added in v2.94.0

func (lr *LocalRecord) Disconnected(network.Network, network.Conn)

called when a connection closed

func (*LocalRecord) Listen added in v2.94.0

func (lr *LocalRecord) Listen(network.Network, ma.Multiaddr)

called when network starts listening on an addr

func (*LocalRecord) ListenClose added in v2.94.0

func (lr *LocalRecord) ListenClose(network.Network, ma.Multiaddr)

called when network stops listening on an addr

func (*LocalRecord) OpenedStream added in v2.94.0

func (lr *LocalRecord) OpenedStream(network.Network, network.Stream)

called when a stream opened

type PubSubAPI added in v2.109.0

type PubSubAPI struct {
	*p2p_pubsub.PubSub
	// contains filtered or unexported fields
}

func (*PubSubAPI) Ls added in v2.109.0

func (ps *PubSubAPI) Ls(ctx context.Context) ([]string, error)

Ls lists subscribed topics by name

func (*PubSubAPI) Peers added in v2.109.0

func (ps *PubSubAPI) Peers(ctx context.Context, opts ...ipfs_iopts.PubSubPeersOption) ([]p2p_peer.ID, error)

Peers list peers we are currently pubsubbing with

func (*PubSubAPI) Publish added in v2.109.0

func (ps *PubSubAPI) Publish(ctx context.Context, topic string, msg []byte) error

Publish a message to a given pubsub topic

func (*PubSubAPI) Subscribe added in v2.109.0

Subscribe to messages on a given topic

type TestingAPIOpts added in v2.50.0

type TestingAPIOpts struct {
	Logger    *zap.Logger
	Mocknet   p2p_mocknet.Mocknet
	RDVPeer   p2p_peer.AddrInfo
	Datastore ds.Batching
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL