101 Commits

Author SHA1 Message Date
Eric Mastro
50c7695397
remove global network var 2023-05-11 00:48:34 +10:00
Csaba Kiraly
70c2d28b89
use 127.0.0.1 for these tests
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 16:13:42 +02:00
Csaba Kiraly
fd317a55cb
add simple send functionality
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 16:12:33 +02:00
Csaba Kiraly
6109cbae80
index by port
0.0.0.0 vs. 127.0.0.1 creates various issues
As a start, we can index by port only

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 16:11:22 +02:00
Csaba Kiraly
20ff87b42f
simplify code changes
no need to name it different, we can override DatagramTransport

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 16:10:23 +02:00
Csaba Kiraly
dcdef89401
make it compile with gcsafe
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 14:00:40 +02:00
Csaba Kiraly
2eef69f3e7
try to add global registry of endpoints
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 13:47:49 +02:00
Csaba Kiraly
e8b019b591
store TransportAddress
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 13:46:42 +02:00
Csaba Kiraly
b1957f4b60
Fake DatagramTransport: first compile
Override Chronos DatagramTransport with a fake one

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 11:53:17 +02:00
Csaba Kiraly
7956898882
change revalidateLoop to use [RevalidateMax/2, RevalidateMax]
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 11:50:52 +02:00
Csaba Kiraly
ab7edc0247
add 10ms of delay between node initializations
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 10:20:07 +02:00
Csaba Kiraly
4b49586f1e
improve tracing of message exchange
run e.g. as
```
nim c -r -d:debug -d:chronicles_enabled=on -d:chronicles_log_level=TRACE -d:chronicles_sinks=textlines[nocolors,stdout] tests/dht/test_providers.nim >err
```

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 10:19:37 +02:00
Csaba Kiraly
591b270dc3
log routing table size periodically 2023-05-10 00:46:45 +02:00
Csaba Kiraly
a3092dfde3
wait more to have better logs
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 00:46:23 +02:00
Csaba Kiraly
3b71e50443
increase node count to 1000
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 00:46:08 +02:00
Csaba Kiraly
a86a5d6cac
warn and skip test nodes on busy ports
TODO: We might want to still generate the right amount

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2023-05-10 00:45:50 +02:00
Dmitriy Ryajov
4375b92298
use datastore has (#56) 2022-12-02 16:47:16 -06:00
Dmitriy Ryajov
e4e7a3e11f
track nim-libp2p's unstable branch and nim-bearssl's master branch (#51)
* 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>
2022-11-02 10:21:05 -06:00
Dmitriy Ryajov
d6d255b4b5
Cleanups (#55)
* limit query to batchSize

* allow initializing node from ip and port

* misc cleanups
2022-10-31 22:41:33 -06:00
Dmitriy Ryajov
08928e57d8
Remove local providers (#53)
* refactor to use batch deletes

* add ability to remove local providers
2022-10-03 15:14:47 -06:00
Dmitriy Ryajov
4b9fa0356e
Adding maintenance routines to cleanup expired and orphaned records (#52)
* add maintenance routines and split out cache

* start provider manager

* export provider manager

* add maintenance tests

* start is now async
2022-10-01 10:05:03 -06:00
Dmitriy Ryajov
69ae7c2012
Persist providers (#49)
* 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
2022-09-29 17:49:55 -06:00
Dmitriy Ryajov
bbcfb9f17b
Merge pull request #50 from status-im/revert-47-nim-libp2p-unstable
Revert "track nim-libp2p's unstable branch and nim-bearssl's master branch"
2022-09-23 18:18:48 -04:00
Dmitriy Ryajov
9dfa86767d Revert "track nim-libp2p's unstable branch and nim-bearssl's master branch"
This reverts commit c480fb573242ab13fab57446aeece90eaabbe104.
2022-09-23 15:59:31 -06:00
Michael Bradley, Jr
c480fb5732 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
2022-09-19 20:05:34 -05:00
Dmitriy Ryajov
39c0ffc970
Merge pull request #46 from status-im/chronicles-format
add formating for SignedPeerRecord
2022-09-13 14:26:02 -04:00
Dmitriy Ryajov
7c259731a4
add formating for SignedPeerRecord
needs to move to libp2
2022-09-13 12:01:36 -06:00
Dmitriy Ryajov
94b75f141c
Merge pull request #44 from status-im/providers-lru
Providers lru
2022-09-12 23:34:02 -04:00
Dmitriy Ryajov
f5afe784c5
prevent npe when table is 0 2022-09-12 21:08:55 -06:00
Dmitriy Ryajov
f84bc647ce
don't touch the cache when checking for id 2022-09-12 21:08:26 -06:00
Dmitriy Ryajov
23e20a2f1c
bad merge 2022-09-12 18:41:44 -06:00
Dmitriy Ryajov
fca255b2f7
use pure enums 2022-09-12 18:06:48 -06:00
Dmitriy Ryajov
c646b9c2b9
providers LRU - avoid unchecked growth 2022-09-12 18:06:46 -06:00
Dmitriy Ryajov
e801660b44
Merge pull request #38 from status-im/fixes-for-integration
Fixes for dagger integration
2022-09-12 19:44:28 -04:00
Dmitriy Ryajov
3be2c8445c
suppress logging noise 2022-09-12 17:13:34 -06:00
Dmitriy Ryajov
1cbe8c12a6
suppress logging noise 2022-09-12 17:13:34 -06:00
Dmitriy Ryajov
2d93fa9e69
fix updateRecord
- support incrementing seqNo
- support updating with new record
2022-09-12 17:13:34 -06:00
Tanguy
d90f0a03b9
Fixes for json logs 2022-09-12 17:13:33 -06:00
Tanguy
bde7a26f9d
Fixes for integration 2022-09-12 17:13:33 -06:00
Dmitriy Ryajov
e8177aa7eb
Merge pull request #39 from yyoncho/main
Add setup files
2022-09-12 14:29:47 -04:00
Ivan Yonchovski
36a49cdac4 Add setup files 2022-07-12 15:45:53 +03:00
Tanguy
f824c0a3cd
Remove nim-eth dependency (#37) 2022-04-08 12:13:14 +02:00
Michael Bradley, Jr
faf5cad9d4 protobuf encoding for all message types 2022-04-07 14:47:35 -05:00
Eric Mastro
4c65f4bd94 chore: remove nim-eth/keys in favour of over to libp2p/crypto
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.
2022-04-07 14:11:48 -05:00
Csaba Kiraly
74b73bfda0
Merge pull request #25 from status-im/add-findnode-by-id
Add back traditional findnode by target ID
2022-03-25 10:50:16 +01:00
Csaba Kiraly
667a8b91a4 test lookup with traditional findNode as well 2022-03-22 15:46:19 +01:00
Csaba Kiraly
01488104e5 add "traditional" targetID based findNode message
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.
2022-03-22 15:18:44 +01:00
Csaba Kiraly
6408cf4e3f
Merge pull request #26 from status-im/fix-bootstrap
Fix bootstrap in tests
2022-03-22 15:10:12 +01:00
Csaba Kiraly
4362c83a56 log improvements 2022-03-22 11:53:55 +01:00
Csaba Kiraly
50df73da1b fixup: tests: expose startup delay parameter 2022-03-22 11:53:55 +01:00