kdeme
301067c869
Fix RequestId encoding/decoding and improved tests
...
- RequestId to variable rlp byte array
- Do encoding and decoding steps in the message tests
- Do sign and verify in the nonce sign test
2020-10-16 21:20:47 +03:00
kdeme
17ef0b25e0
Update to support the latest discv5.1 specification
2020-10-16 21:20:47 +03:00
kdeme
ce2cd2323c
Support findnode with multiple distances in discv5.1
2020-10-16 21:20:47 +03:00
kdeme
8042d72711
Add discovery v5.1 implementation
2020-10-16 21:20:47 +03:00
Kim De Mey
6b17531d48
Improvements on dropping of challenges and handling of too large distance ( #296 )
...
- drop handshake challenge on invalid handshake
- send empty nodes reponse when distance is > 256
- misc
2020-09-30 09:43:51 +02:00
Kim De Mey
c9caafb2a4
Replace memory db with lrucache for temporary storage of sessions ( #292 )
2020-09-10 14:49:48 +02:00
kdeme
ec260dcfe4
Add & update tests
2020-07-17 22:48:14 +02:00
kdeme
1eae8f93f9
Fix empty ENR list in auth-response properly + potentially request new ENR on revalidation
2020-07-17 16:18:50 +02:00
kdeme
84fd39a8f8
Update enrs in buckets and replacement caches and fix empty ENR list in AuthResponse
2020-07-17 11:14:08 +02:00
kdeme
c7ac9f54b3
Refactor the findNode code + add tests
2020-07-15 15:27:22 +02:00
Kim De Mey
7febbec673
Use brHmacDrbgGenerate for all random operations in discovery ( #272 )
2020-07-13 14:34:53 +02:00
Kim De Mey
f3de959261
Discv5 readme ( #278 )
...
* Add discovery v5 readme + test_discv5 task
* Move hkdf tests to test file and add to nimble task
2020-07-12 23:53:27 +02:00
Kim De Mey
28a8d52308
Fix enr deserialization crash + more tests + fuzz test ( #274 )
...
* Fix enr deserialization crash + more tests + fuzz test
* CI: Install depsOnly
2020-07-11 01:28:53 +02:00
kdeme
4f3df3c9b2
Change update back to use var parameter of Record
2020-07-08 14:28:54 +02:00
kdeme
d3db83fa0a
Extra test on newProtocol
2020-07-08 13:16:07 +02:00
kdeme
0fb21e72d7
Add updateEnr and allow for table constructor usage in newProtocol
2020-07-08 11:45:58 +02:00
kdeme
72420d7f17
Allow for passing in previous enr at discovery protocol creation
2020-07-07 23:39:32 +02:00
kdeme
57302fcf52
Allow for multiple enr fields to be inserted + enr update proc
2020-07-07 22:48:26 +02:00
kdeme
3bbe757fe3
Add record size check on init + add insertFieldPair call + tests
2020-07-07 17:19:15 +02:00
Jacek Sieka
484fbcab1b
use bearssl rng throughout ( #265 )
...
* use bearssl rng throughout
* seeder can fail
* imports and exports
* modules, sigh
* one more try
* move var
* even fewer thread vars
* remove out-of-date genrated files
2020-07-07 10:56:26 +02:00
Kim De Mey
9a467225fb
Add routing table metrics + tweaks + fixes ( #261 )
...
- routing table metrics + option in dcli
- only forward "seen" nodes on a findNode request
- setJustSeen & replace on ping AND findnode
- self lookup only at start
- revalidate 10x more
- use bitsPerHop (b) of 5
- small fix in resolve
- small fix in bucket split
2020-06-30 13:35:15 +02:00
kdeme
5ffe6bb8ff
Add more routing table kbucket tests
2020-06-23 17:54:12 +02:00
kdeme
ba19465892
Functional replacement cache
2020-06-23 16:11:58 +02:00
kdeme
ceb4a20463
Fix depth calculation for bucket splitting
2020-06-23 09:35:12 +02:00
kdeme
2d7b3440f2
make bitsPerHop configurable + add routing table tests
2020-06-23 09:35:12 +02:00
Jacek Sieka
61feae0f21
secp: requiresInit updates ( #258 )
...
* secp: requiresInit updates
* fixup!
* clean up mapconverts
2020-06-22 18:07:48 +02:00
Kim De Mey
225a9ad41c
Add predicate filter option for randomNodes ( #251 )
...
* Add predicate filter option for randomNodes
* Further ValidIpAddress fixes
* Add gcsafe/noSideEffect and add test case
2020-06-11 21:24:52 +02:00
Kim De Mey
1c77cc1d3d
Fix discovery after introduction of ValidIpAddress ( #248 )
2020-06-09 11:09:35 +02:00
kdeme
6dd820840a
Add simple auth header encode/decode test
2020-06-04 15:03:41 +02:00
Kim De Mey
a110f091af
Discv5 eh2 ( #240 )
...
* Discv5: More error handling improvements
- More results usage and raises pragma annotations
- Remove ENode related code and adjust Node object
- Misc.
* Add sendMessage and catch RlpError when decoding WhoAreYou
* Make the receive proc exception free
Except for `Exception` hah...
* Address review comments
* And another bunch of results and raises annotations
* Send Nodes Message also on 0 nodes and remove usage of broken require
2020-05-28 10:19:36 +02:00
kdeme
17586c05d7
Remove waku protocol from the repository
2020-05-07 20:49:00 +03:00
kdeme
74df90e16d
discv5: further prepping for results error handling
2020-04-30 00:11:03 +02:00
kdeme
3a6d4336bc
Bunch of renames to use same nomenclature as spec
2020-04-27 14:13:00 +02:00
kdeme
5dec5c5a9b
discv5 encoding: First steps to move to result based error handling
2020-04-24 15:51:04 +02:00
kdeme
59ba3704d6
Add resolve proc + test
2020-04-21 21:27:32 +02:00
kdeme
d3c9ccea67
Fix FindNode to return nodes with specific distance + tests
2020-04-21 21:27:32 +02:00
Jacek Sieka
fd6caa0fdc
Rlp experimental ( #227 )
...
* rlp: remove experimental features
* avoid range library
* trie: avoid reference-unsafe bitrange type
2020-04-20 20:14:39 +02:00
Zahary Karadjov
ee5c9619e0
Fix test_discoveryv5
2020-04-15 05:55:08 +03:00
Zahary Karadjov
6513cd9eff
Allow application-supplied ENR fields in discv5
2020-04-15 05:32:52 +03:00
Kim De Mey
99c68d40f7
Fix idAtDistance ( #219 )
2020-04-14 11:08:08 +02:00
Jacek Sieka
0b110f3287
Secp more refactor ( #211 )
...
* simplify some modules
* mark several modules with raises
* fix clearing of keys in auth.nim
* fix keyfile case dropping off
* fix keyfile stream storage
* uuid should be output in lowercase
* enode: simplify API
2020-04-06 18:24:15 +02:00
Jacek Sieka
ac5bbe4d3d
keys: get rid of deprecated calls ( #213 )
2020-04-04 18:44:01 +02:00
Jacek Sieka
02d661503f
refactor secp interface ( #203 )
...
* avoid mix of exceptions and return codes
* introduce result
* use deprecated compatibility API to avoid big-bang refactoring
* loosely based on nim-libp2p secp as well as the rust-secp256k1 wrapper
* oh, boy does our secp256k1 wrapper need updating - we're _far_
behind...
2020-04-02 14:40:29 +02:00
kdeme
65bed1ae94
discv5: allow creation of node without external ip
2020-03-30 13:32:15 +02:00
kdeme
0a33744d1c
Add IP checks on ENRs received from Nodes packet
2020-03-27 14:38:45 +01:00
kdeme
c3f23e5912
Minor adjustments to store bootnode records + deletion test
2020-03-24 16:45:15 +02:00
kdeme
713f2e3bff
Add getNode and tests for findNode and getNode
2020-03-24 16:45:15 +02:00
kdeme
f46f9f1418
discv5: add start call
2020-03-24 16:45:15 +02:00
kdeme
00c2bac465
Fix logDist and add test
2020-03-24 16:45:15 +02:00
kdeme
267a06dbe6
discv5: Pass bootstrap nodes and add deletion of nodes
2020-03-24 16:45:15 +02:00
Zahary Karadjov
2b7a25175b
Prepare for Nim 1.2
2020-03-24 14:05:30 +02:00
kdeme
596f148974
Discv5: Specifically handle decryption errors
2020-03-10 16:01:04 +01:00
kdeme
0d63ff4db4
(Quick)fix hashing for handshakes by adding Ports + tests
2020-02-29 14:16:27 +01:00
kdeme
1fab56f894
Introduce more constants and type aliases
2020-02-29 14:16:27 +01:00
kdeme
ad99b96e12
Drop additional handshakes with same nodeid and add timeout on handshakes
2020-02-29 14:09:12 +01:00
kdeme
fc844347a4
Don't send Whoareyou on handshake failure
2020-02-29 14:09:12 +01:00
kdeme
f81a87f31b
Add lookupLoop and other fixes
...
- add lookupLoop
- protocol close / closeWait
- randomize randomNodes
- Use lookupRequestLimit
- Remove invalid check in neighbours proc
- Add lookup test
2020-02-29 14:00:58 +01:00
Andrea Maria Piana
394b65ec03
Add eventually test checks
2020-02-27 10:11:55 +01:00
Andrea Maria Piana
9dcbb91ae0
Handle waku status-update code 22
...
This commits adds handling of the status-update code, 22, according to
waku specs 0.4 a6a9d6bcb1
Removes unused codes 20,21
2020-02-26 14:40:21 +01:00
Zahary Karadjov
1369cf3a30
[discv5] Allow specifying the advertised IP address; Code style improvements
2020-02-22 02:24:33 +02:00
kdeme
5aebab3f41
Fix duplicates in returned values of a lookup
2020-02-20 15:09:31 +02:00
kdeme
3dd26e8526
Attempt to further add the discv5 wire test vectors
2020-02-20 15:09:31 +02:00
Zahary Karadjov
cfdb26db40
[discv5] Advertise the LibP2P TCP port properly
2020-02-18 01:07:23 +02:00
kdeme
79dfe88ec8
Add Packet encodings tests
2020-02-17 22:38:56 +02:00
kdeme
bb6a3c2ce1
Add basic node discovery test
2020-02-17 22:38:56 +02:00
kdeme
c679b9d436
Fix priority check of topic-interest versus bloom filter
2020-02-14 11:03:47 +02:00
Zahary Karadjov
a1a6862c7c
More spec compliant ENR
...
* Don't use signed integers in RLP
* Don't store IP addresses as var-sized ints (use fixed-sized blobs instead)
* Allow constructing ENR from ENode.Address
2020-02-12 11:58:14 +02:00
kdeme
18799f1491
Add StatusOptions alist and remove WakuMode
2020-02-04 20:25:50 +01:00
kdeme
ab287d234a
Fix ordering of Waku/Whisper queue and increase queue capacity
2020-01-14 18:17:37 +01:00
kdeme
cb2bc388f1
rename newFilter to initFilter for correctness
2020-01-14 15:33:21 +01:00
Yuriy Glukhov
3527d47cb5
Added packet encoding tests
2020-01-08 17:22:43 +02:00
Yuriy Glukhov
992aeecd29
ENR parsing and serialization
2020-01-08 17:22:43 +02:00
kdeme
f3357602e4
Allow light node to send the regular way #131
2019-12-20 11:56:12 +01:00
kdeme
4dde3af2d5
p2pRequestComplete parameters are not a separate list
2019-12-19 23:23:06 +01:00
kdeme
f940162b6b
Implement Waku mode PoC
2019-12-12 23:23:26 +01:00
kdeme
7128df8838
Fix Windows test by waiting till server has added peer
2019-12-12 17:35:30 +02:00
kdeme
f0582a084c
Quick implementation for multiple mail requests by using cursor
2019-12-12 17:35:30 +02:00
kdeme
9bd042c265
First go on Waku mail client addition
2019-12-12 17:35:30 +02:00
kdeme
59ba63f74c
Fix double whisper types export by moving to separate file
2019-12-10 12:18:52 +01:00
kdeme
0229547c41
More explicit Exceptions + fix re-raising
2019-12-04 12:34:37 +01:00
kdeme
bc2b76f09a
cleaner solution for sharing the queue
2019-11-21 19:35:27 +02:00
kdeme
f02f358bc3
Fix waku bridge test
2019-11-21 19:35:27 +02:00
kdeme
a8a55f16dc
Implement quick Waku - Whisper bridge by sharing the queue + adjust test
2019-11-21 19:35:27 +02:00
Oskar Thoren
c5b42000b8
Fix waku connect tests
...
- WakuWhisper and Whisper peers connect
- WakuWhisper node picks up Whisper messages
2019-11-21 19:35:27 +02:00
Oskar Thoren
40cddc4eec
waku 0 replace whisper waku
2019-11-21 19:35:27 +02:00
Oskar Thoren
73fcfdbad1
waku zero import shh tests
2019-11-21 19:35:27 +02:00
kdeme
a54eba2757
Split off whisper config related tests
2019-11-19 14:08:20 +01:00
kdeme
44400ee549
Fix nim v1.0.2 compile issues
2019-10-29 14:44:26 +02:00
kdeme
98be627bcc
Make msgId fixed int32
2019-10-23 09:35:33 +09:00
kdeme
5850186ca0
Add EIP-8 test + activate rlpx thunk test
2019-10-23 09:35:33 +09:00
kdeme
17f90920e0
Add unittest for rlpx thunk payload tests
2019-10-23 09:35:33 +09:00
kdeme
ae49155ae7
add ingress mac on foo check in rlpx auth test
2019-10-22 11:11:39 +02:00
kdeme
77834d1df0
Beginning of bzz protocol + simple handshake tester
2019-10-17 21:59:32 +09:00
kdeme
18225f93a5
Clean-up test_shh_connect
2019-10-03 16:38:14 +03:00
kdeme
035b7eda24
Adress review feedback
2019-10-02 14:45:29 +03:00
kdeme
9fb79d0d88
Refactor bootnodes and whispernodes
2019-08-16 08:50:58 +02:00
Zahary Karadjov
1fe3de6c39
Changes required for the latest ETH2 spec
2019-08-07 06:13:45 +03:00
Jacek Sieka
022139db50
import fixes
2019-07-07 12:22:55 +02:00
kdeme
13a32811aa
Fix leading zeroes bug + add tests from geth and parity
2019-06-27 12:03:55 +02:00
Zahary Karadjov
f761889518
Refactored the p2pProtocol macro to eliminate most code duplication in the backends
2019-06-24 05:12:22 +03:00
kdeme
47c7a9887e
Make connection setup in shh_connect test more deterministic
2019-06-21 15:58:40 +03:00
kdeme
d1eb1070fc
Make connection setup in protocol_handlers test more deterministic
2019-06-21 15:58:40 +03:00
kdeme
d535bb1ade
Add very basic fuzzing setup for discovery
2019-06-18 20:10:14 +03:00
kdeme
7cb5ac050b
Add discovery tests against regression of recently fixed bugs
2019-06-18 20:10:14 +03:00
kdeme
1cb1168aec
replace waitFor with await
2019-06-18 12:16:47 +03:00
kdeme
0966a4e9ca
Adjust deprecated use of sleepAsync
2019-06-11 15:31:00 +02:00
kdeme
9e29d2211f
Fix compilation issue for shh_basic_client
2019-06-11 14:44:57 +02:00
kdeme
3cd8172e65
Add test for failing connection handler
2019-05-09 10:35:02 +02:00
kdeme
ac766bf7b3
Fix decoded dst bug + add tests
2019-04-08 14:28:50 +03:00
kdeme
c3add58128
Blind attempt to fix failures in test_shh_connect on macOS
2019-04-08 14:28:50 +03:00
kdeme
c599f7649d
Add powTarget and other changes for Whisper RPC implementation
2019-04-08 14:28:50 +03:00
kdeme
9e5cf2086c
Address review feedback
2019-04-08 13:51:32 +03:00
kdeme
bf62debe93
Add test with failing disconnect handlers
2019-04-08 13:51:32 +03:00
Ștefan Talpalaru
9146e8e2f0
assert() -> doAssert()
2019-03-13 23:15:26 +01:00
Zahary Karadjov
3efec171a6
Make the APIs compatible with libp2p
...
Lib2P2 handles RPC requests and responses with separate streams
while DEV2P2 is relying on tagged messages transmitted over a
single stream. To cover both models through the same application
code, we introduce a new `response` variable in the request handlers.
The user is supposed to issue a call to `response.send` in order to
reply to the request. Please note that the `response.send` signature
is strongly typed and depends on the current message.
2019-03-12 13:36:39 +02:00
Ștefan Talpalaru
2864d8ce21
clean up the test suite
...
by removing test wrappers that are no longer used and renaming a helper
file that had a name starting with the "test_" prefix
2019-02-15 17:18:45 +02:00
Yuriy Glukhov
5f6155bd23
Fixed appveyor test compilation ( #4 )
2019-02-07 17:11:38 +01:00
Mamy Ratsimbazafy
07cf801b97
Rebrand asyncdispatch2 to chronos ( #2 )
...
* Rebrand asyncdispatch2 to chronos
* fix nimble path to chronos
2019-02-06 17:01:04 +01:00
Yuriy Glukhov
46656bf8c2
Disable crashing test
2019-02-05 18:37:09 +02:00
Yuriy Glukhov
e75a00f86e
Moved eth-p2p to eth
2019-02-05 17:40:29 +02:00