Commit Graph

661 Commits

Author SHA1 Message Date
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
Gyuho Lee
5085ac7cfc docs: fix typo "the" (#767)
Signed-off-by: Gyuho Lee <gyuho.lee@avalabs.org>

Signed-off-by: Gyuho Lee <gyuho.lee@avalabs.org>
2023-01-08 13:05:36 +01:00
Matthias Seitz
da59ead58d fix(net): use mapped v4 when inserting records (#761) 2023-01-07 13:36:13 +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
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
Sanket Shanbhag
1b5bc5e1f7 Rotate peers when fetching (#743) 2023-01-06 12:21:42 +01:00
Matthias Seitz
a94560fc5d fix(disc): use lookup target for distance (#742) 2023-01-06 09:41:09 +02: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
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
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
Roman Krasiuk
28f67b371d feat(download): dynamically adjust body request (#718)
* feat(download): dynamically adjust body request

* add tests

* Update crates/net/downloaders/src/bodies/concurrent.rs

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

* add comment

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2023-01-04 11:08:28 -08:00
Roman Krasiuk
8c413ad0a9 trace(download): failed requests (#715) 2023-01-04 19:55:59 +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
3a67809cb7 test: test ack encoding (#699) 2023-01-03 18:09:00 +02:00
Matthias Seitz
13f143d06d feat(disc): add set_lookup_interval function (#696) 2023-01-03 16:53:52 +01: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
Roman Krasiuk
a7f8d4fc39 feat(download): body downloader tracing (#691)
* feat(download): body downloader tracing

* rm unused import

* add request & response len
2023-01-03 13:28:56 +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
Aurélien
e73b0019fa Add admin_(add|remove)TrustedPeer on admin rpc (#678) 2023-01-02 12:15:50 +01:00
Aurélien
05cb56788d Change terminal_block_number type to U64 (#677) 2023-01-02 02:47:25 -08:00
Matthias Seitz
dafc01dde7 feat(net): add eth66 to default caps (#673) 2023-01-01 18:32:35 +02: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
Matthias Seitz
4efb7b92b8 fix(discv4): ignore self-entry on neighbours response (#664) 2022-12-30 06:09:22 -08:00
Roman Krasiuk
a7d8059357 test(engine): consensus engine tests (#648) 2022-12-30 13:17:27 +02: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
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
bec1937f63 chore: rm rpc type imports (#645) 2022-12-29 17:08:41 +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
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
Matthias Seitz
c3432bc284 feat(rpc): add rpc builder support (#635) 2022-12-28 15:55:30 +02:00
Matthias Seitz
1ba81191f6 perf(net): backoff on IO error (#633) 2022-12-28 12:43:02 +01:00