Commit Graph

160 Commits

Author SHA1 Message Date
Enrique Ortiz
cfef666886 Network: Extend NetworkInfo trait with NetworkStatus (#923) 2023-01-19 14:43:51 -05:00
Matthias Seitz
aadc21cf30 fix(net): reset backoff counter on graceful disconnect (#918) 2023-01-18 11:43:26 -05:00
Matthias Seitz
a1dfafe331 docs: additional response handling docs (#917) 2023-01-18 11:33:56 -05:00
Matthias Seitz
7db6791d9d perf: tighten reputation change units (#916) 2023-01-18 11:27:14 -05:00
Aurélien
115e623ae6 Ability to (de)serialize NetworkConfigBuilder (#897) 2023-01-18 11:17:43 +01:00
Aurélien
f9de425ad8 refactor: unify all chains confs (#747)
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2023-01-17 07:47:34 -08:00
Dan Cline
55d1db0c1d feat(network): move test helpers to test-utils mod (#901) 2023-01-17 11:18:53 +01:00
Matthias Seitz
79fad91ca0 feat(net): integrate num active peers in downloader (#900)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2023-01-17 01:31:52 -08:00
joshieDo
d50d9bd0fe chore(net): Add proptest roundtrip to rlp types (#829) 2023-01-16 09:50:58 -08:00
David Kulman
16ce828e27 feat(net) Increase the timeout for peers that are to be backed off repeatedly (#828)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2023-01-14 12:22:15 +01:00
Sanket Shanbhag
5c80bc9122 fix: validate fork_id before adding peer from discovery (#871) 2023-01-13 18:30:34 +01:00
Tomás
a5bdfe54dd feat(net): prioritize requesting peers with low latency (#835)
Co-authored-by: lambdaclass-user <github@lambdaclass.com>
2023-01-13 16:01:39 +01:00
Enrique Ortiz
0603f07c6c feat(net): add way to get the NodeRecord of the local node (#875)
Co-authored-by: Enrique Ortiz <evalir@users.noreply.github.com>
2023-01-13 15:57:29 +01:00
Matthias Seitz
18dbcd4e6a fix: use correct boolean conversion for direction (#870) 2023-01-13 15:50:39 +01:00
Sanket Shanbhag
e3dbaf686e feat: include optional ForkId in Discovery (#863) 2023-01-13 13:30:08 +01:00
Matthias Seitz
3f9e7a080a feat(net): introduce PeersInfo trait (#860) 2023-01-13 12:04:39 +01:00
Matthias Seitz
7767b216bc feat: integrate DNS discovery service (#832) 2023-01-13 10:34:13 +01:00
Matthias Seitz
ba3048ceb0 refactor: add network-api crate (#838) 2023-01-12 19:39:44 -08:00
LambdaClass
4460dc7b25 feat(net): adaptable request timeouts (#789) 2023-01-12 11:10:14 +01:00
Bjerg
20ee1bb1c9 refactor: move cli trace helpers to reth-tracing (#820) 2023-01-11 10:20:37 -08:00
Enrique Ortiz
dc8edcabb3 chore: double default session event buffer to 128 (#819)
Co-authored-by: Enrique Ortiz <evalir@users.noreply.github.com>
2023-01-11 17:43:19 +01:00
Bjerg
2e95ed4b6e fix: make config serialize as toml (#811) 2023-01-11 13:36:41 +01:00
TurboFish
16d506d21c add a helper function for ActiveSession on_request to safely emit_message (#806)
Co-authored-by: turbofish <junwow@amazon.com>
2023-01-11 11:04:23 +01:00
Matthias Seitz
55bc2591e6 fix(net): handle outgoing connection error correctly (#798) 2023-01-10 21:30:17 +01:00
Dimitris Apostolou
31cb66902e fix: Fix typos (#773) 2023-01-09 01:43:51 +01:00
David Kulman
05e9c79cc5 feat(net) Add TransactionsManager Metrics (#769)
* Added TransactionsManager Metrics

* Remove tracking of peers

* Add propagated_transactions
2023-01-08 18:38:07 +01:00
Andrew Kirillov
2da828478c feat(net): Bandwidth monitoring (#707)
* WIP for draft PR

* added basic test

* using BandwidthMeterInner type & added TcpStream test

* formatted

* formatted w/ +nightly

* using  &  for  and

* formatted

* added default impl for BandwidthMeter

* using _bandwidth_meter bc unused

* removed redundant clone

* addressed nits, renamed file

* addressed nits, renamed file
2023-01-06 21:43:13 +01:00
Sanket Shanbhag
1b5bc5e1f7 Rotate peers when fetching (#743) 2023-01-06 12:21:42 +01:00
Bjerg
ade1ea4216 refactor: clean up StateFetcher::next_peer (#738)
* refactor: clean up `StateFetcher::next_peer`

The `&mut Peer` is unused, so we do not need to
return it.

* chore: idiomatic rust
2023-01-05 23:38:31 +01:00
Bjerg
ee8b0efed6 fix: apply correct reputation dmg on bad msg (#739) 2023-01-05 23:20:34 +01:00
Matthias Seitz
babf73612f feat(net): add granular backoff durations (#729)
* feat(net): add granular backoff durations

* update backoff durations
2023-01-05 14:09:38 +02:00
Sanket Shanbhag
e4bd5b4fe9 feat(net): add NetworkMetrics (#708)
* Added NetworkMetrics

* update docs

* add more metrics and make naming consistent

* add active inbound and outbound connection metrics
2023-01-05 10:17:57 +01:00
Matthias Seitz
5a58554596 test: add debug test for getting headers (#713) 2023-01-04 16:07:23 +01:00
Matthias Seitz
42f3245a11 feat(net): penalize peers that send same transactions (#712) 2023-01-04 15:56:40 +02:00
Matthias Seitz
5933014fba test(net): more txpool testing support for network (#711) 2023-01-04 14:36:51 +02:00
Matthias Seitz
6f3eb42d32 feat(net): ignore transactions during sync (#705) 2023-01-04 13:06:12 +02:00
joshieDo
6407b5087e chore: use B160, B256 and U256 coming from revm and ruint (#676)
* use B256, B160 and U256 from revm

* fix U256 from_str

* use U256::ZERO

* use temporary commit for revm and interpreter

* more U256::ZERO

* more changes for revm/ruint types

* clippy

* change revm and revm-interpreter repo

* remove H160 wrap

* minor cleanup

* remove unused

* fix MIN_PROTOCOL_BASE_FEE
2023-01-04 11:11:48 +02:00
Matthias Seitz
db4f0befee fix: bump request timeout (#695) 2023-01-03 16:12:05 +02:00
Aurélien
65bc3cb7b8 RPC Admin namespace implementation (#685)
* AdminApi first draft

* Implement add_trusted_peer and remove_trusted_peer

* Fix tests

* Refactoring NetworkHandle peer related methods

* Refactoring add_discovered_node in PeersManager

* Change record type from String to NodeRecord

* Adding NetworkHandleMessage::RemovePeer command
2023-01-03 14:02:05 +01:00
Matthias Seitz
debf21d34e feat: add SyncState traits (#693)
* feat: add SyncState traits

* docs: clarify execution stage
2023-01-03 14:56:50 +02:00
LambdaClass
346d50ebf4 feat: test trusted peers functionality (#687)
* Add test for trusted_peer prioritization

* Add test for connect_trusted_nodes_only flag
2023-01-02 18:36:50 +01:00
LambdaClass
efac887e30 chore: add serde feature to network crate (#653)
* Add serde feature and support for PeersConfig

* Add Duration fields and Weights

* Add serde for ConnectionInfo field
2023-01-01 18:27:55 +02:00
Matthias Seitz
ed55c2bf2b docs(net): update best_unconnected docs (#670) 2023-01-01 17:16:30 +02:00
LambdaClass
1f6a9436ac feat(net): enforce trusted_nodes_only setting (#660)
* Add PeerKind and enforce trusted_only setting

* Don't remove trusted peer on graceful close

* Don't remove trusted nodes on PeerCommand::Remove

* Rename PeerKind::NonTrusted to Basic

* Move PeerKind::is_trusted to Peer impl

* Add trusted peer prioritization
2023-01-01 12:14:10 +01:00
GeemoCandama
f5ae970e63 feat(cli): add --disable-discovery (#597)
* redo add disable_discovery cli flag

* incorporate option into discovery test

* smol touch up

* rustmft

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-12-30 10:56:59 +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
Ayush
de6630a121 feat(network): get peer info (#603)
* Create struct PeerInfo

* Add GetPeerInfo command

* Minor changes

* Use oneshot::sender

* Add GetPeerInfoById

* Use async/await

* Add client_id to establish connection

* Add method calls

* Add test_get_peer

* Add test_get_peer_by_id

* fmt changes

* clippy changes

* chore: rustfmt

* smol touch ups

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-12-29 14:20:17 +01:00
Roman Krasiuk
565a0aa90b feat(engine): new payload execution (#631)
* feat(engine): new payload execution

* address PR comments

* rm unused dev deps

* add comment about lru

* remove par_iter
2022-12-29 02:36:56 -08: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
d9d0ba14c4 docs: add outgoing request diagram (#630) 2022-12-28 20:36:53 +01:00