DHT based on the [lip2p kademlia spec](https://github.com/libp2p/specs/tree/master/kad-dht)
b843c8823c
Merge the add/get providers messages with the discovery v5 messages inside of the discovery v5 code. Discovery v5 uses RLP encoding, while the add/get providers uses protobufs, as per the libp2p spec. The merge of these two uses RLP on the outer wrapper of the message, and a protobuf-encoded blob on the “inside” for the add/get providers messages only. Eventually this needs to change so that we use protobufs only. There is still some code in the libp2pdht/dht directory, which is being read from the discovery v5 directory. Eventually these two should merge as well. |
||
---|---|---|
.github/workflows | ||
libp2pdht | ||
tests | ||
.gitignore | ||
LICENSE-APACHEv2 | ||
LICENSE-MIT | ||
README.md | ||
codecov.yml | ||
libp2pdht.nim | ||
libp2pdht.nimble |
README.md
A DHT implementation for Dagger
](https://codecov.io/gh/status-im/nim-libp2p-dht)
This DHT implementation is aiming to provide a DHT for Dagger with the following properties
- flexible transport usage with
- fast UDP based operation
- fallback to TCP-based operation (maybe though libp2p)
- support operation on top of libp2p
- flexible message encoding that plays well with the above transports
- provide node lookup, content storage/lookup, and provider storage/lookup operations
- roughly follow the libp2p-dht specifications from https://github.com/libp2p/specs/tree/master/kad-dht
- provide compatibility mode with the above specs
Current implementation is based on nim-eth's Discovery v5 implementation. Base files were copied from nim-eth@779d767b024175a51cf74c79ec7513301ebe2f46