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
.
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.
Constants
- The
k
parameter of the Kademlia specification.