Commit Graph

496 Commits

Author SHA1 Message Date
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
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
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
bec1937f63 chore: rm rpc type imports (#645) 2022-12-29 17:08:41 +01:00
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
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
96735ecfdc fix: advance buffer after enr decode (#647)
* advance buffer after enr decode

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

* revert fmt & clippy to nightly
2022-12-29 14:55:06 +02:00
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
47d044942b patch nightly toolchain (#642) 2022-12-29 11:16:35 +01:00
15e6a359b4 fix: enable missing feature (#644) 2022-12-29 11:07:49 +01:00
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
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
d9d0ba14c4 docs: add outgoing request diagram (#630) 2022-12-28 20:36:53 +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
c3432bc284 feat(rpc): add rpc builder support (#635) 2022-12-28 15:55:30 +02:00
1ba81191f6 perf(net): backoff on IO error (#633) 2022-12-28 12:43:02 +01:00
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
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
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
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
1c3d704244 docs: fix indentation (#626) 2022-12-27 06:43:26 -08:00
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
a2c1cdb399 refactor(net): deduplicate error variants (#619) 2022-12-26 23:29:26 +01:00
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
d2b4081849 feat: Enable ExecutionStage (#622) 2022-12-27 00:09:04 +02:00
bfe2fd6221 ci: add eth chain test. Set prevrandao after merge (#621)
* Small changes

* feat: Add eth chain test to ci. Set prevrandao after merge

* Update .github/workflows/ci.yml

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

* move env

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2022-12-26 22:55:46 +01:00
410a1f9cfe perf: allocate responses capacity (#618) 2022-12-26 21:38:00 +02:00
daa65e7f58 docs: expose db on book summary 2022-12-26 18:27:53 +02:00
0744799515 docs(book): db chapter. (#444)
* Added framework and start to draft for stages, stopping here to get feedback on approach before pushing forward

* Update README.md

Fixing some wording / grammar.

* Fixing grammar/wording.

* Added note about non-exhaustive stages list, fixed grammar, fixed State exectuion function name, updated language to reflect that the stream yields a SealedHeader and added language to describe that the initial header validation is only a basic validation.

* updated stages chapter, added bodies, senders, execution, next chapter prelude

* typo

* Added line numbers to code snippets for the stages chapter of the reth book

* address reverse header download + other nits

* add note about book hosting

* tweaked wording, formatting

* Address typo "staring"

* Address typo "HeadderDownloader"

* consolidated book.toml

* updating snippets in stages chapter to ignore errors

* reviewing db crate, starting draft

* Added framework and draft for db chapter

* reformatting to be more readable

* added DbTx and DbTxMut

* updating language, structure of chapter

* restructured chapter to be a more logical read, covered the nested traits throughout the Database trait, added section about cursors.

* wording, header sizes

* updated spacing between headers and sections

* wording

* updated db chapter

* added links to code snippets

* added additional links to code snippets

* removed dup table in list of tables

* updated code snippet and link in codebase

* Update book/db/README.md

Co-authored-by: Andrew Kirillov <20803092+akirillo@users.noreply.github.com>

* updated chapter to mention how Transactions deref trait works to access DbTx::get()

* wording

* fixed typo

* Added a note about the encode and decode traits

* Added a note about the compress and decompress traits

* fixing issues with merge

* removed repetitive example

* a word

Co-authored-by: Andrew Kirillov <andrew@paradigm.xyz>
Co-authored-by: Andrew Kirillov <20803092+akirillo@users.noreply.github.com>
2022-12-26 18:23:40 +02:00
f21a4020b1 feat(execution): Add ommers reward (#611)
* feat(execution): Add ommers reward

* Refactor and add comments
2022-12-26 15:44:51 +01:00
ebd686a407 refactor(net): rename and restructure wire error types (#614) 2022-12-26 16:33:59 +02:00
8779000460 test(net): add test for dropped pending no response (#613) 2022-12-26 15:51:14 +02:00
f1c1fb85ff fix(net): add no response to backoff check (#610) 2022-12-26 14:00:01 +02:00
bb10305d09 Fix typo and rename remaining ExecutorDb to StateProvider (#608)
* Fix typo

* ExecuterDb -> StateProvider
2022-12-26 13:41:29 +02:00
ba585cf7d9 fix: do not lowercase table arg in db list (#606) 2022-12-25 22:52:39 +02:00
3a07eb930f feat(net): add nat external ip crate (#605) 2022-12-25 18:22:31 +02:00
73e12341c4 feat(net): Make PeerManager emit peerevents for admin rpc (#602)
* Make PeerManager emit peerevents for admin rpc

* Fix tests to include new peer events
2022-12-25 10:00:10 +01:00
19a618e3a4 fix(db): Dont compress DupSort SubKey (#594)
* bug(db): Dont compress DupSort SubKey

* unwrap or default config, Added notes

* fmt empty lines
2022-12-25 01:13:03 +01:00
5affa67805 refactor(net): unify closed incoming session handling (#600) 2022-12-24 12:38:21 +01:00
43008b7b07 feat: Add PeerEvent to NetworkEvent enum (#574)
* Add peerAdded and peerRemoved events to NetworkEvent enum

* Remove unnecessary todo macros
2022-12-24 10:25:09 +01:00
7c80dde0ec fix(net): check for handshake disconnect (#596) 2022-12-24 00:58:43 +01:00
4e677b5993 refactor(net): unify dropped connection handling (#595) 2022-12-23 21:46:44 +01:00
284391c181 test(execution): chain test state check, execution bug fixes/upgrades (#472)
* temp: header stage backoff stand-in

* feat(execution): Check chain post state, fix StateProviderLatest and evm return

* Disable receipt merkle tree check

* update and merge

* Fix storage double values in dup table

* fmt

* Update bin/reth/src/test_eth_chain/runner.rs

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

* Enable receipt root check after byzantium

* Receipt inner rlp without header for proof root

* some cleanup nits

* nit

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-23 18:42:19 +01:00
f8d1521c50 fix: set stage progress metric to absolute value (#593) 2022-12-23 18:14:53 +01:00
562e895f21 ci: unused dependencies sanity check (#590)
* ci: add unused deps sanity check

* ci: fix unused deps issue template title

* ci: rename udeps job

* chore: formatting

* chore: make `cargo-udeps` ignore `aquamarine`

* deps: resolve unused deps

* ci: check every feature and target in udeps job
2022-12-23 13:19:50 +01:00
9d439d6fc8 chore(deps): bump ethers (#591) 2022-12-23 13:04:35 +01:00
2f81137d66 ci: fix sanity check issue template frontmatter 2022-12-23 12:42:49 +01:00
affead471d ci: fix sanity job 2022-12-23 12:30:06 +01:00