github paradigmxyz/reth v0.1.0-alpha.2
Reth v0.1.0-alpha.2

latest releases: v1.0.7, v1.0.6, v1.0.5...
14 months ago

image

Summary

This release includes a number of stability improvements and bug fixes. If you currently experience any issues with syncing Reth, we strongly suggest you update your node.

The highlights of this release are:

  • Improved stability of the engine API, which improves the connection between Reth and the CL.
  • Addressed a number of Out of Memory (OOM) issues, improving stability.
  • Fixed issues with the RPC, particularly in the trace_* APIs.
  • Added new metrics for the transaction pool, RPC, caches, and other components. Existing metrics were also improved.
  • New metrics were added in this release, so it's highly encouraged for operators to update their Grafana dashboards with the latest version.

The RPC now listens on localhost by default, and metrics are served on port 9001 by default, which may require operators to check their current configuration.

Reth is now also available on some package managers. macOS Homebrew and Linuxbrew users can install Reth with:

brew install paradigmxyz/brew/reth

Arch Linux users can install Reth using an AUR helper (like Paru) with:

paru -S reth # Stable
paru -S reth-git # Unstable (git)

Finally, Reth's Windows builds have been fixed.

Added

  • More metrics for the blockchain tree, which tracks the latest tip and processes incoming blocks from the CL (#3289, #3314).
  • Implementation of eth_getBlockReceipts (#3321).
  • New metric: reth_network_pending_pool_imports, tracks the number of transactions about to be imported to the transaction pool (#3344).
  • New metrics monitoring the amount of messages exchanged between the networking component and the transaction pool component (#3345).
  • Metrics for memory and CPU usage, including allocator statistics if jemallocator is used as the allocator (default except for Windows) (#3435, #3455).
  • Metrics for the size of RPC caches (#3499, #3502, #3513).
  • Metric for the total amount of transactions in the txpool (#3500).
  • The bodies downloader now limits its buffer by a memory usage estimate, replacing downloader_max_buffered_blocks with downloader_max_buffered_blocks_size_bytes in the configuration (#3508).
  • Flags to configure the transaction pool from the CLI were added (#3575).

Fixed

  • eth_feeHistory now returns the correct block ranges and calculates percentiles correctly (#3288).
  • The default transaction ordering in the transaction pool now compares the transaction cost (fee cap * gas limit + tx value) instead of the transaction gas cost (#3389).
  • debug_traceTransaction now includes logs in the trace if requested (#3472).
  • trace_callMany now executes transactions on top of the correct state. Previously, each transaction would be executed on top of the state of the previous block, where they should have been executed on top of the state of the previous block and any modifications prior transactions have made (#3437).
  • The log address is now correct in debug_traceCall (#3481).
  • Block rewards are now present in trace_block if requested (#3491).
  • Sync metrics are now updated after historical sync (#3507).
  • trace_callMany now includes storage diffs (#3549).
  • eth_call now respects state overrides (#3589).

Changed

  • The RPC now listens to localhost by default (#3299).
  • Metrics are now served over port 9001 by default (#3295).
  • The Grafana dashboard supports displaying metrics for multiple Reth nodes (#3336).
  • Metrics for the invalid header cache have moved from reth_invalid_header_cache* to reth_consensus_engine_beacon_invalid_headers_* (#3468).
  • The RPC caches are now configured by length, not size. This change renames some RPC cache flags on the CLI (#3505).

Update Priority

This table provides priorities for which classes of users should update particular components.

User Class Priority
Payload Builders High Priority
Non-Payload Builders Medium Priority

See Update Priorities for more information about this table.

All Changes

  • release: 0.1.0-alpha.2 (#3657)
  • ci: pin ubuntu to 20.04 to avoid glibc errors
  • Revert "add build profile to version info (#3652)"
  • fix: subpool variant order (#3656)
  • chore(txpool): enriched pool transaction event (#3653)
  • chore: add missing helper functions and docs (#3646)
  • add build profile to version info (#3652)
  • chore(prometheus): add localhost:9001 scrape target (#3606)
  • fix(txpool): emit replaced events (#3642)
  • test: use concrete type for arbitrary strategy (#3632)
  • Match statement for handling error messages - reverted and default case (#3640)
  • fix: rm bad flatten (#3637)
  • fix(docs): fix malformed link (#3635)
  • chore: move BeaconConsensusEngineHandle to separate file (#3633)
  • fix: put attribute on correct line (#3636)
  • fix: rm outdated flatten (#3630)
  • fix: populate transaction trace error field (#3627)
  • chore: remove network-api test-utils feature (#3622)
  • chore(engine): warn on inconsistent pipeline (#3623)
  • chore(book): document missing CLI arguments (#3610)
  • docs: add homebrew and arch aur (#3620)
  • chore: add commit to client version (#3621)
  • refactor(stages): use MetricsListener for Execution stage gas metric (#3511)
  • feat: download block ranges (#3416)
  • feat: add error field to parity transaction traces (#3611)
  • fix: correct types in libmdbx-rs for windows (#3608)
  • docs: note that only wsl2 works (#3609)
  • ci: remove broken book workflow (#3613)
  • refactor: extract exceeds pipeline threshold (#3605)
  • perf(trie): post state cursors (#3588)
  • doc: book cli updater (#3576)
  • feat: add ethereum-metrics-exporter (#3573)
  • perf: only record return value if required (#3040)
  • fix: use refunds for root call (#3594)
  • docs: add transaction pool example (#3596)
  • feat(book): recommend more CL checkpoints (#3601)
  • fix(book): change recommended --authrpc.port value from 9999 to 8551 (#3599)
  • chore: change field TransactionTrace order (#3598)
  • docs: remove naked link in installation (#3595)
  • Revert "feat: add cargo binstall support" (#3602)
  • feat: add cargo binstall support (#3578)
  • test: add test for state override json (#3586)
  • fix: use same stale label for prs (#3593)
  • perf: better engine downloads (#3584)
  • fix: use DatabaseRef impl when fetching overriden account (#3589)
  • perf: put all prefix sets in Rc (#3582)
  • refactor: extract on pipeline finished (#3590)
  • feat(txpool): all transactions event listener (#3565)
  • docs(trie): hashed post state & cursors (#3572)
  • docker: don't ignore examples (#3570)
  • feat(cli): txpool args (#3575)
  • chore(crates): deprecate staged-sync (#3564)
  • chore: add stale workflow (#3556)
  • feat(book): adding QLC and TLC NVMEs comparison (#3562)
  • fix: add missing single block body download validation (#3563)
  • docs: update bodies config (#3553)
  • docs: update rpc cache flags (#3552)
  • docs: minimum docker engine version (#3546)
  • fix(rpc): fix parity tracing config (#3549)
  • chore: export TransactionPoolExt trait (#3548)
  • feat: add docker compose with docs (#3496)
  • feat(bin, storage): configurable MDBX log level (#3524)
  • docs: add payload builder example (#3545)
  • fix: create a test db with path (#3482)
  • chore: run tests with coverage in Makefile (#3418)
  • examples: add examples of using reth-provider and instantiating an RPC on top of the DB (#3533)
  • nit: spelling (#3539)
  • feat: add NoopTransactionPool impl (#3536)
  • perf: join futures in tracing (#3541)
  • fix(codec): fix last field compilation check (#3543)
  • chore: fix clippy (#3540)
  • fix: add block rewards to trace_block (#3491)
  • feat(stages, tree): update sync metrics from blockchain tree (#3507)
  • feat: add another distance check (#3501)
  • test: improve slow tests (#3487)
  • chore: add TaskManager must_use annotation (#3525)
  • fix: precompile condition (#3526)
  • docs: add additional context to internal tracing error (#3531)
  • chore: rustfmt (#3532)
  • some docs nits on installation (#3528)
  • feat(error): add wrappers for std::fs methods to track path for errors (#3367)
  • fix(book): typo (#3521)
  • chore(rpc): split cache into multiple files (#3519)
  • chore(download): bodies downloader size limit (#3508)
  • chore: rm cached bytes gauge (#3513)
  • fix(cli): consistent max block across pipeline and engine (#3510)
  • fix(rpc): limit cache by length (#3505)
  • chore: docs typo (again)
  • chore: docs typo
  • docs: add note on hardware + latitude discount code
  • chore: fix docs for bodies downloader task (#3506)
  • feat(bin, stages): metrics listener (#3483)
  • chore(rpc): add cached bytes metric (#3502)
  • chore: add total-transactions metric (#3500)
  • feat(rpc): cache metrics (#3499)
  • feat: make chain canonical if new payload is the missing block for current sync target (#3459)
  • chore: bump default max logs (#3498)
  • fix: always return logs of single block range query (#3497)
  • fix(engine): logs for new payload v2 (#3494)
  • feat(txpool): add transaction_event_listener function (#3493)
  • chore(deps): move proc-macro and syn to workspace deps (#3492)
  • fix: only check timestamped forks after the merge (#2503)
  • fix: use correct address for log (#3481)
  • refactor: move mdbx::test-utils to reth_db::test-utils and add DatabaseEnvRO (#3466)
  • test: disable flakey test (#3486)
  • chore: rename invalid header metrics scope (#3468)
  • chore: put EthPubSubInner in Arc (#3463)
  • chore: replace Option with just vec (#3474)
  • fix: set missing record logs (#3472)
  • chore: fix update prios link (#3478)
  • test: set --authrpc.port to 0 for Geth instance (#3476)
  • chore: mirror geth's encoding order for callframe (#3473)
  • docs: update call fees docs on fallback (#3471)
  • test: run geth blacklist test also serial (#3469)
  • chore: phase out some ethers usage (#3467)
  • feat(stages, storage): pruning configuration (#3341)
  • feat: add default max readers 32000 (#3465)
  • perf: check distance to downloaded block if finalized (#3451)
  • chore: jemalloc and process metrics in Grafana dashboard (#3455)
  • fix: Use random port for port reuse test (#3457)
  • refactor: move init_db to reth_db and add DatabaseEnv (#3450)
  • feat(bin): process & jemalloc metrics (#3435)
  • chore: get rid of some duplicated execution code (#3447)
  • chore: split consensus and revm codecov spaces (#3438)
  • perf: update chain tracker first (#3431)
  • fix: docker build COPY dest should be abspath (#3425)
  • fix(rpc): commit call state in trace call many (#3437)
  • fix(book/jsonrpc): copy/paste typo (#3429)
  • fix: add InsertBlockErrorKind::is_invalid_block block function (#3423)
  • chore: use existing get sealed function (#3426)
  • chore: move on_canonical_state_change to TransactionPoolExt (#3422)
  • feat(storage): do not require Default for derive(Compact) (#3419)
  • refactor: Stage execute and unwind take an immutable provider reference instead (#3390)
  • chore(txpool): generic maintenance task (#3379)
  • fix: keep log guard around until program exits (#3415)
  • refactor: add BlockWriter and BlockExecutionWriter (#3384)
  • feat(cli): clean up log level features (#3414)
  • feat: add getBlockReceipts (#3321)
  • ci: report coverage by component (#3273)
  • feat(book): add consensus layer explanation in book (#3413)
  • fix: print auth server addr (#3410)
  • ci: split checks across pr/merge group/main (#3405)
  • feat: track invalid headers hit counter (#3408)
  • feat: add pending block with receipts (#3404)
  • perf: fetch receipts and transactions concurrently (#3406)
  • fix: exclude non source files in .dockerignore (#3387)
  • fix(txpool): gas cost ordering (#3389)
  • refactor: re-implement eth_feeHistory (#3288)
  • doc: add reth logo to docs (#3317)
  • feat: support multiple nodes in grafana dashboard (#3336)
  • feat(revm): store access list storage keys sorted (#3386)
  • chore: rename Block*Provider for Block*Reader (#3385)
  • chore(provider): simplify history inserts (#3356)
  • feat(ci): validate Grafana dashboard JSON (#3382)
  • doc: self-documented Makefile (#3380)
  • feat: log & receipt test generators (#3357)
  • perf: lower pipeline run threshold to 1 epoch (#3375)
  • chore: Error -> Failed for failed make_canonical call (#3376)
  • editing some code comments in the payload.rs (#3372)
  • feat: add link to Grafana dashboard config file on docs (#3373)
  • doc: minor fix to mainnet run book (#3374)
  • fix: add receive budget (#3361)
  • feat: add transaction validation task (#3358)
  • perf: reduce p2p message capacity (#3371)
  • chore: rename to_session variable (#3359)
  • fix: use RO database for read only commands (#3368)
  • docs(trie): fix typo (#3366)
  • chore: shrink request buffer (#3363)
  • chore: shrink session buffers (#3360)
  • fix: flaky addr in use test (#3364)
  • feat: add transaction pool metrics graphs (#3348)
  • chore(provider): simplify history unwind (#3355)
  • fix: use metered poll fns (#3353)
  • chore: ShardedKey::last helper methods (#3352)
  • chore: simplify usage of IntegerList (#3351)
  • chore: move AccountWriter methods to HashingWriter and HistoryWriter (#3332)
  • feat(cli): jemalloc-prof feature (#3322)
  • fix: insert genesis account & storage history (#3346)
  • feat: add pending receipts (#3320)
  • feat: add metrics for tx channel (#3345)
  • chore: add pending imports metrics (#3344)
  • fix(sync): merkle current block logs (#3326)
  • feat(db): add helper enum for table name (#2935)
  • fix: reorder blockchain tree row (#3337)
  • docs: fix typo in config.md (#3333)
  • feat: add U64HexOrNumber type (#3329)
  • test: add another genesis test (#3334)
  • chore(ci): add missing Hive rpc-compat methods (#3331)
  • feat: js built in functions (#3161)
  • feat(rpc): report JWT path in case of an IO read error (#3324)
  • feat(tasks): pass downcasted error from panicked task (#3319)
  • refactor: adds StorageReader / HashingWriter / HistoryWriter (#3285)
  • fix: remove duplicate tree graph (#3315)
  • feat: add invalid headers metrics (#3314)
  • chore(cli): display latest available block number in status logs (#3316)
  • refactor: add total distance in log message (#3292)
  • feat: add engine api graphs (#3313)
  • chore: improve invalid block warnings (#3312)
  • feat: add blockchain tree metric graphs (#3310)
  • chore: convert debug into warn (#3311)
  • test: add support for seeded rng (#3270)
  • chore: bump engine server size limits (#3308)
  • refactor(rpc): gas allowance calculation (#3304)
  • feat: add initial blockchain tree metrics (#3289)
  • fix(rpc): use max gas limit if no transaction gas is specified (#3260)
  • docs: document crate features (#3269)
  • chore: remove unused client feature (#3300)
  • chore: move bytes to workspace dep (#3302)
  • chore(deps): bump test-fuzz 4 (#3303)
  • test(ethereum): ignore invalid string sequence in ethereum state tests (#3307)
  • feat(stages): replace progress by block_number in PipelineProgress (#3256)
  • feat(revm): record_logs boolean in TracingInspectorConfig to limit log record (#3286)
  • chore: update defaults in builder (#3299)
  • perf: handle sync and engine messages in same loop (#3276)
  • docs: describe reth db version in book (#3296)
  • chore: change metrics default port from 9000 to 9001 (#3295)
  • chore: make clippy happy (#3291)
  • fix: rm node from dockerfile entrypoint (#3275)
  • perf: fetch total difficulty by block number (#3284)
  • fix: fix index out of bounds error if block is empty (#3281)
  • chore: improve empty hardforks panic message (#3279)
  • chore(book): add missing db commands (#3277)
  • docs: images (#3280)
  • docs: mention jwt is in datadir (#3274)
  • docs: update cover
  • chore(book): troubleshooting db issues (#3271)
  • feat(db): reth db path CLI (#3272)
  • chore(ci): book lint (#3266)
  • fix: give js service access to modified state (#3267)
  • fix(book): broken links & missing SUMMARY.md entries (#3262)
  • docs: fix install link in readme (#3265)
  • docs: document e- labels (#3263)
  • chore: link to ghcr in draft releases (#3261)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

System Architecture Binary PGP Signature
x86_64 reth-v0.1.0-alpha.2-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 reth-v0.1.0-alpha.2-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 reth-v0.1.0-alpha.2-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 reth-v0.1.0-alpha.2-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 reth-v0.1.0-alpha.2-aarch64-apple-darwin.tar.gz PGP Signature
System Option - Resource
Docker v0.1.0-alpha.2 paradigmxyz/reth

Don't miss a new reth release

NewReleases is sending notifications on new releases.