Skip to content

Distributed Hash Table protocol definition, client, fake node, and tests

License

Notifications You must be signed in to change notification settings

sociomantic-tsunami/dhtproto

Repository files navigation

Description

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)

A Tale of Two Protocols

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.

Dependencies

Dependency Version
ocean v5.0.x
swarm v6.0.x
turtle v10.0.x

Versioning

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.

Support Guarantees

  • Major branch development period: 6 months
  • Maintained minor versions: 1 most recent

Maintained Major Branches

Major Initial release date Supported until Notes
v15.x.x v15.0.0: 04/06/2019 TBD  

Contributing

See the guide for contributing to Neptune-versioned libraries.

About

Distributed Hash Table protocol definition, client, fake node, and tests

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages