mirror of
https://github.com/logos-storage/logos-storage-nim-dht.git
synced 2026-07-27 17:53:15 +00:00
* Update to 2.2.8 * Reduce chronicles requirement version * Restore Nim 2.2.4 in nimble * Update ci * Update ci version * Try to remove windows * Restore previous action * Try to upgrade nimble version * Try to fix dependencies issue * Try to downgrade nimble * Try 0.20.0 * Add nimble lock * Remove nimble custom install * Trying something * Fix syntax * debug * Restore dependencies version and update chronos upper bound version * Remove debug statements * Remove debug statements * Remove debug statements * Update codexdht/private/eth/p2p/discoveryv5/providers/maintenance.nim Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com> * Update codexdht/private/eth/p2p/discoveryv5/providers/maintenance.nim Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com> * Refactor to use questionable * Revert unneeded changes * Remove spaces --------- Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com>
A DHT implementation for Logos Storage
This DHT implementation is aiming to provide a DHT for Logos Storage with the following properties
- flexible secure transport usage with
- fast UDP based operation
- eventual fallback to TCP-based operation (maybe though libp2p)
- eventually 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
- eventually 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
Building
This repo is setup to use Nimble lockfiles. This requires Nimble 0.14+ which isn't installed by default when this was written. If nimble -v reports 0.13.x then you will need to install Nimble 0.14. Note that using Nimble 0.14 changes how Nimble behaves!
Nimble 0.14 can be install by:
nimble install nimble@0.14.2
After this you can setup your Nimble environment. Note that this will build the pinned version of Nim! The first run can take ~15 minutes.
nimble setup # creates a nimble.paths used for rest of Nimble commands
nimble testAll
You can also run tasks directly:
nim testAll
Description
Languages
Nim
100%