A DHT based on Discv5 with libp2p provider records support
Go to file
Giuliano Mega 2299317116
Merge pull request #91 from codex-storage/chore/update-libp2p-repo
Update repo for libp2p
2024-03-18 19:40:01 -03:00
.github fix name for nimble archive for OSX 2024-03-18 18:48:04 -03:00
codexdht Update CleanupInterval to 24 hours (#88) 2023-11-21 17:14:15 -08:00
tests Fix timeout and delete (#86) 2023-11-17 14:01:16 -08:00
vendor Bump deps (#77) 2023-07-21 15:29:38 -07:00
.gitignore Fix timeout and delete (#86) 2023-11-17 14:01:16 -08:00
LICENSE-APACHEv2 initial commit based on nim-eth@779d767b024175a51cf74c79ec7513301ebe2f46 2022-02-14 01:51:28 +01:00
LICENSE-MIT initial commit based on nim-eth@779d767b024175a51cf74c79ec7513301ebe2f46 2022-02-14 01:51:28 +01:00
README.md Update CI workflow trigger branch (#82) 2023-08-26 09:31:31 +03:00
atlas.lock Bump deps (#77) 2023-07-21 15:29:38 -07:00
build.nims Fix logging format (#87) 2023-11-20 09:34:40 -08:00
codecov.yml update codecov path to be informational 2022-03-22 11:00:26 +11:00
codexdht.nim renaming imports 2023-07-12 14:58:29 -07:00
codexdht.nimble bump release (#79) 2023-07-25 19:56:25 -07:00
config.nims Fix nimble install (#78) 2023-07-21 15:51:42 -06:00
nimble.lock update repo for libp2p 2024-03-18 18:42:48 -03:00

README.md

A DHT implementation for Codex

License: Apache License: MIT Stability: experimental CI (GitHub Actions) codecov

This DHT implementation is aiming to provide a DHT for Codex 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

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