dhtproto
is a library that contains the protocol for the Distributed Hash
Table (DHT), including:
- The DHT client (
src.dhtproto.client
). - Base classes for the protocol handling parts of the DHT node
(
src.dhtproto.node
). - A simple, "fake" DHT node, for use in tests (
src.fakedht
). - A turtle env extension (
src.turtle.env.Dht
) providing a fake DHT node for use in tests, including methods to inspect and modify its contents. - A thorough test of the DHT protocol, using the client to connect to a node.
The test is run, in this repo, on a fake node, but it can be reused in other
repos to test real node implementations. (
src.dhttest
)
The code in this repo is currently in transition. There exist two parallel
client/server architectures in the repo, a new architecture (dubbed "neo") --
based on the core code in the swarm/neo
package -- and a legacy architecture
-- based on the core code located in the other packages of swarm
. The neo
protocol is being introduced in stages, progressively adding features to the
core client and server code over a series of alpha releases in a separate branch
(named neo
).
Note that the DHT client and node defined in this repo support both neo and legacy features.
When sufficient neo features have been implemented and the legacy protocol is no longer in active use, the legacy protocol will be deprecated and eventually removed.
Dependency | Version |
---|---|
ocean | v5.0.x |
swarm | v6.0.x |
turtle | v10.0.x |
dhtproto's versioning follows Neptune.
This means that the major version is increased for breaking changes, the minor version is increased for feature releases, and the patch version is increased for bug fixes that don't cause breaking changes.
- Major branch development period: 6 months
- Maintained minor versions: 1 most recent
Major | Initial release date | Supported until | Notes |
---|---|---|---|
v15.x.x | v15.0.0: 04/06/2019 | TBD |
See the guide for contributing to Neptune-versioned libraries.