Dustin Brody
e2ccbbb418
use sqlite3 write-ahead logging
2020-08-24 12:37:40 +02:00
Zahary Karadjov
73c1bb817c
Adapt to latest snappy; Avoid decompression bombs
2020-08-19 14:14:59 +03:00
Zahary Karadjov
5eff071c8e
Delegate traceAsyncErrors to Chronicles
2020-08-16 00:52:22 +03:00
jangko
f2f988d6d7
fix keyfile using newest scrypt api
2020-08-03 09:28:46 +07:00
jangko
7afa22cf41
add scrypt kdf to keyfile and implement test for it
2020-07-27 19:34:36 +07:00
kdeme
f0638eb3f1
Add rlp_decode fuzz test + some corpus generate code
2020-07-20 17:09:15 +02:00
kdeme
4e4836a0fe
Add discv5 fuzzing test targets
2020-07-20 14:17:44 +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
kdeme
33f72e77bc
Add duplicate and distance checks in Nodes message
2020-07-15 11:15:50 +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
0888667ac0
Comments and cleanup ( #276 )
...
* Fix dcli + add more comments
* Fix pong enr sequence number + varia cleanup
* Send randomData in case no handshake was done yet. Fix #277
2020-07-12 17:25:18 +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
Eugene Kabanov
e64efc5dbb
Fix LSWAP problem. ( #275 )
2020-07-10 23:30:34 +02:00
Kim De Mey
7f77ba2308
Fix formatFloat issue ( #273 )
2020-07-10 14:17:06 +02:00
kdeme
eeb958e834
Add comments [skip ci]
2020-07-08 14:56:56 +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
95a09fdf7f
Get rid of some duplicate code
2020-07-08 12:14:00 +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
jangko
b5cabdfde4
add getForkId interface to AbstractChainDB
2020-07-02 11:09:48 +07:00
kdeme
ffb7923370
Use different try/except construct to enforce returning on error
2020-06-30 21:58:23 +02:00
kdeme
23aa13b03d
Return on getMessage failure and do address conversion afterwards
2020-06-30 15:33:33 +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
Kim De Mey
0d591c6423
Merge pull request #247 from status-im/routing-table
...
Routing table work
2020-06-24 22:29:41 +02:00
narimiran
ebabd6f76d
more fixes
2020-06-24 22:20:50 +02:00
Miran
0424a66aa2
fix deprecated 'rand' ( #259 )
2020-06-24 16:06:07 +02:00
kdeme
e28f3f987c
routing table: resolve some TODOs
2020-06-24 12:29:59 +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
kdeme
6c85a48b4c
Fix bucket ordering and add comments on this
2020-06-23 09:35:12 +02:00
kdeme
7e35b329b4
Add limit to the replacement cache
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
Zahary Karadjov
5c6d8ccb36
Add a helper from NBC
2020-06-22 17:32:32 +03:00
Zahary Karadjov
964a380191
Stricter error handling
2020-06-22 17:32:32 +03:00
Ștefan Talpalaru
66e2dc7ba3
ignoreSignalsInThread()
2020-06-21 01:32:13 +02:00
jangko
f85c8303ee
add goerli bootnodes
2020-06-19 12:15:05 +03: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
kdeme
67decc3a85
Clear after aes encrypt/decrypt
2020-06-09 11:10:16 +02:00
kdeme
1e1fd70649
Metrics with labels
2020-06-09 11:10:16 +02:00
Kim De Mey
1c77cc1d3d
Fix discovery after introduction of ValidIpAddress ( #248 )
2020-06-09 11:09:35 +02:00
Zahary Karadjov
4e31a86533
IpAddress -> ValidIpAddress
2020-06-05 19:35:43 +03:00
kdeme
6dd820840a
Add simple auth header encode/decode test
2020-06-04 15:03:41 +02:00
kdeme
12627b34d3
Don't allow to use HandshareSecrets if auth response is invalid
2020-06-04 13:38:04 +02:00
kdeme
47602e634c
Add node id check and id-nonce-sig verification #204
2020-06-04 12:19:06 +02:00
kdeme
4276e713f4
Add argument pragma for ping and findnode target node
2020-06-03 16:08:15 +03:00
kdeme
ff7bed9555
Add discoveryv5 debugging tool: dcli
2020-06-03 16:08:15 +03:00
kdeme
d53cebcf5d
Quickfix for local node without reachable address
2020-05-29 19:18:49 +03: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
Zahary Karadjov
ff546d27c3
Remove the last remains of gensym in the p2pProtocol DSL in order to get non-changing codegen
2020-05-25 19:41:20 +03:00
Zahary Karadjov
218192aa09
Allow LibP2P to break the ties with RLPx by allowing more natural RPC syntax
...
Integrate the Stew macro printer and use to store the generated code for Whisper
2020-05-24 01:10:00 +03:00
Jacek Sieka
9375ccc3a9
cleanup ( #238 )
2020-05-21 11:58:19 +02:00
Zahary Karadjov
53166fd1ff
Allow overriding the request Result/Option type
2020-05-13 11:37:35 +03:00
Zahary Karadjov
631b6d5d15
Adapt to latest FastStreams API
2020-05-13 11:37:35 +03:00
Ștefan Talpalaru
8ded65fe0e
SQLite3 metrics: cosmetic changes
2020-05-13 11:37:35 +03:00
Ștefan Talpalaru
9da92b5415
SQLite3 mem usage metric
2020-05-13 11:37:35 +03:00
Jacek Sieka
f730557baa
sqlite: separate contains query
...
Using `select 1` for contains query tells sqlite not to actually load
the data for simple contains queries
2020-05-08 22:22:55 +03:00
kdeme
17586c05d7
Remove waku protocol from the repository
2020-05-07 20:49:00 +03:00
Kim De Mey
cea370c4fa
Merge pull request #231 from status-im/discv5-results
...
Improve error handling in discv5
2020-05-01 23:47:11 +02:00
kdeme
887cbba563
discv5: Address review comments
2020-05-01 22:34:26 +02:00
kdeme
74df90e16d
discv5: further prepping for results error handling
2020-04-30 00:11:03 +02:00
Jacek Sieka
205b57fe71
port kvstore from nim-beacon-chain ( #230 )
...
* port kvstore from nim-beacon-chain
* remove old database backends
* use kvstore in trie database
* add sqlite dep
* avoid template param double evaluation
* clean up heterogenous lookup todo
2020-04-27 15:16:11 +02:00
kdeme
3a6d4336bc
Bunch of renames to use same nomenclature as spec
2020-04-27 14:13:00 +02:00
kdeme
09a127ef1b
Pass packet as decoding result
2020-04-24 16:52:41 +02:00
kdeme
5dec5c5a9b
discv5 encoding: First steps to move to result based error handling
2020-04-24 15:51:04 +02:00
Viktor Kirilov
28e684ce80
removed redundant definitions which are also present in nim-json-serialization/json_serialization/std/net
2020-04-23 18:30:14 +03:00
kdeme
0c6c4b969c
Add comment about used routing table and FindNode call [skip ci]
2020-04-21 21:27:32 +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
Kim De Mey
5bb6ee6451
Update waku to version 1.0 specification ( #228 )
2020-04-21 14:03:40 +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
Jacek Sieka
1646d78d83
cleanups ( #226 )
2020-04-18 10:17:59 +02:00
Jacek Sieka
e9b25b5309
Result rocks ( #225 )
...
* rocksdb: update
2020-04-18 07:21:13 +02:00
Jacek Sieka
7c709551a5
secp: use upstream convenience API ( #224 )
2020-04-17 13:13:08 +02:00
Zahary Karadjov
ee5c9619e0
Fix test_discoveryv5
2020-04-15 05:55:08 +03:00
Zahary Karadjov
bac6248301
Remove the unnecessary initFuture in the LibP2P p2pProtocol back-end
2020-04-15 05:33:52 +03:00
Zahary Karadjov
6513cd9eff
Allow application-supplied ENR fields in discv5
2020-04-15 05:32:52 +03:00
Zahary Karadjov
8f3bf36054
Adapt to the latest FastStreams API
2020-04-14 19:33:49 +03:00
Kim De Mey
99c68d40f7
Fix idAtDistance ( #219 )
2020-04-14 11:08:08 +02:00
Jacek Sieka
6a513ae02e
secp: adapt to secp256k1 update ( #220 )
2020-04-12 07:50:34 +02:00
andri lim
f11250ea23
add goerli bootnodes
2020-04-09 17:13:30 +03:00
Kim De Mey
3f1d6e2922
Add Status test nodes ( #216 )
2020-04-08 15:21:48 +02:00
Jacek Sieka
ec1492a65a
result -> results
2020-04-07 13:32:10 +03: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
42b36d1aef
secp: handle invalid keys better ( #210 )
...
* secp: handle invalid keys better
we can't guarantee with the type system that invalid keys don't exist,
so we have to introduce error handling for it
2020-04-04 11:40:47 +02:00
Corey
c827c37329
update boot and whisper nodes
2020-04-02 20:05:05 -04: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
abc61e188a
discv5: Add check on ip address after handshake
2020-03-30 23:14:18 +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