mirror of
https://github.com/codex-storage/nim-codex-dht.git
synced 2025-02-12 11:56:56 +00:00
The previous version was based on the assumption that that the future of waitMessage is triggered in the event loop before the next message arrives. This seems to be true with UDP, where a full cycle of the loop handles only one datagram, but not true with other transports, such as the in-memory emulation. This led to the following behavior: - 1st response arrives, reqId removed, waitMessage called - 2nd ... last messages arrive, can't find reqId, so dropped - waitMessage competes, re-adding reqId, but too late The new version solves this by collecting SPRs explicitly Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
A DHT implementation for Dagger
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 status-im/nim-eth@779d767b024175a51cf74c79ec7513301ebe2f46
Description
Languages
Nim
100%