Crate libp2p_kad
source · [−]Expand description
Implementation of the libp2p-specific Kademlia protocol.
See specification for details.
Important Discrepancies
- Peer Discovery with Identify In other libp2p implementations, the
Identify protocol might be seen as a core protocol. Rust-libp2p
tries to stay as generic as possible, and does not make this assumption.
This means that the Identify protocol must be manually hooked up to Kademlia through calls
to
Kademlia::add_address
. If you choose not to use the Identify protocol, and do not provide an alternative peer discovery mechanism, a Kademlia node will not discover nodes beyond the network’s boot nodes. Without the Identify protocol, existing nodes in the kademlia network cannot obtain the listen addresses of nodes querying them, and thus will not be able to add them to their routing table.
Re-exports
pub use protocol::KadConnectionType;
pub use record::store;
pub use record::ProviderRecord;
pub use record::Record;
Modules
Implementation of a Kademlia routing table as used by a single peer participating in a Kademlia DHT.
The Kademlia connection protocol upgrade and associated message types.
Records and record storage abstraction of the libp2p Kademlia DHT.
Structs
The successful result of publishing a provider record.
A non-empty list of (unique) addresses of a peer in the routing table.
The successful result of Kademlia::bootstrap
.
The successful result of Kademlia::get_closest_peers
.
The successful result of Kademlia::get_providers
.
The successful result of Kademlia::get_record
.
Kademlia
is a NetworkBehaviour
that implements the libp2p
Kademlia protocol.
The configuration for the Kademlia
behaviour.
A record either received by the given peer or retrieved from the local record store.
The successful result of Kademlia::put_record
.
Unique identifier for an active query.
A mutable reference to a running query.
An immutable reference to a running query.
Execution statistics of a query.
Enums
The context of a QueryInfo::AddProvider
query.
The possible errors when publishing a provider record.
The phases of a QueryInfo::AddProvider
query.
The error result of Kademlia::bootstrap
.
The error result of Kademlia::get_closest_peers
.
The error result of Kademlia::get_providers
.
The error result of Kademlia::get_record
.
Information about a received and handled inbound request.
The configurable strategies for the insertion of peers and their addresses into the k-buckets of the Kademlia routing table.
The configuration for Kademlia “write-back” caching after successful
lookups via Kademlia::get_record
.
The events produced by the Kademlia
behaviour.
The configurable filtering strategies for the acceptance of incoming records.
The context of a QueryInfo::PutRecord
query.
The error result of Kademlia::put_record
.
The phases of a QueryInfo::PutRecord
query.
Information about a running query.
The results of Kademlia queries.
A quorum w.r.t. the configured replication factor specifies the minimum number of distinct nodes that must be successfully contacted in order for a query to succeed.
Constants
The α
parameter of the Kademlia specification.
The k
parameter of the Kademlia specification.
Type Definitions
The result of publishing a provider record.
The result of Kademlia::bootstrap
.
The result of Kademlia::get_closest_peers
.
The result of Kademlia::get_providers
.
The result of Kademlia::get_record
.
The result of Kademlia::put_record
.