Commit Graph

520 Commits

Author SHA1 Message Date
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
Matthias Seitz
6311915ead chore: move metrics dep to dev-dep (#694) 2023-01-03 16:11:51 +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
Matthias Seitz
c7dc22fd41 fix: remove BlockExecutor default impl 2023-01-03 13:24:06 +01: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
Matthias Seitz
13441ff299 style: rm redundant Pipeline::new (#682) 2023-01-02 14:58:31 +01:00
Matthias Seitz
ec69481af4 ci: use nightly for sanity workflow (#679) 2023-01-02 13:41:03 +02:00
Roman Krasiuk
fc977b27bd meta: latest nightly for lint (#675) 2023-01-02 13:40:29 +02: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
Roman Krasiuk
cb6ddfcc43 feat(sync): total difficulty stage (#665)
* feat(sync): total difficulty stage

* linter

* rm commented log

* patch current td in headers tests
2023-01-01 19:03:25 +02: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
Satoshi Okamoto
97d87409bc Reth book for user (#666)
* add reth book structur

* introduction to reth

* add system requirement

* update docs

* Add node detail

* add Disclaimer for disk estimate

* add Disclaimer for disk estimate

* add comman-line options

* matrics docs

* add logs docs

* remove disk usage for now

* Add disable-discovery flag in cli docs #597

Co-authored-by: Satoshi Okamoto <satoshi@butcher73.com>
2023-01-01 17:16:53 +02:00
Matthias Seitz
ed55c2bf2b docs(net): update best_unconnected docs (#670) 2023-01-01 17:16:30 +02:00
Sanket Shanbhag
20847845e2 feat: raise fd limit of the binary (#668)
* raise fd limit of the binary

* Remove tracing and return error

* Ignore errors
2023-01-01 12:49:00 +01: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
Sanket Shanbhag
24d5612027 rename StateProvider structs (#663) 2022-12-30 13:58:44 +02: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
mempirate
b5d8b6d4dd feat(node): print peer ID and addr on startup (#655)
* feat(node): print peer ID and addr on startup

* fix(node): print full PeerId on startup
2022-12-29 22:31:39 +01:00
LambdaClass
6efd50b25f bug(execution stage): Fix ommers error (#661)
* Start loosing ommers checks

* Replace ommers database integrity error in execution stage for unwrap_or_else so that node does not stop when block has no ommers

* Replace ommers database integrity error in execution stage for unwrap_or_else so that node does not stop when block has no ommers
2022-12-29 22:31:08 +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
rakita
c62574b2fd bug(consensus): Remove mixHash zero check after merge (#652)
* bug(consensus): Remove mixHash zero check after merge

* chore(clippy): make clippy happy

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-12-29 16:14:54 +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
Sanket Shanbhag
96735ecfdc fix: advance buffer after enr decode (#647)
* advance buffer after enr decode

* Update test
2022-12-29 14:50:01 +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
208118caa4 meta: stable toolchain (#640)
* switch ci toolchain to stable

* revert fmt & clippy to nightly
2022-12-29 14:55:06 +02: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
Roman Krasiuk
47d044942b patch nightly toolchain (#642) 2022-12-29 11:16:35 +01:00
Matthias Seitz
15e6a359b4 fix: enable missing feature (#644) 2022-12-29 11:07:49 +01:00
Sanket Shanbhag
28669d4aa8 fix(sync): return control from HeaderStage back to pipeline (#609)
* Headerstage now gives control back to pipeline after commit_threshold blocks have been synced

* Updated tests

* Only take required number of headers from the stream

* Simplified stage complete check
2022-12-29 00:57:49 -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
Andrew Kirillov
d4d8a8c882 Moves code walkthrough book chapters to docs (#629)
* replaced template blocks with code blocks in stages chapter

* replaced template blocks with code blocks in network chapter

* moved book sections to docs

* fix indentation in recover_signer codeblock

* remove unnecessary TODO comment in network.md
2022-12-28 10:24:39 +01:00
Andrew Kirillov
a51fa4fd63 docs(book): start book chapter for network crate (#445)
* WIP FOR DRAFT PR

* WIP draft, walking through usage in pipeline

* diving deeper into instantiation of NetworkHandle & FetchClient

* WIP network management task & eth requests task done (ish)

* address pr comments: networkmanager as standalone task, networkconfig as main entrypoint for setup

* complete draft of the  crate docs

* restructured, starts w/ expl of

* added more snippets/anchors

* using ignore flag on code blocks, brief explanation of  struct

* typos addressed
2022-12-27 14:53:15 -08: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
Mariano A. Nicolini
c2b19cecef feat: add txpool metrics (#584)
* feat(metrics): `Metrics` derive macro

* rename metrics to metrics-derive

* use fully qualified fmt path

* metric vec with capacity

* favor metrics over simple scope attr, simplify code

* pull metric description from doc comment

* rm debug log

* add more docs and sample usage

* link to metrics macros

* add tests for metrics derive macro

* clippy

* Fix doc of headers_unexpected_errors field of HeaderMetrics

* Add tx pool metrics struct and metrics updates in code

* Format file

* Update metrics doc

* Add some comments

* Format file

* Refactor metrics describers for consistency

* Format files

* Fix broken import

* Apply metrics macro to TxPoolMetrics

* Remove unused imports

* Remove unused commented code

* Remove files

Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2022-12-27 16:44:41 +01:00
Matthias Seitz
1c3d704244 docs: fix indentation (#626) 2022-12-27 06:43:26 -08:00
Roman Krasiuk
5bb14ecb7c fix(metrics): metrics derive separator (#625)
* fix(metrics): metrics derive separator

* fix existing metrics

* rm log

* static regex
2022-12-27 03:16:41 -08:00
Matthias Seitz
a2c1cdb399 refactor(net): deduplicate error variants (#619) 2022-12-26 23:29:26 +01:00
Roman Krasiuk
663efa8d2a feat(metrics): Metrics derive macro (#592)
* feat(metrics): `Metrics` derive macro

* rename metrics to metrics-derive

* use fully qualified fmt path

* metric vec with capacity

* favor metrics over simple scope attr, simplify code

* pull metric description from doc comment

* rm debug log

* add more docs and sample usage

* link to metrics macros

* add tests for metrics derive macro

* clippy

* simplify path comparison

* cleanup

* remove unused dep

* rename stage metrics
2022-12-26 14:27:24 -08:00