Skip to content

Reth v0.2.0-beta.1

Compare
Choose a tag to compare
@github-actions github-actions released this 11 Mar 14:44
· 4120 commits to main since this release
66c9403

image

🎉 Reth goes out of Alpha and enters Beta 🎉

Summary

Reth v0.2.0-beta.1 marks the beginning of our Beta release cycle. Reth is Cancun-ready, syncs from genesis, keeps up with the tip, performs extremely well under heavy RPC load for both point and range queries, and has improved validator performance.

This release includes:

  • Static Files and ETL for better separation of mutable/immutable data and faster initial sync
    • Initial sync time reduced by 4-5 hours, getting close to the sub-48h mark
    • Access speed to historical data increased by up to 10%-100%
    • Disk usage for historical data reduced by up to 10%
    • Ability to offload the historical static files to a separate read-only drive and serve it to multiple nodes
  • Database schema improvements
  • Rework of the networking interface has speeded up Reth's responsiveness to I/O and made it more DoS resistant
  • Resource leak fixes, such as a memory leak in our Transaction Pool

⚠️ Caution ⚠️

Breaking changes

This release includes breaking changes that are not compatible with the nodes synced on alpha versions. Alpha versions will be released with only critical fixes. All users are recommended to upgrade to the Beta release.

Beta update requires a resync from scratch:

  1. Stop your Reth node.
  2. Drop the database: reth db drop.
  3. Update your Reth binary to the latest v0.2.0-beta.1 version.
  4. Start the node using the same command you used on alpha versions.

OP-Reth users

Reth Beta is not compatible with Optimism yet. We expect op-reth to work on Beta in the next v0.2.0-beta.2 release. Until that, it's recommended for the op-reth users to stay on the alpha version.

Update Priority

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

User Class Priority
Payload Builders High
Non-Payload Builders High

See Update Priorities for more information about this table.

