Documentation ¶
Overview ¶
Package dual provides an implementation of a split or "dual" dht, where two parallel instances are maintained for the global internet and the local LAN respectively.
Index ¶
- Constants
- type DHT
- func (dht *DHT) Bootstrap(ctx context.Context) (err error)
- func (dht *DHT) Close() error
- func (dht *DHT) FindPeer(ctx context.Context, pid peer.ID) (pi peer.AddrInfo, err error)
- func (dht *DHT) FindProvidersAsync(ctx context.Context, key cid.Cid, count int) (ch <-chan peer.AddrInfo)
- func (dht *DHT) GetPublicKey(ctx context.Context, pid peer.ID) (ci.PubKey, error)
- func (dht *DHT) GetRoutingTableDiversityStats() []peerdiversity.CplDiversityStats
- func (d *DHT) GetValue(ctx context.Context, key string, opts ...routing.Option) (result []byte, err error)
- func (dht *DHT) Provide(ctx context.Context, key cid.Cid, announce bool) (err error)
- func (dht *DHT) PutValue(ctx context.Context, key string, val []byte, opts ...routing.Option) (err error)
- func (dht *DHT) SearchValue(ctx context.Context, key string, opts ...routing.Option) (ch <-chan []byte, err error)
- func (dht *DHT) WANActive() bool
- type Option
Constants ¶
const LanExtension protocol.ID = "/lan"
LanExtension is used to differentiate local protocol requests from those on the WAN DHT.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DHT ¶
DHT implements the routing interface to provide two concrete DHT implementationts for use in IPFS that are used to support both global network users and disjoint LAN usecases.
func New ¶
New creates a new DualDHT instance. Options provided are forwarded on to the two concrete IpfsDHT internal constructions, modulo additional options used by the Dual DHT to enforce the LAN-vs-WAN distinction. Note: query or routing table functional options provided as arguments to this function will be overriden by this constructor.
func (*DHT) Bootstrap ¶
Bootstrap allows callers to hint to the routing system to get into a Boostrapped state and remain there.
func (*DHT) FindPeer ¶
FindPeer searches for a peer with given ID Note: with signed peer records, we can change this to short circuit once either DHT returns.
func (*DHT) FindProvidersAsync ¶
func (dht *DHT) FindProvidersAsync(ctx context.Context, key cid.Cid, count int) (ch <-chan peer.AddrInfo)
FindProvidersAsync searches for peers who are able to provide a given key
func (*DHT) GetPublicKey ¶
GetPublicKey returns the public key for the given peer.
func (*DHT) GetRoutingTableDiversityStats ¶ added in v0.9.0
func (dht *DHT) GetRoutingTableDiversityStats() []peerdiversity.CplDiversityStats
GetRoutingTableDiversityStats fetches the Routing Table Diversity Stats.
func (*DHT) GetValue ¶
func (d *DHT) GetValue(ctx context.Context, key string, opts ...routing.Option) (result []byte, err error)
GetValue searches for the value corresponding to given Key.
func (*DHT) PutValue ¶
func (dht *DHT) PutValue(ctx context.Context, key string, val []byte, opts ...routing.Option) (err error)
PutValue adds value corresponding to given Key.
type Option ¶ added in v0.9.0
type Option func(*config) error
Option is an option used to configure the Dual DHT.
func DHTOption ¶ added in v0.9.0
DHTOption applies the given DHT options to both the WAN and the LAN DHTs.
func LanDHTOption ¶ added in v0.9.0
LanDHTOption applies the given DHT options to the LAN DHT.
func WanDHTOption ¶ added in v0.9.0
WanDHTOption applies the given DHT options to the WAN DHT.