Description
This release upgrades the underlying reth to v2.2. Major changes brought in by reth 2.2 include:
- New v2 storage layout: changesets and receipts are moved from MDBX into static files, significantly reducing MDBX size and write amplification.
- Sparse-trie based state root computation with parallel proof workers, now also wired into the miner/payload-building path on BSC.
- Numerous engine, networking and txpool improvements from upstream.
In BSC testing, this version shows a clear performance improvement over v0.0.9-beta in both block import and block production. In addition, the current version supports Fatsnode mode (a lightweight sync mode that skips the state-root verify stage), which is suitable for scenarios such as builders that focus on execution results.
To run a node in fastnode mode, add --engine.skip-state-root-validation to the start command:
./reth-bsc node --chain bsc --datadir ./data_dir --engine.skip-state-root-validation⚠️ Note
-
TrieDB is no longer supported starting from this release. The
--statedb.triedbmode is discontinued; please run with the default MDBX backend. -
Existing data directories / snapshots use the old v1 storage layout and must be migrated before starting the node. Run the following command once (it migrates changesets & receipts to static files, then rebuilds the remaining tables on
next start):./reth-bsc db migrate-v2 --chain bsc --datadir <your_datadir>
-
New snapshot_v2 snapshots (already in the v2 layout, no migration needed) will be published later.
What's Changed
reth-bsc
- feat: upstream reth2.2 by @constwz in #367
- feat: miner sparse trie mdbx scaffolding by @constwz in #362
- perf: miner prefetcher warmup by @constwz in #336
- fix: classify FutureBlock as transient to prevent invalid_headers poisoning by @constwz in #317
- fix: resolve some issues in cross region test by @will-2012 in #334
- fix(rpc): include empty withdrawals in block RLP size computation by @MqllR in #340
- fix: resolve some p2p peer related issues by @will-2012 in #344
- fix: bsc protocol stale registry tx by @constwz in #355
- fix: make the received block metrics correct by @will-2012 in #357
- fix: classify system txs at EVM replay entry points by @will-2012 in #358
- chore: merge develop-v2.2-new into develop by @chee-chyuan in #361
Upstream reth (bnb-chain/reth v2.2) highlights
- fix: resolve peer-drop issues reported by the community (stop banning
UselessPeerdisconnects, advertise real TD in the ethStatushandshake) by @will-2012 in bnb-chain/reth#175 (fixes
#245) - perf(metrics): prevent multi-second engine stalls caused by metrics scrape hooks by @zhk101 in bnb-chain/reth#189 (fixes #353)
- fix: propagate MultiProofTask worker errors to sparse trie by @constwz in bnb-chain/reth#123 (fixes #307)
- fix: do not cache transient block execution errors in invalid_headers by @chee-chyuan in bnb-chain/reth#178 (fixes #313)
- fix: storage root in progress when livesync + parallel hash by @chee-chyuan in bnb-chain/reth#144
- fix: bound precompile cache by actual memory usage (cherry-picked from upstream v1.11.4) by @constwz in bnb-chain/reth#188
- feat: Mendel hardfork support by @constwz in bnb-chain/reth#160
- feat: fastnode mode support by @chee-chyuan in bnb-chain/reth#165
- feat(eth): propagate big transactions via announce/retrieve only to reduce p2p bandwidth by @MatusKysel in bnb-chain/reth#170
- feat(txpool): reannounce local pending transactions by @MatusKysel in bnb-chain/reth#169
Full Changelog: v0.0.9-beta...v0.0.10-beta