Commit Graph

68 Commits

Author SHA1 Message Date
15d79cedad chore(deps): upgrade secp256k1+enr (#1715) 2023-03-15 11:15:55 +01:00
e5a0fc6550 chore(clippy): make clippy happy (#1710) 2023-03-11 16:27:24 +02:00
e494011819 chore(discv4): remove deprecated EF bootnodes (#1680)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2023-03-09 02:08:05 -08:00
9bdbbb2b9e fix(disc): trigger bootstrap if table empty (#1621) 2023-03-03 15:07:19 -05:00
dc57fbad07 fix(disc): allow concurrent lookups (#1539) 2023-02-24 13:21:05 +01:00
b21f24c7cc test(disc): fix flaky ping test (#1443) 2023-02-18 11:27:36 +01:00
a0410e46b7 fix(disc): only start pinging new node if insert succesful (#1435) 2023-02-17 17:46:05 +01:00
bacb3c59b2 fix(disc): ensure timestamp is within bounds of UNIX timestamp (#1433) 2023-02-17 16:26:28 +01:00
94f759761a fix(disc): enforce expiration timestamps by default (#1427) 2023-02-17 12:04:22 +01:00
ae2441a9f9 perf(disc): evict after processing incoming packets (#1400) 2023-02-16 21:45:32 +01:00
6005ecb89a perf(net): emit all discovred nodes (#1414) 2023-02-16 21:07:27 +01:00
f979c6c1fb chore: reexport bytes & bump version to 1.4 (#1395) 2023-02-16 10:33:28 -08:00
b0e79fd4a5 perf(disc): only remove node from table if its bucket is half full (#1412) 2023-02-16 10:16:53 -08:00
8a214d6f04 perf(disc): allow more FindNode failures (#1411) 2023-02-16 18:08:50 +01:00
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
804d8bf1da fix(disc): check insert result on neighbours response (#1401) 2023-02-16 14:03:19 +01:00
7842036c93 fix(disc): add missing expiration checks on messages (#1375) 2023-02-15 11:49:41 -05:00
007409601f fix(disc): only initiate endpoint proof if insert was succesful (#1377) 2023-02-15 11:48:20 -05:00
73ffc425a3 chore(disc): add traces when node record added (#1303) 2023-02-12 19:03:03 +01:00
d40d9e4d15 test(disc): add wrong to test (#1286) 2023-02-11 13:09:48 -08:00
d82553cd66 fix(disc): initiate endpoint proof on ping (#1258) 2023-02-09 23:04:33 +01:00
1d1d90bd19 feat: optional serde features (#1214)
Co-authored-by: lambdaclass-user <github@lambdaclass.com>
2023-02-07 15:52:32 -08:00
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
1f64d8e9d7 refactor: pull reth/common/rlp up to reth/rlp (#1146) 2023-02-02 13:54:13 -08:00
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
115e623ae6 Ability to (de)serialize NetworkConfigBuilder (#897) 2023-01-18 11:17:43 +01:00
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
bcbc3dacc7 test: rm multi_thread flavor for tests (#865) 2023-01-13 13:50:05 +01:00
49132a8d1a feat: Add neighbours_max_ipv4 test (#836) 2023-01-12 17:39:23 +01:00
20ee1bb1c9 refactor: move cli trace helpers to reth-tracing (#820) 2023-01-11 10:20:37 -08:00
da59ead58d fix(net): use mapped v4 when inserting records (#761) 2023-01-07 13:36:13 +01:00
1d2e0526a8 fix(disc): convert mapped ipv6 address (#754) 2023-01-06 18:26:40 +02:00
09bb2d9149 fix(disc): use remote addr for NodeRecord on ping (#753) 2023-01-06 17:48:55 +02:00
f359992dc3 feat(disc): add another self entry check (#748) 2023-01-06 14:43:29 +02:00
a94560fc5d fix(disc): use lookup target for distance (#742) 2023-01-06 09:41:09 +02:00
6cf5427af3 style(discv4): use event buffer (#737) 2023-01-05 17:50:09 +01:00
f924880d5d perf(disc): only initiate another auto lookup when previous finished (#733) 2023-01-05 17:46:18 +02:00
56cc999c5e fix(disc): mark node as queried before ping (#731) 2023-01-05 17:38:57 +02:00
13f143d06d feat(disc): add set_lookup_interval function (#696) 2023-01-03 16:53:52 +01:00
4efb7b92b8 fix(discv4): ignore self-entry on neighbours response (#664) 2022-12-30 06:09:22 -08:00
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
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
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
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
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
c2ad7b1b06 chore(disc): unify duration settings and naming (#539) 2022-12-20 13:35:22 +01:00
3df86187d1 chore(deps): remove discv5 fork dep (#536)
* chore(deps): remove discv5 fork dep

* bump deps
2022-12-20 12:13:51 +01:00
c53b2bcccb feat(net): use NodeRecord instead of enode format (#530)
* feat(eth-wire): add timeouts to tests using Geth

* feat(net): use NodeRecord instead of enode format

 * make NodeRecord::new pub instead of pub(crate)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-12-19 17:57:02 -05:00
f8b719e04c refactor(disc): use KBucekt entry API (#518)
* refactor(disc): use entry API

* refactor(disc): cleanup

* chore: rustfmt
2022-12-19 16:54:03 +01:00
bffc829bcb perf(net): increase udp channel buffers (#508)
* perf(net): increase channel buffers

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

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2022-12-18 15:22:19 +01:00