Module libp2p_kad::kbucket
source · Expand description
Implementation of a Kademlia routing table as used by a single peer participating in a Kademlia DHT.
The entry point for the API of this module is a KBucketsTable
.
Pending Insertions
When the bucket associated with the Key
of an inserted entry is full
but contains disconnected nodes, it accepts a PendingEntry
.
Pending entries are inserted lazily when their timeout is found to be expired
upon querying the KBucketsTable
. When that happens, the KBucketsTable
records
an AppliedPending
result which must be consumed by calling take_applied_pending
regularly and / or after performing lookup operations like entry
and closest
.
Re-exports
pub use super::bucket::K_VALUE;
Structs
An entry that is not present in any bucket.
The result of applying a pending node to a bucket, possibly
replacing an existing node.
A distance between two keys in the DHT keyspace.
An immutable by-reference view of a bucket entry.
A cloned, immutable view of an entry that is either present in a bucket
or pending insertion.
A reference to a bucket in a
KBucketsTable
.A
KBucketsTable
represents a Kademlia routing table.A
Key
in the DHT keyspace with preserved preimage.The raw bytes of a key in the DHT keyspace.
A
Node
in a bucket, representing a peer participating
in the Kademlia DHT together with an associated value (e.g. contact
information).An immutable by-reference view of a
Node
.An entry waiting for a slot to be available in a bucket.
An entry present in a bucket.
Enums
A reference into a single entry of a
KBucketsTable
.The result of inserting an entry into a bucket.
The status of a node in a bucket.