Documentation ¶
Overview ¶
Package ipfsutil contains helpers around IPFS (logging, datastore, networking, core API, ...).
Index ¶
- Constants
- Variables
- func CreateMockedRepo(dstore ipfs_ds.Batching) (ipfs_repo.Repo, error)
- func CustomRoutingOption(mode p2p_dht.ModeOpt, opts ...p2p_dht.Option) ...
- func EnableConnLogger(ctx context.Context, logger *zap.Logger, h host.Host)
- func FullClose(s network.Stream) error
- func InjectPubSubAPI(api ipfs_interface.CoreAPI, ps ipfs_interface.PubSubAPI) ipfs_interface.CoreAPI
- func LoadRepoFromPath(path string) (ipfs_repo.Repo, error)
- func MultiaddrIsEqual(a Multiaddrs, b Multiaddrs) bool
- func NewDatastoreKeystore(ds datastore.Datastore) keystore.Keystore
- func NewIPFSMobile(ctx context.Context, repo *ipfs_mobile.RepoMobile, opts *MobileOptions) (*ipfs_mobile.IpfsMobile, error)
- func NewNamespacedDatastore(child ds.Datastore, prefix ds.Key) ds.Batching
- func NewPubSubAPI(ctx context.Context, logger *zap.Logger, disc p2p_disc.Discovery, ...) ipfs_interface.PubSubAPI
- func OptionLocalRecord(node *ipfs_core.IpfsNode, api ipfs_interface.CoreAPI) error
- func OptionMDNSDiscovery(ctx context.Context, node *ipfs_core.IpfsNode, api ipfs_interface.CoreAPI) error
- func ParseAddr(addr string) (ma.Multiaddr, error)
- func ParseAddrs(addrs ...string) ([]ma.Multiaddr, error)
- func ParseAndResolveIpfsAddr(ctx context.Context, addr string) (*peer.AddrInfo, error)
- func ParseAndResolveRdvpMaddrs(ctx context.Context, log *zap.Logger, addrs []string) ([]*peer.AddrInfo, error)
- func TestingRDVP(ctx context.Context, t testing.TB, h host.Host) (*rendezvous.RendezvousService, func())
- func TestingRepo(t testing.TB, datastore ds.Datastore) ipfs_repo.Repo
- type BandwidthCollector
- type Config
- type ConnMgr
- type CoreAPIMock
- type DiscoveryNotifee
- type EventMonitor
- type EventTracer
- type EvtPubSubTopic
- type ExtendedCoreAPI
- type HostCollector
- func (cc *HostCollector) ClosedStream(n network.Network, s network.Stream)
- func (cc *HostCollector) Collect(cmetric chan<- prometheus.Metric)
- func (cc *HostCollector) Connected(n network.Network, c network.Conn)
- func (cc *HostCollector) Describe(ch chan<- *prometheus.Desc)
- func (cc *HostCollector) Disconnected(n network.Network, c network.Conn)
- func (cc *HostCollector) Listen(network.Network, ma.Multiaddr)
- func (cc *HostCollector) ListenClose(network.Network, ma.Multiaddr)
- func (cc *HostCollector) OpenedStream(n network.Network, s network.Stream)
- type LocalRecord
- func (lr *LocalRecord) ClosedStream(network.Network, network.Stream)
- func (lr *LocalRecord) Connected(net network.Network, c network.Conn)
- func (lr *LocalRecord) Disconnected(network.Network, network.Conn)
- func (lr *LocalRecord) Listen(network.Network, ma.Multiaddr)
- func (lr *LocalRecord) ListenClose(network.Network, ma.Multiaddr)
- func (lr *LocalRecord) OpenedStream(network.Network, network.Stream)
- type MobileOptions
- type Multiaddrs
- type PubSubAPI
- func (ps *PubSubAPI) Ls(ctx context.Context) ([]string, error)
- func (ps *PubSubAPI) Peers(ctx context.Context, opts ...ipfs_iopts.PubSubPeersOption) ([]p2p_peer.ID, error)
- func (ps *PubSubAPI) Publish(ctx context.Context, topic string, msg []byte) error
- func (ps *PubSubAPI) Subscribe(ctx context.Context, topic string, opts ...ipfs_iopts.PubSubSubscribeOption) (ipfs_interface.PubSubSubscription, error)
- type PubsubMonitor
- type TestingAPIOpts
Constants ¶
const DefaultCloseTimeout = time.Second * 5
const UnknownProtocol = "UnknownProtocol"
Variables ¶
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",
}
var ErrExpectedEOF = errors.New("red data when expecting EOF")
Functions ¶
func CreateMockedRepo ¶ added in v2.57.1
func CustomRoutingOption ¶ added in v2.257.0
func EnableConnLogger ¶ added in v2.97.0
func InjectPubSubAPI ¶ added in v2.109.0
func InjectPubSubAPI(api ipfs_interface.CoreAPI, ps ipfs_interface.PubSubAPI) ipfs_interface.CoreAPI
func MultiaddrIsEqual ¶ added in v2.210.1
func MultiaddrIsEqual(a Multiaddrs, b Multiaddrs) bool
MultiaddrIsEqual return true if both slice are equal
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 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 ParseAndResolveIpfsAddr ¶ added in v2.53.1
func ParseAndResolveRdvpMaddrs ¶ added in v2.149.0
func TestingRDVP ¶ added in v2.50.0
func TestingRDVP(ctx context.Context, t testing.TB, h host.Host) (*rendezvous.RendezvousService, func())
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 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 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
func NewPubsubMonitor ¶ added in v2.210.1
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
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) 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) Subscribe ¶ added in v2.109.0
func (ps *PubSubAPI) Subscribe(ctx context.Context, topic string, opts ...ipfs_iopts.PubSubSubscribeOption) (ipfs_interface.PubSubSubscription, error)
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)