All Changes

  • primitives/chain: dev chain support cancun upgrade (#7033)
  • feat(rpc): Add 4844 checks to ethCallBundle (#7078)
  • fix: add timeouts to the hive CI (#7092)
  • chore: more Vec over BytesMut (#7084)
  • fix(storage): backport read-only FS database support (#7091)
  • feat(storage): bump mdbx to 0.12.9 (#7090)
  • fix(bin, node-core): commit genesis header into static files after db (#7089)
  • chore: mount all datadirs in docker-compose.yml (#7088)
  • fix(rpc): less clones in logs filter (#7060)
  • fix(rpc): cache transaction hash when filtering over receipt logs (#7074)
  • chore(deps): weekly cargo update (#7080)
  • chore: inspector stack from evm-inspectors (#7076)
  • grafana/overview: add RPC QPS dashboard (#7025)
  • fix: remove redundant checking for if peer is banned (#7069)
  • Remove tx pool row from reth dashboard (#7029)
  • perf: use special geth tracer config setups (#7062)
  • bump: revm v7.1.0 (#7064)
  • chore: bump max concurrent outbound dials (#7057)
  • chore(txpool): update size metrics on every insert & removal of transactions (#7051)
  • feat(rpc): add support for muxTracer (#7053)
  • chore: be less strict when slashing trusted peers (#7052)
  • bug template use multi-line input for version (#7055)
  • chore: fix typos (#7049)
  • perf: replace BytesMut with alloy_rlp::encode (#7047)
  • feat(trie): parallel storage roots (#6903)
  • chore: bump Grafana version in docker compose (#7032)
  • chore: make clippy happy (#7045)
  • chore: remove repetitive words (#7041)
  • fix: revert filter_logs type (#7046)
  • chore: mem take topics when converting logs (#7048)
  • Revert "chore(github): skip some heavy jobs when PR is not related (#6667)" (#7035)
  • decrease default tracing permits (#7010)
  • docs: more node-builder docs (#7034)
  • test(ef-tests, storage): do not sync_all static files in state tests (#6914)
  • feat(storage): improve current process detection for MDBX HSR (#6917)
  • chore: condition export of generate_blob_sidecar on its cfg (#7023)
  • Update panel descriptions (#7020)
  • release: v0.2.0-beta.1 (#7021)
  • chore(github): skip some heavy jobs when PR is not related (#6667)
  • chore(deps): bump ethers to 2.0.14, enr to 0.10, unpin discv5 (#6634)
  • docs: update static file documentation (#6878)
  • Add new mempool panels + existing mempool panels to new dashboard (#7014)
  • bugfix: hive build-args (#7013)
  • Rename TxType variants to UpperCamelCase (#7012)
  • test(stages): fix deadlock with multiple static file writers (#7011)
  • fix: setting GH_TOKEN for hive tests (#7009)
  • Shorten error message on debug assertion (#6988)
  • chore: remove most ethers mentions and code (#6999)
  • fix: immediately refill slots (#6997)
  • Prioritisation network manager + transactions manager + eth request handler (#6590)
  • ci/test: speed up tests (#6987)
  • chore: use IntoIterator more (#6998)
  • remove clique related tests (#6996)
  • Node tests crate (#6972)
  • chore: use cache to determine hardfork (#6989)
  • fix(staged-sync): correctly calculate total entries in bodies checkpoint (#6992)
  • fix: Canyon timestamp overflow (#6990)
  • test(storage): fix flaky read transaction safety (#6995)
  • test(storage): make read transaction safety tests faster (#6994)
  • chore(node-core): add stage id to eta overflow log (#6991)
  • feat(grafana): override Jemalloc chart axis (#6984)
  • chore: update cargo deny to handle deprecated config entries (#6980)
  • chore: rm more optimism features (#6981)
  • feat: add trace opcode gas (#6977)
  • feat: support any Inspector for block + tx tracing (#6978)
  • chore: rm coverage badge (#6976)
  • feat: add engine API metrics graphs (#6963)
  • Fix smallvec dependency conflict (#6956)
  • feat(node-core): stage progress decimal places (#6974)
  • fix(stages): calculate checkpoints from static files (#6973)
  • chore(node-core): log errors in debug when ETA fails to calculate (#6971)
  • feat: add OP specific txpool (#6902)
  • feat(api,rpc): improve engine API abstraction (#6871)
  • feat(bin): delete static files from highest to lowest in drop stage (#6970)
  • fix(stages, etl): clear ETL collectors in Headers stage when done (#6964)
  • rm deposit from pooledtx (#6941)
  • chore(deps): bump actions/setup-go from 3 to 5 (#6968)
  • chore(deps): bump actions/deploy-pages from 2 to 4 (#6967)
  • chore(deps): bump actions/download-artifact from 3 to 4 (#6966)
  • txpool: track failed delete blobs in cleanup (#6952)
  • Tx fetcher metrics (#6951)
  • restrict max concurrent outbound dials (#6860)
  • Comment TransactionsManager (#6651)
  • feat(trie): metrics (#6943)
  • chore(ci): run clippy with --locked (#6955)
  • cargo: missing once_cell (#6953)
  • chore(deps): bump docker/build-push-action from 4 to 5 (#6950)
  • chore(deps): bump docker/setup-buildx-action from 2 to 3 (#6949)
  • chore(deps): bump actions/upload-artifact from 3 to 4 (#6948)
  • chore(deps): bump peter-evans/create-pull-request from 5 to 6 (#6947)
  • chore(deps): bump actions/stale from 8 to 9 (#6946)
  • feat: dependabot to keep github actions workflows up to date (#6942)
  • feat(storage): log debug commit message only on commit (#6918)
  • feat(storage): use mdbx_txn_reset to time out transactions (#6924)
  • fix(tx-fetcher): only remove peer from active_peers when inflight_count <= 0 (#6928)
  • Small tx response verification optimisation (#6911)
  • Return fetch error on response that fails verification or validation (#6864)
  • Add panel for observing network manager future (#6892)
  • feat: creating issues when hive fails (#6938)
  • chore(deps): weekly cargo update (#6939)
  • chore(task): move blocking pool to reth-tasks (#6929)
  • Filter announcement txns pending import (#6932)
  • feat(transaction-pool): remove deposit variant for mocktransaction (#6931)
  • fix(db): race condition in Tx cached handles (#6923)
  • Add test for tx response verification (#6926)
  • Bump Prod-readiness status (#6921)
  • Revert "feat(storage): use mdbx_txn_reset to time out transactions … (#6919)
  • feat: raw_tx_by_hash (#6827)
  • fix: do not attempt clique header sender recovery on genesis (#6916)
  • feat: print a backtrace on SIGSEGV (#6907)
  • feat(node-core, storage): static files segment metrics (#6908)
  • Remove accidentally merged fields (#6912)
  • feat(provider): consistent database view (#6896)
  • feat: add activation timestamps (#6865)
  • Add grafana panel for maintenance txpool metrics (#6719)
  • 0x/rm unused dep (#6899)
  • chore: unify decode enveloped fn args (#6904)
  • feat: sat math for tx value (#6900)
  • bound hashes inflight and pending fetch size (#6877)
  • fix: use replacement transaction hash in PoolError (#6898)
  • perf: rm redundant collect (#6895)
  • Compute min length mempool transactions message by type (#6853)
  • feat(storage): use mdbx_txn_reset to time out transactions (#6850)
  • fix: use HashSet for transactions_by_peers (#6893)
  • feat: integrate builder (#6611)
  • fix: handle both compressed and uncompressed disconnect reason decoding (#6862)
  • chore: remove unused dependencies to speed up building time (#6882)
  • chore: remove cargo-udeps-related workflow and metadata (#6889)
  • chore: downgrade discv4 debug! to trace! (#6879)
  • fix(ci): header check in integration/sync (#6880)
  • chore(cli): fix clap deprecated warnings (#6872)
  • Breaking changes (#5191)
  • feat(storage, libmdbx): same code style in build.rs (#6867)
  • Revm example (#6855)
  • node: don't subscribe to consensus health events for dev node (#6868)
  • Remove unconstrained generic in ProviderFactory::new_with_database_path (#6869)
  • consensus/auto-seal: simiply the complete_header for op or non-op (#6870)
  • Performance metrics for NetworkManager future (#6746)
  • chore(net): use smallvec only if debug_assertions configed (#6866)
  • Add panels for observing tx manager future (#6814)
  • Downgrade all logs in validation to trace (#6863)
  • feat: assertoor integration in CI (#6833)
  • fix: rm Signature optimism cfg (#6858)
  • chore: add commentes clarifying evm trait (#6857)
  • remove proptest specific encoding logic (#6503)
  • chore(trie): thread safe trie cursor (#6854)
  • feat: Implement eth68 announcement metrics, track entries by TxType (#6786)
  • chore: add cancun timestamp to hardfork (#6847)
  • chore(node-builder): make network component unpin (#6849)
  • chore(trie): safe to share prefixset (#6846)
  • fix: get MAX_NODES_PER_BUCKET when respond closest (#6842)
  • chore: reuse raw transaction by hash for debug_getRawTransaction (#6845)
  • perf: use cached encoded len for limit check (#6838)
  • chore: add required bench feature (#6841)
  • Ensure consistency between aborted set and reused ptrs (#6844)
  • Db exclusive mode (#6755)
  • fix(storage): add active txn before sending result (#6840)
  • chore: make clippy happy (#6837)

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.2.0-beta.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 reth-v0.2.0-beta.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 reth-v0.2.0-beta.1-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 reth-v0.2.0-beta.1-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 reth-v0.2.0-beta.1-aarch64-apple-darwin.tar.gz PGP Signature
System Option - Resource
Docker paradigmxyz/reth