jangko
b6b6f3dec7
implement txHashNoSignature for EIP2817's AccessListTx
2021-05-15 08:18:19 +07:00
jangko
61d5327f55
implement eip2718: transaction type envelope
...
also add more test cases for both tx and receipt
rlp encoding decoding
2021-05-15 08:18:08 +07:00
Jacek Sieka
8890175b6a
remove WITHOUT ROWID
...
This is a minimal performance hotfix for storing large blobs in kvstore
2021-05-14 20:04:14 +03:00
Kim De Mey
d05cb5d3bd
Fix raw Exceptions in hexary caused by forward declarations ( #349 )
...
* Fix raw Exceptions in hexary caused by forward declarations
* Fix raw Exceptions in trie/db caused by forward declarations
* And now we can remove those db Proc CatchableError raises
2021-05-11 17:32:47 +02:00
kdeme
00a45a7b91
Remove inline pragmas
2021-05-11 09:59:58 +02:00
kdeme
81f0a56ebd
Add/update bunch of license headers
2021-05-11 09:37:33 +02:00
kdeme
755729c6a1
Fix several compiler warnings
...
Mostly replacing deprecated calls
2021-05-11 09:24:23 +02:00
kdeme
bcb58216d1
Add CatchableErrors where needed because of db backends used
...
In nim-eth this will not fail, as they are base, not implemented
methods. In for example Nimbus-eth1 it will.
2021-05-07 16:28:48 +02:00
kdeme
90b4724492
Adjust for chronosStrictException usage in rest of eth/p2p
2021-05-06 17:20:54 +02:00
kdeme
e10ef19f81
Move push raises to top and add/update license info where needed
2021-04-28 16:20:05 +02:00
kdeme
b0474c0d40
Add raises annotations to discovery.nim
...
And add push raises Defect, remove unneeded gcsafe and remove
all usage of inline.
2021-04-27 21:11:54 +02:00
kdeme
a1da5d5e59
Use asyncSpawn instead of asyncCheck so chronos strict makes sense
...
And additional cleanup:
- Push raises Defect at top
- remove inlines
- remove unneeded gcsafe
- remove usage of deprecated calls
2021-04-27 11:30:08 +02:00
kdeme
9fed10de88
Allow for discv4 chronos strict usage
...
And group p2p tests that can be run with strict usage along the way.
2021-04-27 10:09:54 +02:00
Jamie Lokier
0f3bb61678
Fix import syntax error in `les_protocol.nim` added by PR #344
...
`les_protocol.nim` failed to build, due to very silly Nim bugs
nim-lang/Nim#8792 and nim-lang/Nim#17102.
import
../../[rlp, keys], ../../common/eth_types,
../[rlpx, kademlia, blockchain_utils], ../private/p2p_types,
The silly part is `../` has to be quoted if it's before a group of files, but
not before a single file. Most places in PR #344 / 7624153
use the workaround
`".."/` but it was missed in `les_protocol.nim`:
nimbus-eth1/vendor/nim-eth/eth/p2p/rlpx_protocols/les_protocol.nim(14, 3)
Error: cannot open file: ../../[rlp,keys]
Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-04-07 18:07:00 +01:00
Jamie Lokier
209171d97d
discv4: Refactor findNode so it can be called directly from a test
...
Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-04-06 18:41:47 +01:00
Kim De Mey
762415319c
Add build_dcli target and add it to CI ( #344 )
...
* Add build_dcli target and add it to CI
* Fix local imports for dcli
* And use local imports for all other files too
* Use local imports in tests and rlpx protocols
2021-04-06 13:33:24 +02:00
Jamie Lokier
e4b4b7f4af
discv4: Fix Kademlia crash when trying to sync ( #342 )
...
Fixes status-im/nim-eth#341 , status-im/nimbus-eth1#489 .
When using discv4 (Kademlia) to find peers, there is a crash after a few
minutes. It occurs for most of us on Eth1 mainnet, and everyone on Ropsten.
The cause is `findNodes` being called twice in succession to the same peer,
within about 5 seconds of each other. ("About" 5 seconds, because Chronos does
not guarantee to run the timeout branch at a particular time, due to queuing
and clock reading delays.)
Then `findNodes` sends a duplicate message to the peer and calls
`waitNeighbours` to listen for the reply. There's already a `waitNeighbours`
callback in a shared table, so that function hits an assert failure.
Ignoring the assert would be wrong as it would break timeout logic, and sending
`FindNodes` twice in rapid succession also makes us a bad peer.
As a simple workaround, just skip `findNodes` in this state and return a fake
empty `Neighbours` reply. This is a bit of a hack as `findNodes` should not be
called like this; there's a logic error at a higher level. But it works.
Tested for about 4 days constant operation on Ropsten. The crash which occured
every few minutes no longer occurs, and discv4 keeps working.
Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-04-02 23:29:02 +02:00
Kim De Mey
c5dace27ca
Use chronos http server for dcli metrics and remove insecure compile flag ( #343 )
...
And add cfg file to default have runtime log filtering on
2021-04-02 17:29:38 +02:00
Kim De Mey
ae4177851f
Remove no longer needed try/except ( #339 )
2021-03-26 17:49:03 +01:00
Jacek Sieka
698b3bea88
Exception tracking ( #334 )
...
* Exception tracking
https://github.com/status-im/nim-chronos/pull/166
* Remove redundant raises annotation
Co-authored-by: kdeme <kim.demey@gmail.com>
2021-03-25 18:12:11 +01:00
Kim De Mey
8c27f291f5
Add raises annotation to the FilterMsgHandler proc type ( #337 )
2021-03-25 15:06:12 +01:00
Kim De Mey
0be863d2de
Add raises annotations to make exception tracking work ( #336 )
...
See https://github.com/status-im/nim-chronos/pull/166
2021-03-24 12:52:09 +01:00
Jacek Sieka
16802c0e52
Fix minor exception effect issues ( #335 )
...
Makes code compatible with
https://github.com/status-im/nim-chronos/pull/166 without requiring it.
2021-03-23 07:47:55 +01:00
Kim De Mey
be5e088b21
Move parsing of nat cli option out of setupAddress ( #331 )
...
* Move parsing of nat cli option out of setupAddress
* Change some proc to func
2021-03-05 21:23:54 +01:00
Kim De Mey
0700ec770f
Improve network address discovery / NAT setup ( #323 )
...
* Add search for best route and refactor setupNat to setupAddress
* Update setupAddress and make enr ports in discovery optional
* Add specific error log when no route is found
* Use bindIP if it is public
* Adjust some log levels
2021-03-02 17:13:29 +01:00
jangko
dda2bec8aa
turn networkId into distinct uint
2021-02-13 17:43:17 +07:00
Zahary Karadjov
e8c9691b35
awaitWithTimeout for Future[void]
2021-02-04 16:45:50 +02:00
Kim De Mey
a339944bcf
Some discv5 cleanup / refactor ( #326 )
...
* Use Address in HandshakeKey
* Refactor + comments + dcli use queryRandom
* Rename types.nim to messages.nim
2021-02-02 22:47:21 +01:00
kdeme
4e58eb48ce
Add comments on enrAutoUpdate and add metric
2021-02-01 20:30:55 +02:00
kdeme
bfbad64d83
Add update of ENR on newly discovered address
2021-02-01 20:30:55 +02:00
kdeme
689eef2c11
Move IpAddress into the pong message
2021-02-01 20:30:55 +02:00
kdeme
d33d27c2ee
Small improvements and cleanup
2021-02-01 20:30:55 +02:00
kdeme
e43ee6ef9c
Add ip address voting through pong responses
2021-02-01 20:30:55 +02:00
Jacek Sieka
51a8795e56
one upnp is enough ( #324 )
...
we shouldn't have to recreate the upnp interface every time
2021-01-26 14:12:04 +01:00
kdeme
181bbadcbc
Add more message related metrics
2021-01-13 21:44:17 +01:00
kdeme
aa7442c9ff
dcli: actually use the provided listen address
2021-01-11 15:01:02 +01:00
kdeme
9cedbc0cc8
Move code into seedTable and populateTable proc
2021-01-07 10:20:40 +01:00
kdeme
ac58a1f35c
Only do discovery queries to refresh the table
2021-01-07 10:20:40 +01:00
Jacek Sieka
0f48ccecc0
sqlite: manual checkpointing
2020-12-18 19:30:53 +02:00
kdeme
12ec608efd
Put a limit on the nodes returned on a findnode request
2020-12-17 17:06:42 +01:00
kdeme
21423fca42
Use of discv5.1 findnode request with multiple distances
2020-12-17 15:42:04 +01:00
kdeme
a506739b23
Add query proc and use this for recurrent queries
...
This query proc is similar to the original (faulty) lookup proc.
But as we don't need to look for specific targets, it can be
used still as it gives a quicker and broader search resulting
in more nodes.
2020-12-17 15:23:02 +01:00
kdeme
e1acc1ae2d
Avoid sending more requests to node that timed out + request metrics
2020-12-16 00:07:49 +01:00
kdeme
68c9b7b3ad
Fix lookup to sort and query closest nodes
2020-12-15 13:24:57 +01:00
Kim De Mey
0820dbba46
Use one instead of deprecated oneIndex ( #317 )
2020-12-15 12:41:53 +01:00
Kim De Mey
d024ea8e85
Change invalid distance warning to debug ( #316 )
...
And also:
* move connected_peers metric so it does get added where it
shouldn't.
* imports cleanup
2020-12-14 12:21:03 +01:00
Mamy Ratsimbazafy
3b15abab10
Address review comment
2020-11-29 11:00:09 +02:00
Mamy André-Ratsimbazafy
482ea988c0
Add support for array[N, byte] in SQLite queries
2020-11-29 11:00:09 +02:00
Zahary Karadjov
49c40c9b95
Restore a commit accidentally omitted from a merged branch
2020-11-27 20:49:08 +02:00
Kim De Mey
b4c1391be9
Discv5 ip limits for routing table ( #308 )
...
* Add ip limits to routing table and routing table buckets
* Fix order of ip limit check and duplicate check for replacement
* Fix ip limit for node with updated ip in ENR
* Fix bug where address wouldn't update on ENR update
and update some comments
* Reuse some add/remove code in routing table
* Fix seen bug on ENR update in routing table
* Rework addNode to make sure to do address check always
and adjust some logs.
* More documentation on the ip limits in routing table [skip ci]
2020-11-26 18:20:15 +01:00
Kim De Mey
b88fef203b
Add info log line in case of no external IP ( #313 )
2020-11-26 18:19:13 +01:00
Jacek Sieka
114680453f
wait for cancellation to be processed on timeout ( #311 )
2020-11-17 15:36:41 +01:00
kdeme
18430ef127
Add empty talkreq command to dcli
2020-11-13 12:45:39 +01:00
kdeme
44637cdd8e
Remove support for discovery v5.0
2020-11-13 12:33:07 +01:00
Zahary Karadjov
5dff021cbc
Add a helper type used in web3 and elsewhere to denote blocks
2020-11-12 20:56:31 +02:00
Kim De Mey
71d6dbd1b4
Discv5 small adjustments ( #307 )
...
* Use checkedEnumAssign in discv5.1
* Some renaming according to discv5 spec nomenclature
2020-10-29 22:04:37 +01:00
Kim De Mey
3626755529
Improve discovery v5.1 logging ( #306 )
2020-10-23 16:41:44 +02:00
Kim De Mey
6bdf1b4b0f
Simplify UseDiscv51 compile flag ( #305 )
2020-10-19 21:04:53 +02:00
Zahary Karadjov
345dac702b
Don't use destructors
2020-10-16 21:21:00 +03:00
kdeme
cf586c363f
Random message size and message size checks
2020-10-16 21:20:47 +03:00
kdeme
9b971a0e14
Improve error logging messages
...
As we don't need to differentate between errors with an enum
anymore thanks to refactor.
2020-10-16 21:20:47 +03:00
kdeme
c28cba3589
Limit request id to maximum 8 bytes
2020-10-16 21:20:47 +03:00
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
76c10c9b79
Minimum size of random message fix for interop
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
820a73f96f
Store session secrets only on succesful decodeHandshakePacket
2020-10-16 21:20:47 +03:00
kdeme
a10ee4cc42
Fix topicquery value
2020-10-16 21:20:47 +03:00
kdeme
44b30ef0cb
Add all message types and a basic implementation of talkreq/talkresp
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
Clyybber
13089cad4c
Fix compilation for 1.4
...
Since proc params are now turned into syms during sem
we need to "refresh" them for use in another context
2020-10-16 20:06:59 +03:00
Zahary Karadjov
cc0d15ccac
Richer Sqlite API
...
* Adds a strongly typed API for creating custom SQL queries and
executing them
* Uses destructors to simplify the error handling in the init logic
2020-10-13 21:44:42 +03:00
Zahary Karadjov
c103721391
Add support for multiple keyspaces in the Sqlite keystore
2020-10-12 04:02:33 +03:00
Zahary Karadjov
de2d43a7e7
Remove some unused code from NBC by making it RLPx-specific
2020-10-05 17:28:58 +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
jangko
6c0bc31ad6
add 'BloomFilter.init' implementation
2020-09-30 12:04:23 +07:00
jangko
0194fb85eb
make 'bloom.incl(h256)' public
2020-09-30 11:57:57 +07:00
jangko
2f37870b6b
make 'bloom.contains' public
2020-09-30 11:01:50 +07:00
Jacek Sieka
3ddb498f2a
close sqlite transactions earlier ( #294 )
...
If the database is locked for reading, as it is when step returns ROW,
writes cannot checkpoint the wal leading to ever-increasing wal sizes
and a long delay at shutdown.
By resetting the transaction early, writes become more independent of
reads, memory is released earlier and wal can be checkpointed.
2020-09-21 08:21:47 +02:00
tersec
ea0dbb256e
support closing kvstore databases ( #293 )
...
* support closing kvstore databases
* clear MemStore databases on close
2020-09-11 13:05:52 +00:00
Kim De Mey
c9caafb2a4
Replace memory db with lrucache for temporary storage of sessions ( #292 )
2020-09-10 14:49:48 +02:00
Dustin Brody
64d880b24d
tweak phrasing to trigger CI to run again
2020-08-24 13:34:45 +02:00
Dustin Brody
9c9b9d5e2e
WAL pragma setting for in-memory databases results in "memory", not "wal"
2020-08-24 13:08:35 +02:00
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
kdeme
7464c8cb4b
discv5: reorganize protocol code somewhat
2020-03-24 16:45:15 +02:00
kdeme
6ec942a195
discv5: quick fix for leaking pending requests
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
a9ff761d68
For now use directly address/id instead of Node to workaround node isNil problem in edge cases
2020-03-24 16:45:15 +02:00
kdeme
55b8e3e23f
Update address to UDP endpoint and delete keys on removal from DHT
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
Zahary Karadjov
9c442bf65b
Deal with bit rot in the p2p tracing support
2020-03-18 20:43:53 +02:00
Zahary Karadjov
b3b5854003
Add some simple accessors needed in NBC for the JSON-RPC service
2020-03-17 18:58:11 +02:00
tersec
56f312c69b
port TODOs from nim-beacon-chain lmdb implementation ( #197 )
2020-03-14 11:34:33 +01:00
kdeme
172173b863
Discv5: set recordSeq in whoareyou to 0 so we receive always an ENR
2020-03-10 22:44:10 +01:00
kdeme
596f148974
Discv5: Specifically handle decryption errors
2020-03-10 16:01:04 +01:00
Kim De Mey
19a8c6ee0c
Merge pull request #193 from status-im/discv5-fixes
...
Fix invalid packet in pendingRequest
2020-03-09 10:23:01 +01:00
kdeme
c4c1bb967d
Add ping proc
2020-03-06 17:01:45 +01:00
kdeme
942e978269
discv5: Fix invalid packet in pendingRequest
2020-03-06 15:57:54 +01:00
Jacek Sieka
a899e09f68
fix endian conversion issues
2020-03-05 12:13:48 +01:00
kdeme
4a3ac80c4b
Quick workaround for chronicles json sink issue
2020-03-02 14:10:19 +01:00
kdeme
86bceaa5d8
Add TODO comments from review
2020-03-01 11:50:26 +01:00
kdeme
b951ec45dc
Address review comments from Enterlist PR
2020-03-01 11:46:38 +01:00
kdeme
0d63ff4db4
(Quick)fix hashing for handshakes by adding Ports + tests
2020-02-29 14:16:27 +01:00
kdeme
6b01ada194
Add address to handshakes key
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
Zahary Karadjov
e89e59aa59
`enterList` now returns a bool
2020-02-27 20:09:05 +02: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
Andrea Maria Piana
3a4f97cb13
Increase max-topic-interest to 10K
...
This commit increases max-topic-interest to 10K according to the waku
0.4 specs a6a9d6bcb1
2020-02-26 10:05:24 +01:00
Ștefan Talpalaru
f4712aaf74
rename safeEnterList() to enterList()
...
in order to avoid unhandled exceptions due to malformed data received
over the network
2020-02-25 16:10:09 +01:00
Ștefan Talpalaru
cb27813f3b
log the stack trace on fatal exceptions
2020-02-23 01:53:57 +01:00
Zahary Karadjov
74d0247e6b
Tweak some retry limits and timeouts
2020-02-22 20:49:14 +02: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
6ef16785ce
Add equals operator for keys
2020-02-19 11:11:45 +02:00
Zahary Karadjov
cfdb26db40
[discv5] Advertise the LibP2P TCP port properly
2020-02-18 01:07:23 +02:00
Zahary Karadjov
cca931d0b5
Reduce the use of the general Exception type and improve the exception tarcking in protocol.receive
2020-02-18 00:47:13 +02:00
kdeme
79dfe88ec8
Add Packet encodings tests
2020-02-17 22:38:56 +02:00
kdeme
5daaf73d2e
Clean up logging and some exception handling
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
kdeme
1fcac8b30d
Adjust version check (disabled) and don't pass unsupported RateLimits
2020-02-13 18:40:25 +02:00
Zahary Karadjov
31a4e8f959
Fix one more usage of the old-style IP-as-number handling in ENR
2020-02-12 15:36:39 +02:00
Zahary Karadjov
7b18d6e642
Oops, copying and pasting code is evil
2020-02-12 11:58:14 +02:00
Zahary Karadjov
9908e84935
Use the new enr.Record constructor
2020-02-12 11:58:14 +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
Kim De Mey
b89874f6cc
Merge pull request #162 from status-im/waku-alist
...
Add StatusOptions to Waku Status packet
2020-02-06 20:42:31 +01:00
kdeme
419bc4730d
More sensible timeout values for the Whisper/Waku handshake
2020-02-06 19:19:54 +01:00
Zahary Karadjov
7e836a2c96
Fix a logical typo
2020-02-06 16:32:00 +01:00
Zahary Karadjov
d70bb85392
Review all exceptions and classify them as Defects and Errors
2020-02-06 16:32:00 +01:00
Zahary Karadjov
81e0ae12b0
Allow starting the discovery v5 bootstrap process without ENR records
2020-02-06 16:32:00 +01:00
kdeme
18799f1491
Add StatusOptions alist and remove WakuMode
2020-02-04 20:25:50 +01:00
kdeme
40b96e2d3c
Check range on deserialising enum
2020-02-04 11:15:01 +01:00
Jacek Sieka
1756f7b41f
result -> stew/result ( #159 )
2020-01-24 09:24:29 +01:00
kdeme
3ee5651b7c
Rework the metrics and add metrics for dropped envelopes due to full queue
2020-01-23 17:58:59 +02:00
kdeme
84015d0d1d
Set of just the msg hash is enough, fixes #156
2020-01-23 17:58:59 +02:00
Zahary Karadjov
fc327718fb
Added PrivateKey.toKeyPair
2020-01-21 18:58:26 +02:00
kdeme
85a2b24920
Lower verbosity of logging in processQueue
2020-01-14 19:02:34 +01:00
kdeme
ab287d234a
Fix ordering of Waku/Whisper queue and increase queue capacity
2020-01-14 18:17:37 +01:00
kdeme
5e476dd7d2
Make counter metrics public
2020-01-14 15:36:21 +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
129710d3e4
Liveness checks
2020-01-08 17:22:43 +02:00
Yuriy Glukhov
5795054dbf
Per @kdeme's comments. Limit ENR size, fix rlp len check
2020-01-08 17:22:43 +02:00
Yuriy Glukhov
9772fbe470
Use addresses instead of stubs as db keys
2020-01-08 17:22:43 +02:00
Zahary Karadjov
988d743c9a
Introduce enr.TypedRecord that can replace enr.Record in the future
2020-01-08 17:22:43 +02:00
Zahary Karadjov
39857d57f0
Fix build issues manifesting in our controlled build environment
2020-01-08 17:22:43 +02:00
Zahary Karadjov
54bb1adac9
Export some private APIs needed in nim-beacon-node
2020-01-08 17:22:43 +02:00
Yuriy Glukhov
eda6c2906c
Discv5 WIP
2020-01-08 17:22:43 +02:00
Zahary Karadjov
edd674662a
Handle missing keys in enr.Record.get()
2020-01-08 17:22:43 +02:00
Yuriy Glukhov
992aeecd29
ENR parsing and serialization
2020-01-08 17:22:43 +02:00
Yuriy Glukhov
091239a710
Addded non-recoverable signature type and routines
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
48c9adbb6a
Changes to be more according to Waku spec
2019-12-19 22:48:51 +01:00
kdeme
ac30d7f589
Add envelope valid and dropped metrics for Waku/Whisper
2019-12-18 11:32:05 +02:00
kdeme
a514db1427
Fix PoW to be specifically uint64 as it is a float64 value that is being passed
2019-12-17 17:07:34 +01:00
kdeme
f940162b6b
Implement Waku mode PoC
2019-12-12 23:23:26 +01:00
kdeme
b2656cc3a9
Fix review comments, or not really, just add more TODOs
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
Ștefan Talpalaru
655fc43751
doPortMapping(): don't set the external IP
...
because some IGDs can't handle it
2019-12-12 01:57:05 +01:00
andri lim
e0e49b1711
implement hexary trie replicate iterator
2019-12-11 11:50:45 +02:00
kdeme
59ba63f74c
Fix double whisper types export by moving to separate file
2019-12-10 12:18:52 +01:00
Zahary Karadjov
5bd7baaf9c
Fix regression in RLPx
2019-12-09 23:14:11 +02:00
Zahary Karadjov
3f721e7ef6
[P2P DSL] Add a separate genUserHandlerCall helper
2019-12-09 16:18:22 +02:00
Jacek Sieka
4c6878343c
tighten a few imports
2019-12-09 14:37:21 +02:00
kdeme
9165ff8549
Merge pull request #137 from status-im/no-zero-send
...
Do not send empty messages packets at interval
2019-12-09 03:58:12 -08:00
kdeme
0229547c41
More explicit Exceptions + fix re-raising
2019-12-04 12:34:37 +01:00
kdeme
2dcccf19b2
Do not send empty messages packets at interval
2019-12-03 16:50:05 +01:00
andri lim
146eeddd65
add trie/db.nim
2019-12-03 01:41:57 +02:00
kdeme
4976bd9fb9
Replace getCurrentException and getCurrentExceptionMsg
2019-12-02 23:35:34 +02:00
Zahary Karadjov
a54fdc8073
Cosmetic renames to match the protocol naming conventions
2019-11-25 19:55:41 +02:00
kdeme
bc2b76f09a
cleaner solution for sharing the queue
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
kdeme
8d45b22033
Remove duplicated code in waku_protocol by importing whisper_types
2019-11-21 19:35:27 +02:00
Oskar Thoren
b4638a5867
wkk -> waku rlpx based on discussion
2019-11-21 19:35:27 +02:00
Oskar Thoren
4be5382a15
Waku version 0 (after fix-119)
2019-11-21 19:35:27 +02:00
Oskar Thoren
c841906593
Waku Fix crash due to zero version
2019-11-21 19:35:27 +02:00
Oskar Thoren
5281e46634
Waku: rename capability to wkk
...
According to `doc/p2p.md` capability should be three letters. I can't see this
in https://github.com/ethereum/devp2p/blob/master/rlpx.md#capability-messaging
though, but better safe than sorry.
This also dismabiguates and stays somewhat consistent in vocabulary:
Whisper -> Waku
whisper -> waku
shh -> wkk
2019-11-21 19:35:27 +02:00
Oskar Thoren
243d2d8b27
waku: whisper-> waku; version 0
2019-11-21 19:35:27 +02:00
Oskar Thoren
2c49d4adb8
waku/0 init
2019-11-21 19:35:27 +02:00
Yuriy Glukhov
10e35d3def
Support for compressed public key format
2019-11-21 11:50:12 +02:00
kdeme
9c19f1e5b1
First go at splitting up Whisper protocol layer and message structures
2019-11-19 11:03:49 +00:00
zah
7a39a50c27
Allow devp2p sub-protocols to use version 0; Fix #119 ( #121 )
2019-11-19 08:16:35 +01:00
kdeme
680e52ec24
Do not start the peer pool loop when discovery is disabled
2019-11-08 13:42:15 +00:00
kdeme
bcc3ab3955
Add Whisper staging nodes and Status bootnodes
2019-11-05 11:49:31 +01:00
kdeme
44400ee549
Fix nim v1.0.2 compile issues
2019-10-29 14:44:26 +02:00
Zahary Karadjov
aa1f7f2c06
Fix a typo
2019-10-23 13:36:22 +03:00
Zahary Karadjov
52b5ca9c9c
Make the 'single record inlining' behavior optional
2019-10-23 13:01:53 +03:00
Zahary Karadjov
517adbbbca
Small fixes needed for the latest ETH networking spec
2019-10-23 12:10:19 +03:00
Zahary Karadjov
14e99e0711
Changes related to the new ETH interop spec
...
* RPC requests and responses with a single parameter are now inlined
2019-10-23 12:10:16 +03:00
kdeme
98be627bcc
Make msgId fixed int32
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
77834d1df0
Beginning of bzz protocol + simple handshake tester
2019-10-17 21:59:32 +09:00
kdeme
02a6906c01
Remove the p2p disconnect handling from dispatchMessages
2019-10-14 12:01:01 +02:00
kdeme
757ac1ab86
Remove standalone define and add specific afl/libFuzzer define
2019-10-11 15:25:11 +02:00
kdeme
9ee208876d
Fix possible AssertionError in ByteRange due to invalid access
2019-10-10 14:40:40 +02:00
kdeme
903b72a5c8
Fix AssertionError on ByteRange slice with nonexistent position
2019-10-10 13:14:24 +02:00
kdeme
9b69910570
Fix AssertionError that should be RlpTypeMismatch
2019-10-10 13:07:20 +02:00
kdeme
87f2a51a1b
Fix segfault + fix IndexError (causes also segfault in release)
2019-10-09 22:19:41 +02:00
kdeme
4cf3262902
Fix possible AssertionError in typedranges on rlp reading invalid list
2019-10-09 22:06:00 +02:00
kdeme
c64a370fe7
Whisper documentation updates
2019-10-03 17:08:39 +03:00
kdeme
5bc7612e2f
Add bloom size check and no longer raise on sendMsg failures
2019-10-03 16:38:14 +03:00
kdeme
9dccfe27f4
Use stew/endians2 for endianness conversion
2019-10-03 16:38:14 +03:00
Jacek Sieka
0f020d5df8
compat with latest chronos
2019-09-10 17:28:38 -04:00
Bruno Škvorc
f3aad8f925
Small clarification to protocol name length doc
...
As per conversation in PR
2019-08-20 21:33:16 +03:00
kdeme
8451ce6c3b
Add necessary re-exports, fixes #91
2019-08-20 13:59:34 +03:00
nolash
5dc8117a07
Allow longer rlpx protocol names (for compatability with swarm)
2019-08-19 20:33:38 +03:00
kdeme
9fb79d0d88
Refactor bootnodes and whispernodes
2019-08-16 08:50:58 +02:00
Zahary Karadjov
f0315b0988
RLP serialization routines for types used in the ETH2 spec
2019-08-15 17:45:25 +02:00
Zahary Karadjov
f8da72ca96
Fix the build when json logging is enabled
2019-08-14 17:19:55 +02:00
Yuriy Glukhov
4552e0333d
Export EIP155_CHAIN_ID_OFFSET
2019-08-13 10:42:50 +02:00
Zahary Karadjov
1fe3de6c39
Changes required for the latest ETH2 spec
2019-08-07 06:13:45 +03:00
Yuriy Glukhov
3e1ce94961
Moved Transaction encodings from nimbus
2019-08-06 10:33:55 +03:00
kdeme
aef7522788
Disconnect on failed persistWorkItem + add comments
2019-08-01 17:28:41 +03:00
kdeme
5389884ecf
Add max open files limit of 512 to rocksdb init
2019-07-18 21:15:35 +02:00
Ștefan Talpalaru
e195868a64
metrics: port to new API
2019-07-17 00:21:37 +02:00
Ștefan Talpalaru
0a5ffaa8b3
small syntax change for collector declaration
2019-07-16 13:10:34 +02:00
Ștefan Talpalaru
620573f63c
use new nim-metrics API
2019-07-16 14:06:46 +03:00
kdeme
14ae046354
Increase rlpx maxMsgSize *10
2019-07-11 17:19:19 +02:00
Ștefan Talpalaru
a1a285c290
NAT: move setControlCHook() outside the library
2019-07-11 12:13:13 +03:00
Ștefan Talpalaru
93637fa060
Merge branch 'master' of github.com:status-im/nim-eth
2019-07-10 15:35:19 +02:00
Ștefan Talpalaru
6bd5c35986
forgot about metric naming convention
2019-07-10 15:34:50 +02:00
kdeme
da5a7a54ed
Merge pull request #79 from status-im/removecheck
...
Cleanup unneeded check in getBlockHeaders
2019-07-10 15:00:15 +02:00
kdeme
fb7743e9db
Prepare for allowing BlockNumber as int64
2019-07-10 14:27:11 +02:00
Ștefan Talpalaru
d445412297
use nim-metrics
2019-07-10 03:01:30 +02:00
kdeme
646a58dbc0
Cleanup unneeded check in getBlockHeaders
2019-07-09 17:06:20 +02:00
kdeme
1797b76351
Add check for reverse getBlockHeaders
2019-07-08 18:03:55 +03:00
kdeme
3088cb462e
Support skip and reverse in the GetBlockHeaders request + reactivate getBlockBodies
2019-07-08 18:03:55 +03:00
Jacek Sieka
75c7c62651
std_shims -> stew
2019-07-07 11:56:01 +02:00
kdeme
3d2436d3df
Provide empty RLP list data for devp2p ping/pong messages, for Parity compatibility
2019-07-04 09:43:29 +02:00
kdeme
325d120274
Add capability-id and context-id rlp list in header-data for Parity compatibility
2019-07-04 09:43:29 +02:00
kdeme
934a247c23
Add/update some debugging info
2019-07-04 09:43:29 +02:00
kdeme
13a32811aa
Fix leading zeroes bug + add tests from geth and parity
2019-06-27 12:03:55 +02:00
Ștefan Talpalaru
799b1a7bb0
initial statistics collection setup
2019-06-26 14:49:38 +02:00
Zahary Karadjov
07484bfc88
Refactorings enabling more code reuse in the libp2p back-ends
2019-06-24 05:12:23 +03:00
Zahary Karadjov
8acdbedfbd
Fix a simple merge issue
2019-06-24 05:12:23 +03:00
Zahary Karadjov
11fce4122e
Pre and post-serialization steps for send procs
2019-06-24 05:12:23 +03:00
Zahary Karadjov
9191bc7851
Bugfix: Fix an empty name field in the ETH/LES protocol info
2019-06-24 05:12:23 +03:00
Zahary Karadjov
bac87ff6d2
Restore the compilation of Nimbus by restoring the support for p2pProtocol decorators
2019-06-24 05:12:23 +03:00
Zahary Karadjov
a492e3c218
More flexible definitions of Responders
2019-06-24 05:12:23 +03:00
Zahary Karadjov
1adad7f4da
Fixes for compiling beacon_node in RLPx mode
2019-06-24 05:12:22 +03:00
Zahary Karadjov
e4ec051fc6
Take advantage of the new shared DSL helpers to simplify the RLPx back-end implementation
2019-06-24 05:12:22 +03:00
Zahary Karadjov
638442070d
Simplified the generation of sender procs
2019-06-24 05:12:22 +03:00
Zahary Karadjov
76bb2cde5c
More shared code extracted out of RLPx
2019-06-24 05:12:22 +03: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
0a5d6118c2
Add check if message loop is finished during connection stage
2019-06-21 15:58:40 +03:00
kdeme
7cb5ac050b
Add discovery tests against regression of recently fixed bugs
2019-06-18 20:10:14 +03:00
kdeme
21c3c3946d
Fix another Assertion + change error pragma to fatal
2019-06-14 16:15:09 +03:00
kdeme
dc02a5b28d
Fix two AssertionErrors from being raised all the way up
2019-06-14 16:15:09 +03:00
kdeme
f068a54312
Seperate transport close exceptions in blockchain sync
2019-06-14 16:15:09 +03:00
kdeme
46255c31d1
Make use of peer.connectionState in whisper and blockchain sync + add note in docs
2019-06-12 16:30:01 +03:00
kdeme
0966a4e9ca
Adjust deprecated use of sleepAsync
2019-06-11 15:31:00 +02:00
kdeme
b44675eda5
Same error handling for rlpxAccept as for rlpxConnect
2019-06-11 14:38:02 +02:00
kdeme
f8bdec88c9
Rework duplicate connections check and fix #36
2019-06-11 12:46:26 +02:00
kdeme
ee27111e2b
actually, lets fix it in readAheadCheck
2019-06-07 16:11:33 +03:00
kdeme
f40bf032ba
Add remaining bytes check in toBytes
2019-06-07 16:11:33 +03:00
kdeme
d2d6d7fc16
Fix overflows and add + activate tests
2019-05-30 22:01:07 +03:00
cheatfate
88b3b949a8
Fix return value handling for transport.write().
2019-05-30 13:37:45 +03:00
kdeme
dfe7d43d19
Resolve without altering Rlp API
2019-05-28 13:37:08 +03:00
kdeme
6b5af745a2
Add several checks for currently unhandled errors
2019-05-28 13:37:08 +03:00
kdeme
b977996b0a
Fix unhandled exceptions
2019-05-15 15:10:11 +03:00
Yuriy Glukhov
55e1eff4a9
Merge pull request #39 from kdeme/bug/fix-transport-leaks-#37
...
Bug/fix transport leaks #37
2019-05-09 23:58:40 +08:00
kdeme
42fbbb8961
Make the wait + close not blocking
2019-05-09 14:26:02 +02:00
Yuriy Glukhov
130d984d8b
Added randomPeers iterator with protocol filter
2019-05-09 19:05:31 +08:00
kdeme
b62d091963
Remove double transport close
2019-05-09 10:35:02 +02:00
kdeme
6ba61488ff
Fix transport leaks + handle disconnects in message loop
2019-05-09 10:35:02 +02:00
Ștefan Talpalaru
88ded1b7c6
make block numbers out of sequence a CatchableError
...
and check the Option objects from peer.getBlockBodies(hashes)
2019-05-08 01:41:29 +02:00
kdeme
69691f56d2
No reraise on RlpTypeMismatch in processClient
2019-05-05 19:54:27 +03:00
Ștefan Talpalaru
bb79902399
eth/net/nat.nim: delete unused var
2019-05-03 17:24:17 +02:00
Ștefan Talpalaru
05bf76c537
fix logic error
2019-04-29 17:32:37 +02:00
Ștefan Talpalaru
4fbb4603fc
Merge branch 'master' of github.com:status-im/nim-eth
2019-04-29 17:06:09 +02:00
Ștefan Talpalaru
20abba71d0
UPnP: port mapping check no longer a show stopper
2019-04-29 17:05:25 +02:00
kdeme
442c3d9f7b
More whisper changes ( #43 )
...
* Make messages with invalid ID a catchable error as we should not disconnect on this
* Add unimplemented message IDs used by Status
* Make whisper log less verbose + add comment on duplicate messages
* Cleanup + add documentation
2019-04-26 07:36:54 -06:00
Ștefan Talpalaru
ecc1a995aa
Windows: a new thread is created for the signal handler
2019-04-25 03:06:11 +02:00
Ștefan Talpalaru
12f2a87de3
kademlia: turn exception into warning
2019-04-25 01:17:11 +02:00
Ștefan Talpalaru
d0d09559b8
workaround for https://github.com/nim-lang/Nim/issues/4057
2019-04-25 00:25:34 +02:00
Ștefan Talpalaru
7ec1433b01
Merge branch 'master' of github.com:status-im/nim-eth
2019-04-23 20:50:34 +02:00
Ștefan Talpalaru
c5e564d771
more gcsafe pragmas for Nim HEAD
2019-04-23 17:03:32 +02:00
Jacek Sieka
e1af5a0c02
don't swallow random exceptions ( #11 )
2019-04-22 19:31:12 -06:00
kdeme
5d9239ef17
Quick fix for when removePeer gets called before dispatcher is initialized
2019-04-18 17:17:57 +02:00
kdeme
7cdd31e982
Add option to set specific protocol for observer
2019-04-18 17:17:57 +02:00
kdeme
31290b6b35
Fix to only allow sync for peer with eth support
2019-04-18 17:17:57 +02:00
Ștefan Talpalaru
0b01d1f028
Merge branch 'nat'
2019-04-17 15:40:21 +02:00
Ștefan Talpalaru
3db5f4c5dd
external IP retrieval and port mapping functionality
2019-04-17 03:35:45 +02:00
Yuriy Glukhov
f295418f75
Lower bonding failed msg verbosity
2019-04-15 12:50:00 +03:00
kdeme
c4b25ba708
Quick fix for overflow on 32bit systems
2019-04-12 16:43:43 +02:00
Yuriy Glukhov
2c12746c03
Use chronos durations
2019-04-10 20:03:58 +03:00
Yuriy Glukhov
ca8519ef61
Workaround compilation error cause by chronos newFuture changes
2019-04-10 18:16:18 +03:00
Yuriy Glukhov
bc23b68c95
Comments addressed
2019-04-10 10:04:48 +03:00
Yuriy Glukhov
02843c0013
Fixed discovery busyloop when no bootnodes provided
2019-04-09 11:06:32 +03:00
Yuriy Glukhov
b84c228364
Retry bootstrapping in case of failure
2019-04-08 15:39:03 +03:00
kdeme
ac766bf7b3
Fix decoded dst bug + add tests
2019-04-08 14:28:50 +03:00
kdeme
6e7822e210
Change default minimum PoW to same value as geth
2019-04-08 14:28:50 +03:00