Commit Graph

416 Commits

Author SHA1 Message Date
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