Eric Mastro
b843c8823c
feat: merge add/get providers with discv5
...
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.
2022-03-17 14:56:54 +11:00
Eric Mastro
cbcaf926a1
feat: Swap PeerRecord for SignedPeerReocrd (PR comments)
...
- Add example addresses in tests
- Change bootnode private key in tests
- bump libp2p to get access to SignedPeerRecord.encode
2022-03-10 17:00:33 +11:00
Eric Mastro
35026762b4
feat: Swap PeerRecords with SignedPeerRecords
...
Providers now add/get SignedPeerRecords to/from the DHT.
Changed the PeerId calculation to use the public key of the discovery node.
2022-03-09 15:03:16 +11:00
Eric Mastro
4a2a6878b4
Remove nim development compiler version from CI
2022-03-08 13:55:53 +11:00
Eric Mastro
422511b961
chore: Add codecov yml settings
...
Specify `informational: true` to prevent CI failure with a reduction in code coverage. We are not at a point yet to need this.
2022-03-08 13:55:53 +11:00
Csaba Kiraly
b65e0aa7ef
comment out test instead of using skip()
...
after calling skip(), the test was still
executed and failed. Better to disable the
whole test.
2022-03-07 15:11:31 +11:00
Csaba Kiraly
e8a8c28848
Merge pull request #16 from status-im/build/add-ci-action-2
...
Add CI Actions
2022-03-06 16:07:47 +01:00
Eric Mastro
0d0da71b65
build: Add CI Actions
...
Add CI workflow to run tests.
Add code coverage workflow that publishes results to CodeCov.
Add CI and coverage badges to README.
Bump asynctest to allow for `setupAll` and `teardownAll`.
Add local coverage nimble task.
Combine tests in to a testAll file.
2022-03-04 18:04:50 +11:00
Eric Mastro
55a43b2d89
chore: bump asynctest, use all/each test harness nouns
...
Using `setupAll`/`setupEach` and `teardownAll`/`teardownEach` for test harnesses.
2022-02-25 14:06:43 +11:00
Eric Mastro
acd03ff831
feat: reorg project to add nimble build system
...
Project has been updated to use nimble as a build system. All required dependencies have been added.
All nim-eth mirrored files were added to a private folder in the libp2pdht module. A libp2pdht/discv5 module was added to alias the nim-eth modules (which will change over time).
Test have been updated to use status-im/asynctest. This PR uses a branch of asynctest that supports async suite before/after. This seemed like the only the tests would work without throwing gcsafe errors.
All tests working.
2022-02-25 09:10:43 +11:00
Eric Mastro
617a98bd01
Initial commit with nimble initialised repo
...
# Conflicts:
# README.md
2022-02-25 09:10:43 +11:00
Csaba Kiraly
f530a24a25
moving all RLP enoding from messages to messages_encoding
2022-02-24 12:39:17 +01:00
Csaba Kiraly
aca6febd34
fixup: fix trace message
2022-02-24 12:36:29 +01:00
Csaba Kiraly
7dd0ff1bb6
fixup: fix trace messages
2022-02-23 22:12:32 +01:00
Csaba Kiraly
db4ccc8bee
just reordering
2022-02-23 22:12:32 +01:00
Csaba Kiraly
6dcdaf6173
moving encode and decode to the same level
2022-02-23 22:12:32 +01:00
Csaba Kiraly
043f195e19
separating message structures and encoding
2022-02-23 22:12:32 +01:00
Csaba Kiraly
b6943d3382
adding minimal readme
2022-02-23 22:12:32 +01:00
Csaba Kiraly
e6cea68326
tests: give more time to bootstrap
2022-02-23 22:12:32 +01:00
Csaba Kiraly
0b301fdeae
moving test under dht folder
2022-02-23 22:12:32 +01:00
Csaba Kiraly
811389c863
moving code under dht folder
2022-02-23 22:12:32 +01:00
Csaba Kiraly
bef2b711e5
just a comment
2022-02-23 22:12:32 +01:00
Csaba Kiraly
b118a34043
tests: make all tests work
2022-02-23 22:12:32 +01:00
Csaba Kiraly
77d93d71bd
tests: generate PeerRecords from NodeId
...
this is just for the testing
2022-02-23 22:12:32 +01:00
Csaba Kiraly
54fde4e09e
test fix: init nodes correctly
2022-02-23 22:12:32 +01:00
Csaba Kiraly
19792de3dc
adding GetProviders support
2022-02-23 22:12:32 +01:00
Csaba Kiraly
f78dafb798
add some trace messages
2022-02-23 22:12:32 +01:00
Csaba Kiraly
57a339d326
quick fix local lookup
2022-02-23 22:12:32 +01:00
Csaba Kiraly
31d99ad56e
adding protobuf encoding
2022-02-23 22:12:32 +01:00
Csaba Kiraly
af168a8a24
fixup
2022-02-23 22:12:32 +01:00
Csaba Kiraly
be5d911cda
partial tests (AddProvider)
2022-02-23 22:12:32 +01:00
Csaba Kiraly
43a27ed997
exposing ProvidersProtocol and underlying Discovery
2022-02-23 22:12:32 +01:00
Csaba Kiraly
86328cd17e
adding base for test_discovery
...
based on discv4 version
2022-02-23 22:12:32 +01:00
Csaba Kiraly
722fbba547
adding addProvider messaging and calls
2022-02-23 22:12:32 +01:00
Csaba Kiraly
ca3f634239
import eth/[rlp, keys, async_utils, net/utils] directly from eth
2022-02-23 22:11:27 +01:00
Csaba Kiraly
f5d3a9f381
cleaning up imports and dependencies
2022-02-23 22:03:37 +01:00
Csaba Kiraly
cdd5d6cd34
protocol: introduce sendResponse
...
This completes the Request/Response semantics.
2022-02-23 22:02:59 +01:00
Csaba Kiraly
70a06b5c44
rename protocol.sendMessage to sendRequest
...
This is a request part of a Request/Response, generating
also a reques ID. So call it what it is.
2022-02-23 22:02:51 +01:00
Csaba Kiraly
d4af5b8a44
protocol.sendMessage: allow destination as (NodeId, Address)
2022-02-23 22:02:41 +01:00
Csaba Kiraly
a7d8082fc7
transport.sendMessage: avoid passing address twice
...
Node already has the address, so it does not make sense to
pass it as a separate parameter.
2022-02-23 22:02:31 +01:00
Csaba Kiraly
8298acd410
attempt to clean up send proc names
...
- interface between Transport and Protocol is at the encoded Message
level
2022-02-23 21:59:01 +01:00
Csaba Kiraly
b03d5eb3c7
fixup: fix imports in test_discoveryv5_encoding
...
Note that the test does not compile, but it was
also not compiling before
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2022-02-23 11:02:06 +01:00
Csaba Kiraly
fd350b4fe5
splitting protocol in lower and upper half
...
Protocol was actually made of two sub-protocols.
* a lower-half handling authentication, encryption,
key exchange, and request/response. This is now called
Transport.
* an upper-half handling DHT messages. This is still
called Protocol.
Separation of these two reduces dependencies and simplifies
modifications to the protocol.
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2022-02-23 11:02:06 +01:00
Csaba Kiraly
a33da803a5
move message encoding to separate file
...
Messages and message encoding has nothing
to do with the underlying authenticated
communications framework. Separate these
two.
2022-02-23 11:02:06 +01:00
Csaba Kiraly
cfa97f4995
initial commit based on nim-eth@779d767b024175a51cf74c79ec7513301ebe2f46
2022-02-14 01:51:28 +01:00