Commit Graph

73 Commits

Author SHA1 Message Date
Matthias Seitz
fdf2792833 fix(discv4): track whether endpoint is proven (#1984) 2023-03-26 19:07:59 +02:00
Dan Cline
ee226fc889 feat: use dnsdisc peers for discv4 bootstrap (#1983) 2023-03-26 12:42:08 +02:00
François Garillot
075544e889 refactor: various cleanups (#1833)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2023-03-18 14:13:09 +01:00
Dan Cline
7ac06cd29f feat: use chain specific bootnodes (#1826) 2023-03-17 19:28:00 -04:00
his-dudenesss
57894f7b98 Issue 1770 move rlp impl for enr to discv4 crate (#1804)
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-03-16 16:59:29 -07:00
Matthias Seitz
15d79cedad chore(deps): upgrade secp256k1+enr (#1715) 2023-03-15 11:15:55 +01:00
Matthias Seitz
e5a0fc6550 chore(clippy): make clippy happy (#1710) 2023-03-11 16:27:24 +02:00
Rafael Matias
e494011819 chore(discv4): remove deprecated EF bootnodes (#1680)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2023-03-09 02:08:05 -08:00
Matthias Seitz
9bdbbb2b9e fix(disc): trigger bootstrap if table empty (#1621) 2023-03-03 15:07:19 -05:00
Matthias Seitz
dc57fbad07 fix(disc): allow concurrent lookups (#1539) 2023-02-24 13:21:05 +01:00
Matthias Seitz
b21f24c7cc test(disc): fix flaky ping test (#1443) 2023-02-18 11:27:36 +01:00
Matthias Seitz
a0410e46b7 fix(disc): only start pinging new node if insert succesful (#1435) 2023-02-17 17:46:05 +01:00
Matthias Seitz
bacb3c59b2 fix(disc): ensure timestamp is within bounds of UNIX timestamp (#1433) 2023-02-17 16:26:28 +01:00
Matthias Seitz
94f759761a fix(disc): enforce expiration timestamps by default (#1427) 2023-02-17 12:04:22 +01:00
Matthias Seitz
ae2441a9f9 perf(disc): evict after processing incoming packets (#1400) 2023-02-16 21:45:32 +01:00
Matthias Seitz
6005ecb89a perf(net): emit all discovred nodes (#1414) 2023-02-16 21:07:27 +01:00
Roman Krasiuk
f979c6c1fb chore: reexport bytes & bump version to 1.4 (#1395) 2023-02-16 10:33:28 -08:00
Matthias Seitz
b0e79fd4a5 perf(disc): only remove node from table if its bucket is half full (#1412) 2023-02-16 10:16:53 -08:00
Matthias Seitz
8a214d6f04 perf(disc): allow more FindNode failures (#1411) 2023-02-16 18:08:50 +01:00
Matthias Seitz
39949fdd08 fix(disc): only answer FindNode if endpoint proof exists (#1404)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2023-02-16 17:42:11 +01:00
Matthias Seitz
804d8bf1da fix(disc): check insert result on neighbours response (#1401) 2023-02-16 14:03:19 +01:00
Matthias Seitz
7842036c93 fix(disc): add missing expiration checks on messages (#1375) 2023-02-15 11:49:41 -05:00
Matthias Seitz
007409601f fix(disc): only initiate endpoint proof if insert was succesful (#1377) 2023-02-15 11:48:20 -05:00
Matthias Seitz
73ffc425a3 chore(disc): add traces when node record added (#1303) 2023-02-12 19:03:03 +01:00
Matthias Seitz
d40d9e4d15 test(disc): add wrong to test (#1286) 2023-02-11 13:09:48 -08:00
Matthias Seitz
d82553cd66 fix(disc): initiate endpoint proof on ping (#1258) 2023-02-09 23:04:33 +01:00
Tomás
1d1d90bd19 feat: optional serde features (#1214)
Co-authored-by: lambdaclass-user <github@lambdaclass.com>
2023-02-07 15:52:32 -08:00
Tomás
27b07f57f0 fix: add serde feature to secp256k1 dep in discv4 (#1205)
Co-authored-by: lambdaclass-user <github@lambdaclass.com>
2023-02-07 15:19:53 +01:00
Georgios Konstantopoulos
1f64d8e9d7 refactor: pull reth/common/rlp up to reth/rlp (#1146) 2023-02-02 13:54:13 -08:00
Bjerg
87306f2892 ci: ensure docs build (#1073)
Co-authored-by: xqft <estefano.bargas@fing.edu.uy>
Co-authored-by: lambdaclass-user <github@lambdaclass.com>
2023-01-27 18:49:22 +01:00
Aurélien
115e623ae6 Ability to (de)serialize NetworkConfigBuilder (#897) 2023-01-18 11:17:43 +01:00
Georgios Konstantopoulos
e9792c1b46 fix: compilation errors due to api breakages
follow up from https://github.com/paradigmxyz/reth/pull/888 merge conflict fix failure
2023-01-17 18:19:00 -08:00
Matthias Seitz
bcbc3dacc7 test: rm multi_thread flavor for tests (#865) 2023-01-13 13:50:05 +01:00
David Kulman
49132a8d1a feat: Add neighbours_max_ipv4 test (#836) 2023-01-12 17:39:23 +01:00
Bjerg
20ee1bb1c9 refactor: move cli trace helpers to reth-tracing (#820) 2023-01-11 10:20:37 -08:00
Matthias Seitz
da59ead58d fix(net): use mapped v4 when inserting records (#761) 2023-01-07 13:36:13 +01:00
Matthias Seitz
1d2e0526a8 fix(disc): convert mapped ipv6 address (#754) 2023-01-06 18:26:40 +02:00
Matthias Seitz
09bb2d9149 fix(disc): use remote addr for NodeRecord on ping (#753) 2023-01-06 17:48:55 +02:00
Matthias Seitz
f359992dc3 feat(disc): add another self entry check (#748) 2023-01-06 14:43:29 +02:00
Matthias Seitz
a94560fc5d fix(disc): use lookup target for distance (#742) 2023-01-06 09:41:09 +02:00
Matthias Seitz
6cf5427af3 style(discv4): use event buffer (#737) 2023-01-05 17:50:09 +01:00
Matthias Seitz
f924880d5d perf(disc): only initiate another auto lookup when previous finished (#733) 2023-01-05 17:46:18 +02:00
Matthias Seitz
56cc999c5e fix(disc): mark node as queried before ping (#731) 2023-01-05 17:38:57 +02:00
Matthias Seitz
13f143d06d feat(disc): add set_lookup_interval function (#696) 2023-01-03 16:53:52 +01:00
Matthias Seitz
4efb7b92b8 fix(discv4): ignore self-entry on neighbours response (#664) 2022-12-30 06:09:22 -08:00
LambdaClass
75ebfcf0d6 chore: add RLP encoding support for IpAddr (#659)
* Add rlp encoding support for IpAddr

* Lock support behind std feature

* Replace Octets with IpAddr

* Derive Rlp traits for NodeEndpoint

* Derive Rlp traits for NodeRecord
2022-12-29 22:27:51 +01:00
Matthias Seitz
3ab6c278e8 fix(net): improve error propagation (#620)
* fix(net): improve error propagation

* refactor: unify on closed session

* add noop helpers

* add noop helpers

* test setup

* test: add dropped connection test

* rename mock --> test-utils
2022-12-29 16:05:56 +01:00
Tomás
76e76bb651 feat: add trusted nodes configuration (#569)
* Add preferred nodes to config

* Add preferred nodes on boot

* Add flag in config for trusted only mode

* Add preferred nodes configuration to config

* Fix comment

* Add preferred nodes to config file

* Rename preferred_nodes to trusted_nodes

* Change preferred to trusted

I renamed preferred_nodes to trusted_nodes in various places.
Seems I missed quite a bit of them.

* Pull trusted_only from config

* Rename DiscoveryConfig to PeersConfig

* Fix last commit

Now actually renamed DiscoveryConfig

* Rename trusted_only to connect_trusted_nodes_only

* Add helper function

* Use HashSet for boot_nodes and trusted_nodes

* Change trusted nodes functions in ConfigBuilder

* Move trusted peers from discv4 to network config

* Add trusted nodes to peers on Manager creation

* Use NodeRecord in trusted_nodes config

* Fix comment

* Move trusted_nodes config to PeersConfig

* Add trusted nodes directly to peers

* Move network_config to Config impl

* Move start_network to NetworkConfig impl
2022-12-28 21:48:11 +01:00
Matthias Seitz
525f28a67d feat(net): integrate external public ip auto discovery (#632)
* feat(net): integrate external public ip auto discovery

* Update crates/net/discv4/src/config.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* rename var

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-28 16:14:07 +01:00
Tomás
dcd3923d19 Add serde support for NodeRecord primitive type (#617)
* Add serde support to NodeRecord

* Move NodeRecord to primitives

along with NodeKey and Octets

* Reexport NodeRecord from discv4

* Move NodeKey and kad_key back to discv4::node

Also, move NodeRecord::key functionality to a helper function: discv4::node::record_key.
This avoids the discv5 dependency in the primitives crate.

* Fix NodeRecord (de)serializing

The default derive macros work with a dictionary like display.
Changed that to serde_with macros, that use Display and FromStr traits.

* Add some tests for NodeRecord (de)serializing

* Hide NodeKey struct

* Move Octets after NodeRecord

* Replace record_key with From trait

* Fix clippy error

unnecessary into()
2022-12-27 18:03:54 +01:00