ipfsutil

package
v2.278.1 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2021 License: Apache-2.0, MIT Imports: 65 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const DefaultCloseTimeout = time.Second * 5
View Source
const UnknownProtocol = "UnknownProtocol"

Variables

View Source
var DefaultSwarmListeners = []string{
	"/ip4/0.0.0.0/tcp/0",
	"/ip6/::/tcp/0",
	"/ip4/0.0.0.0/udp/0/quic",
	"/ip6/::/udp/0/quic",
}
View Source
var ErrExpectedEOF = errors.New("red data when expecting EOF")

Functions

func CreateMockedRepo added in v2.57.1

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

func CustomRoutingOption added in v2.257.0

func CustomRoutingOption(mode p2p_dht.ModeOpt, opts ...p2p_dht.Option) func(
	ctx context.Context,
	host p2p_host.Host,
	dstore ds.Batching,
	validator p2p_record.Validator,
	bootstrapPeers ...p2p_peer.AddrInfo,
) (p2p_routing.Routing, error)

func EnableConnLogger added in v2.97.0

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

func FullClose added in v2.212.4

func FullClose(s network.Stream) error

func InjectPubSubAPI added in v2.109.0

func LoadRepoFromPath added in v2.57.1

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

func MultiaddrIsEqual added in v2.210.1

func MultiaddrIsEqual(a Multiaddrs, b Multiaddrs) bool

MultiaddrIsEqual return true if both slice are equal

func NewDatastoreKeystore

func NewDatastoreKeystore(ds datastore.Datastore) keystore.Keystore

func NewIPFSMobile added in v2.257.0

func NewIPFSMobile(ctx context.Context, repo *ipfs_mobile.RepoMobile, opts *MobileOptions) (*ipfs_mobile.IpfsMobile, error)

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(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)

func ParseAndResolveMaddrs added in v2.278.0

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

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 Config added in v2.257.0

type Config func(cfg *ipfs_config.Config) ([]p2p.Option, error)

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 CoreAPIMock

type CoreAPIMock interface {
	API() ExtendedCoreAPI

	PubSub() *pubsub.PubSub
	Tinder() tinder.Service
	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 DiscoveryNotifee

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

func (*DiscoveryNotifee) HandlePeerFound

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

type EventMonitor added in v2.210.1

type EventMonitor int
const (
	TypeEventMonitorPeerUnknown EventMonitor = iota
	TypeEventMonitorPeerJoined
	TypeEventMonitorPeerLeaved
)

type EventTracer added in v2.210.1

type EventTracer interface {
	EventTracerOption() ps.Option
}

func NewPubsubMonitor added in v2.210.1

func NewPubsubMonitor(l *zap.Logger, h host.Host) (EventTracer, error)

type EvtPubSubTopic added in v2.210.1

type EvtPubSubTopic struct {
	EventType EventMonitor
	Topic     string
	PeerID    peer.ID
}

type ExtendedCoreAPI added in v2.59.0

type ExtendedCoreAPI interface {
	ipfs_interface.CoreAPI
	ipfs_host.Host

	ConnMgr() ConnMgr
}

func InjectPubSubCoreAPIExtendedAdaptater added in v2.109.0

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

func NewExtendedCoreAPI added in v2.59.0

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

func NewExtendedCoreAPIFromNode added in v2.257.0

func NewExtendedCoreAPIFromNode(node *ipfs_core.IpfsNode) (ExtendedCoreAPI, error)

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 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 MobileOptions added in v2.257.0

type MobileOptions struct {
	IpfsConfigPatch Config

	HostOption    ipfs_p2p.HostOption
	RoutingOption ipfs_p2p.RoutingOption

	HostConfigFunc    ipfs_mobile.HostConfigFunc
	RoutingConfigFunc ipfs_mobile.RoutingConfigFunc

	ExtraOpts map[string]bool
}

type Multiaddrs added in v2.210.1

type Multiaddrs []ma.Multiaddr

func NewMultiaddrs added in v2.210.1

func NewMultiaddrs(m []ma.Multiaddr) Multiaddrs

func (Multiaddrs) Len added in v2.210.1

func (ms Multiaddrs) Len() int

Len is the number of elements in the collection.

func (Multiaddrs) Less added in v2.210.1

func (ms Multiaddrs) Less(i, j int) bool

Less reports whether the element with index i should sort before the element with index j.

func (Multiaddrs) Swap added in v2.210.1

func (ms Multiaddrs) Swap(i, j int)

Swap swaps the elements with indexes i and j.

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 PubsubMonitor added in v2.210.1

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

func (*PubsubMonitor) Emit added in v2.210.1

func (pt *PubsubMonitor) Emit(e *EvtPubSubTopic)

func (*PubsubMonitor) EventTracerOption added in v2.210.1

func (pt *PubsubMonitor) EventTracerOption() ps.Option

func (*PubsubMonitor) Trace added in v2.210.1

func (pt *PubsubMonitor) Trace(e *ps_pb.TraceEvent)

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