Versions in this module Expand all Collapse all v0 v0.12.4 Jul 29, 2021 v0.12.3 Jul 29, 2021 Changes in this version + const DefaultPrefix + var DefaultBootstrapPeers []multiaddr.Multiaddr + var DefaultProtocols = []protocol.ID + var ErrNoPeersQueried = errors.New("failed to query any peers") + var ErrReadTimeout = net.ErrReadTimeout + var LookupEventBufferSize = 16 + var ProtocolDHT protocol.ID = "/ipfs/kad/1.0.0" + func GetDefaultBootstrapPeerAddrInfos() []peer.AddrInfo + func NewRTPeerDiversityFilter(h host.Host, maxPerCpl, maxForTable int) *rtPeerIPGroupFilter + func PrivateQueryFilter(_ interface{}, ai peer.AddrInfo) bool + func PrivateRoutingTableFilter(dht interface{}, p peer.ID) bool + func PublicQueryFilter(_ interface{}, ai peer.AddrInfo) bool + func PublicRoutingTableFilter(dht interface{}, p peer.ID) bool + func PublishLookupEvent(ctx context.Context, ev *LookupEvent) + func Quorum(n int) routing.Option + func RegisterForLookupEvents(ctx context.Context) (context.Context, <-chan *LookupEvent) + type IpfsDHT struct + ProviderManager *providers.ProviderManager + Validator record.Validator + func New(ctx context.Context, h host.Host, options ...Option) (*IpfsDHT, error) + func NewDHT(ctx context.Context, h host.Host, dstore ds.Batching) *IpfsDHT + func NewDHTClient(ctx context.Context, h host.Host, dstore ds.Batching) *IpfsDHT + func (dht *IpfsDHT) Bootstrap(ctx context.Context) error + func (dht *IpfsDHT) Close() error + func (dht *IpfsDHT) Context() context.Context + func (dht *IpfsDHT) FindLocal(id peer.ID) peer.AddrInfo + func (dht *IpfsDHT) FindPeer(ctx context.Context, id peer.ID) (_ peer.AddrInfo, err error) + func (dht *IpfsDHT) FindProviders(ctx context.Context, c cid.Cid) ([]peer.AddrInfo, error) + func (dht *IpfsDHT) FindProvidersAsync(ctx context.Context, key cid.Cid, count int) <-chan peer.AddrInfo + func (dht *IpfsDHT) ForceRefresh() <-chan error + func (dht *IpfsDHT) GetClosestPeers(ctx context.Context, key string) ([]peer.ID, error) + func (dht *IpfsDHT) GetPublicKey(ctx context.Context, p peer.ID) (ci.PubKey, error) + func (dht *IpfsDHT) GetRoutingTableDiversityStats() []peerdiversity.CplDiversityStats + func (dht *IpfsDHT) GetValue(ctx context.Context, key string, opts ...routing.Option) (_ []byte, err error) + func (dht *IpfsDHT) Host() host.Host + func (dht *IpfsDHT) Mode() ModeOpt + func (dht *IpfsDHT) PeerID() peer.ID + func (dht *IpfsDHT) PeerKey() []byte + func (dht *IpfsDHT) Ping(ctx context.Context, p peer.ID) error + func (dht *IpfsDHT) Process() goprocess.Process + func (dht *IpfsDHT) Provide(ctx context.Context, key cid.Cid, brdcst bool) (err error) + func (dht *IpfsDHT) PutValue(ctx context.Context, key string, value []byte, opts ...routing.Option) (err error) + func (dht *IpfsDHT) RefreshRoutingTable() <-chan error + func (dht *IpfsDHT) RoutingTable() *kb.RoutingTable + func (dht *IpfsDHT) SearchValue(ctx context.Context, key string, opts ...routing.Option) (<-chan []byte, error) + type KeyKadID struct + Kad kbucket.ID + Key string + func NewKeyKadID(k string) *KeyKadID + type LookupEvent struct + ID uuid.UUID + Key *KeyKadID + Node *PeerKadID + Request *LookupUpdateEvent + Response *LookupUpdateEvent + Terminate *LookupTerminateEvent + func NewLookupEvent(node peer.ID, id uuid.UUID, key string, request *LookupUpdateEvent, ...) *LookupEvent + type LookupTerminateEvent struct + Reason LookupTerminationReason + func NewLookupTerminateEvent(reason LookupTerminationReason) *LookupTerminateEvent + type LookupTerminationReason int + const LookupCancelled + const LookupCompleted + const LookupStarvation + const LookupStopped + func (r LookupTerminationReason) MarshalJSON() ([]byte, error) + func (r LookupTerminationReason) String() string + type LookupUpdateEvent struct + Cause *PeerKadID + Heard []*PeerKadID + Queried []*PeerKadID + Source *PeerKadID + Unreachable []*PeerKadID + Waiting []*PeerKadID + func NewLookupUpdateEvent(cause peer.ID, source peer.ID, heard []peer.ID, waiting []peer.ID, ...) *LookupUpdateEvent + type ModeOpt = dhtcfg.ModeOpt + const ModeAuto + const ModeAutoServer + const ModeClient + const ModeServer + type Option = dhtcfg.Option + func BootstrapPeers(bootstrappers ...peer.AddrInfo) Option + func BootstrapPeersFunc(getBootstrapPeers func() []peer.AddrInfo) Option + func BucketSize(bucketSize int) Option + func Concurrency(alpha int) Option + func Datastore(ds ds.Batching) Option + func DisableAutoRefresh() Option + func DisableProviders() Option + func DisableValues() Option + func MaxRecordAge(maxAge time.Duration) Option + func Mode(m ModeOpt) Option + func NamespacedValidator(ns string, v record.Validator) Option + func ProtocolExtension(ext protocol.ID) Option + func ProtocolPrefix(prefix protocol.ID) Option + func ProvidersOptions(opts []providers.Option) Option + func QueryFilter(filter QueryFilterFunc) Option + func Resiliency(beta int) Option + func RoutingTableFilter(filter RouteTableFilterFunc) Option + func RoutingTableLatencyTolerance(latency time.Duration) Option + func RoutingTablePeerDiversityFilter(pg peerdiversity.PeerIPGroupFilter) Option + func RoutingTableRefreshPeriod(period time.Duration) Option + func RoutingTableRefreshQueryTimeout(timeout time.Duration) Option + func V1ProtocolOverride(proto protocol.ID) Option + func Validator(v record.Validator) Option + type PeerKadID struct + Kad kbucket.ID + Peer peer.ID + func NewPeerKadID(p peer.ID) *PeerKadID + func NewPeerKadIDSlice(p []peer.ID) []*PeerKadID + func OptPeerKadID(p peer.ID) *PeerKadID + type QueryFilterFunc = dhtcfg.QueryFilterFunc + type RouteTableFilterFunc = dhtcfg.RouteTableFilterFunc