- changed the CI to use prebuild nimble binary and to use lock file.
- the nim version is determined by the lock file
- there were some packages that have version range but at the same time
corresponding versions were not tagged at the repo. I have hardcoded the version
of the package commit. Later when the version is tagged in the source repo the
version range can be returned.
* Adds bunch of traces
* Adds a lot more traces
* more traces
* adds prints to resolve tree
* Cleanup of trace log messages
* Restore some log messages
* track nim-libp2p's unstable branch and nim-bearssl's master branch
refactor accordingly: mainly switching from `import bearssl` to
`import bearssl/rand`, `BrHmacDrbgContext` to `HmacDrbgContext`, and related
changes
* fix ambiguous identifier
* nim 1.4 is deprecated
Co-authored-by: Michael Bradley, Jr <michaelsbradleyjr@gmail.com>
* initial providers manager implementation
* misc license update
* spelling
* rename provider tests
* add provider tests
* reexport provider manager
* only update provider record if it changed
* small bug in getProvByKey
* pass providers to both constructors
* fix records retrieval
* disable cache during tests
* avoid redefining data
* adding back tests with cache
* use `.errorOption`
* proper err msg unpacking
Closes: #2.
Libp2p supports multiple cryptographic curves, however we have currently only implented support for secp256k1.
This needs to be run with the compiler flag `libp2p_pki_schemes` set to `secp256k1`. If running the tests, this can be run like so: `nimble test —libp2p_pki_schemes=secp256k1` to put secp as the first supported crypto scheme.
This patch adds a findNode message sending the actual
target ID as in traditional Kademlia lookup. This in
contrast to the actual findNode message that send information
about the distance only, leading to more secure but slower lookups.
Having both primitives allows us to select which to use per use case.
Current naming is findNode for the distance based message and
findNodeFast for the message added in this patch.
Previous version was very conservative about adding nodes to the
routing table, requiring a full request/response message exchange
initiated by us.
Here we also add the node as 'seen' if the whoareyou/handshake
exchange was successful.
This significantly speeds up bootstreap from 0
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
Swap all instances of Record with SignedPeerRecord.
Allow for `SignedPeerRecord`s to be updated by updating the first multiaddress in the `PeerRecord`. This also increments the `seqNo` in the `PeerRecord` only if the address was actually updated.
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.