Commit Graph

384 Commits

Author SHA1 Message Date
75fb90be9a refactor: move metrics endpoint to node cmd (#505)
* refactor: move metrics endpoint to node cmd

* feat: value names

* refactor: simplify db path parsing
2022-12-18 13:57:37 +02:00
2b06d43465 chore: add codeowners (#504)
* chore: add codeowners

* chore: add @onbjerg as owner of `bin`
2022-12-18 00:26:43 +01:00
253aae5ea9 RLP decoding error tracing (#499)
* Add tracing to ProtocolMessage::decode errors

* Change trace message formatting

Now it prints the bytes as a hex string.
Also changed trace level to WARN and added 'handshake' to one of the traces to differentiate between them

* Add prefix to raw message bytes

* Specify 'eth' in trace message

to differentiate it from other handshakes

Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>

Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2022-12-16 20:57:48 -05:00
0a4bf67c32 chore: complete StageDB -> Transaction renaming (#497) 2022-12-16 23:16:31 +01:00
4da574df84 feat: add prometheus support (#474) 2022-12-16 20:21:26 +01:00
c1f124d3e3 feat(net): temporarily ban bad peers (#492)
* feat(net): temporarily ban bad peers

* use half duration interval

* Update crates/net/network/src/peers/manager.rs

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

* fix bad test

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2022-12-16 18:22:25 +01:00
3989d5d3e0 feat: add more tables to db list (#491)
* feat: add more tables to db list

* feat: table macro for db command

* feat: lowercase table arg in db cmd

* chore: fix some rustdocs
2022-12-16 18:00:15 +01:00
daaf039fbf feat(sync): state transition indexes (#449)
* introduce state transitions and revert/modify block bodies table

* init refactor

* revamp transaction iteration based on bodies and add state transition mappings

* change expected return on empty db execution

* interim commit

* fix body downloader & stage

* refactor(bodies/dl): make fetch bodies fn more clear

* chore: disable unused vars/fns temporarily until exec is back

* chore: fmt

* test: fix tests

* use transitions in execution stage

* clarify empty unwind test

* remove last_tx_index fn

* rename fn and var names

* fix full block response comment

* rename fetcher`s get_block_body to get_block_bodies

* Update crates/stages/src/db.rs

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

* fmt

* fix index overlap check error

* uncomment eth chain command

* fix doc comment

* typos

* cleanup

* any_last_tx_index -> last_tx_index

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
2022-12-16 08:37:49 -08:00
345b2c35b9 fix: apply reputation (#487)
* fix: apply reputation

* add note
2022-12-16 13:36:58 +01:00
635203759b feat(discv4): support eth entries (#447)
* add ENRRequest and ENRResponse messages

 * todo: encode and decode impls

* scaffold enrrequest and enrresponse msgs

* implement encodable and decodable for enr

* cargo fmt

* impl sending enr requests

* silence clippy for now

* add todos for enrrequest and response in mocks

* make payload length fold more explicit

* feat: add enr support to ping pong

* integrate enr

* add update methods

* add enr handling

* feat: add enr handling

* integrate fork id

* fix: set frontier forkid

* disable eip868 by default

* address comments

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-12-16 14:14:19 +02:00
864e6481da fix: set forkfilter correctly (#486)
* fix: set forkfilter correctly

* fix types

* update tests
2022-12-16 14:14:07 +02:00
8e4a35ae31 chore: clean up traces (#481)
* chore: clean up traces

* fix: typo in error
2022-12-16 11:24:46 +02:00
ca204a346d chore: use later block (#480)
The block we chose for testing sync previously did not include
any transactions.
2022-12-16 11:18:27 +02:00
617ae3604d feat(doc): Changeid table design (#430)
* Table design

* v2

* v3

* Update database.md

* Update docs/design/database.md

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-16 10:20:43 +02:00
e9ec6c2847 fix(sync): remove redundant error (#476) 2022-12-16 10:08:49 +02:00
6a70494612 fix(net): use frontier forkid as default (#478) 2022-12-16 10:08:16 +02:00
f89fb4b453 fix(sync): database integrity header error message (#475) 2022-12-15 23:00:56 +01:00
b1ce398dff feat(net): add Status to session established event (#473) 2022-12-15 22:37:03 +01:00
2b0f5316f9 fix(sync): headers stage progress (#467)
* fix(sync): headers stage progress

* add tests to head/tip and split suite

* fix(sync): headers stage progress

* add tests to head/tip and split suite

* fix local tip and address comments

* rename error
2022-12-15 10:41:32 -08:00
789dc3bc87 feat: request multiple bodies per request (#468) 2022-12-15 18:39:47 +01:00
9cd5824f35 chore: rename StageDB to Transaction (#470)
* chore: rename StageDB to Transaction

* chore: cargo fmt

* chore: add note about potentially removing this in the future
2022-12-15 18:14:14 +02:00
c10bdb5830 feat: add flag for displaying log target (#469) 2022-12-15 18:08:29 +02:00
6e577c6e5f feat(net): request peer by id through PeersHandle (#464) 2022-12-15 17:10:21 +02:00
f509213cb4 refactor: clean up reth node (#450)
* feat: parse genesis block from a json spec

* refactor: clean up `init_genesis`
2022-12-15 17:09:31 +02:00
9208f2fd9b test(execution): execution test runner (#426)
* wip run chain test

* dump pre test state

* bug: fix casting to revm spec

* wip move execution to std thread

* wip scoped thread execution

* fmt clippy

* Update crates/stages/src/stages/execution.rs

* Update bin/reth/Cargo.toml

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

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

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

* Correct models for chain tests

Co-authored-by: rakita <dragan0rakita@gmail.com>
Co-authored-by: rakita <rakita@users.noreply.github.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-15 13:39:55 +01:00
4c298ac022 docs: macos install steps (#460)
* Add MacOS installatin docs

* move installatio instruction to book

* move installatio instruction to book

* fix installation link in readme

* Remove installation link from docs, add link to installation in book summary

Co-authored-by: Satoshi Okamoto <satoshi@butcher73.com>
2022-12-15 12:55:59 +01:00
48fadbdf2e fix: missing import 2022-12-15 13:53:20 +02:00
f8b4251886 feat: don't stop the pipeline on internal stage errs (#453)
* feat: don't stop the pipeline on internal stage errs

* test: add tests for pipeline err handling

* chore: few notes

* refactor: stage error fatal/recoverable variants

* refactor: use recoverable errors in headers stage

* test: adjust tests

* chore: nits

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

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-15 12:48:41 +01:00
9dbf280bfb docs(net): add bird's eye view docs (#456) 2022-12-15 11:36:58 +02:00
22dc50e5f6 feat(sync): download peer penalization (#427)
* feat(sync): download peer penalization

* peer penalization

* add tracing on penalization

* add trace on request

* rename consensus back

* clippy

* fix tests

* nit: download result

* nit: fix comment

* rename penalize() to report_bad_message() and move DownloadError

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-15 10:42:18 +02:00
f2707d32b5 fix(net): kick useless peers (#451) 2022-12-15 10:04:22 +02:00
c23c65fc3b feat(net): draft for sending status updates through NetworkHandle (#436)
* feat(net): draft for sending status updates through `NetworkHandle`

* feat(net): draft for sending status updates through `NetworkHandle`

* fix(net): remove unused import

* feat(net): implement getters for status update sender half

* docs(net): document methods

* chore: cargo fmt

* feat(net): move status updating logic to NetworkManager and NetworkHandle

* feat(net): move status updating logic to NetworkManager and NetworkHandle

* fix(net): fix headers stage testing

* fix: derive default

* fix: remove StatusUpdate struct

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-12-15 08:59:28 +01:00
7b6bf0820e fix(cli): remove usage of StageDB on DbTool (#448)
* use view and update instead of StageDB

* change DbTool docs

* clippy
2022-12-15 08:33:49 +01:00
43f6bb9127 feat(net): integrate discovery banlist (#442)
* feat(net): integrate discovery banlist

* fix typos
2022-12-14 19:47:11 +02:00
ae2fc494c8 test: fix header dl error test (#441) 2022-12-14 17:32:26 +02:00
c2719ec27e chore(deps): bump secp256k1 from 0.24.1 to 0.24.2 (#440)
Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1) from 0.24.1 to 0.24.2.
- [Release notes](https://github.com/rust-bitcoin/rust-secp256k1/releases)
- [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/secp256k1-0.24.2/CHANGELOG.md)
- [Commits](https://github.com/rust-bitcoin/rust-secp256k1/compare/secp256k1-0.24.1...secp256k1-0.24.2)

---
updated-dependencies:
- dependency-name: secp256k1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-14 16:40:16 +02:00
4430089b71 fix(download): header download stream (#438)
* fix(downloader): rewrite header stream

* rm unused import

* add comment

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-14 16:38:10 +02:00
35a41a29f9 style: unify slice access and bytes (#437) 2022-12-14 16:26:08 +02:00
d5d876b286 fix(headers-stage): do not exit stage on downloader error (#439)
* fix: return ctrl to pipeline on header dl error

* chore: adjust log levels

* ecies: improve tag check error granularity

* chore: instrument read_ack/read_auth

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
2022-12-14 16:25:54 +02:00
28121a4504 chore: cargo fmt 2022-12-14 15:51:15 +02:00
83c89a85e9 Add additional logs for P2P debugging (#434)
* feat: make logs on network manager more granular

* feat: log error on session disconnect

* temp: manual peer

* temp: manual peer

* feat(linear-dl): make BadResponse error more descriptive

* feat(linear-dl): log retries on future

* chore: add target

* chore: add target

* chore: remove unused var

* chore: remove manual peer override

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
2022-12-14 13:53:49 +02:00
9946f232a7 chore(net): improve session error traces (#435) 2022-12-14 13:48:28 +02:00
601bdc5022 feat: wire components together in reth node (#416)
* feat: naively wire up components

* chore: clippy lints

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-14 12:51:56 +02:00
12e7f0acbc feat(net): make Status and Hello configurable (#431)
* feat(net): make Status and Hello configurable

* set port
2022-12-14 11:39:09 +01:00
ac5efc0749 fix(download): stream loop (#433) 2022-12-14 11:39:02 +01:00
ad191efe88 fix: typo (#432) 2022-12-14 10:46:24 +01:00
500f98c9a3 fix(net): use adjust correct counters (#429) 2022-12-14 10:55:26 +02:00
df9d14127d Reth Book - Stages framework/draft (#360)
* 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

* template & removed empty fields from book.toml

* addressed build issues, added templating for source code

* only deploy on push to main

* using single quotes in github action if expression

Co-authored-by: Andrew Kirillov <andrew@paradigm.xyz>
Co-authored-by: Andrew Kirillov <20803092+akirillo@users.noreply.github.com>
2022-12-14 10:30:45 +02:00
cbbdac2701 chore(disc): log channel errors (#428) 2022-12-14 09:06:16 +01:00
10d960c5d6 refactor(disc): use discv4 as log target (#423) 2022-12-13 21:56:20 +01:00