Skip to content

v0.16.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:39
5a3ba9f

This release adds client-server mode to Kademlia. Light clients and DHT crawlers can now run without responding to queries and without being added to remote routing tables, so they no longer pollute the DHT.
It also fixes a set of panics around local provider records: an active local registration can no longer be evicted or expired out of the memory store, and removing one no longer panics.

Note that KademliaEvent is not #[non_exhaustive] and #611 adds a PeersDiscovered variant to it, so every exhaustive match over KademliaEvent needs a new arm to keep compiling.

Note that max_provider_keys now applies separately to the provider keys of remote peers and to the keys this node provides itself, so a node can hold up to twice that many keys in total.

Added

  • kad: Implement client-server mode for Kademlia (#611)

Changed

  • kad: KademliaEvent gained a PeersDiscovered variant; the enum is not #[non_exhaustive], so exhaustive matches over it must add an arm (#611)

Fixed

  • kad: Prevent local provider eviction, expiration, and removal panics; max_provider_keys now applies separately to remote provider keys and local registrations (up to 2× in total), and rejected registrations are reported (#666, #665)