Skip to content

Reth v1.6.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 22 Jul 15:10
· 178 commits to main since this release
d8451e5

image

This release includes several RPC fixes and various stability fixes.

It introduces opt-in support for experimental Parallel Sparse Trie via --engine.parallel-sparse-trie. Feel free to try it out for improved performance, and report any issues in our Telegram chat.

It should also unblock Flashblocks support for more OP Stack chains.

Fixes

  • Fixed basefee calculation edge cases (#17496, #17493)
  • Fixed transaction pool propagation on account updates (#17396)
  • Fixed sparse trie implementation hash masks issue (#17316)
  • Fixed pre-merge history export functionality (#17320)
  • Fixed pruner header usage (#17458)
  • Fixed missing top level trace recording causing missing trace information (#17412)
  • Fixed an issue with the javascript tracer that caused discrepencies (#16289, paradigmxyz/revm-inspectors#329)

New Features

Performance

Pruning

  • Added --prune.receipts.premerge configuration option (#17295)
  • Added export-era subcommand for exporting blockchain data in Era1 format (#17132)

Reth SDK

  • Added new submit methods to TransactionPool trait (#17431)
  • RPC now accepts generic transaction requests (#17092)
  • Made Receipt type generic over TxType for better extensibility (#17237, #17409)
  • Made core components generic over block header types, enabling easier custom chain implementations (#17520, #17441 #17436)

Compatible Dependencies

  • revm: 0.27.3
  • alloy: 1.0.23
  • op-alloy: 0.18.12
  • alloy-evm: 0.15
  • revm-inspectors: 0.27

Update Priority

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

User Class Priority
Payload Builders medium
Non-Payload Builders medium

See Update Priorities for more information about this table.

All Changes

  • chore: bump version v1.6.0 (#17556)
  • ci: fix era sync test (#17561)
  • fix: convert latency to milliseconds in reth-bench script (#17555)
  • feat: add AddOns for custom node example (#17544)
  • ci: mark system eest tests as passing (#17542)
  • chore: bump deps (#17554)
  • feat: implement DatabaseProviderFactory for NoopProvider (#17134)
  • chore: relax EthereumEthApiBuilder bound (#17546)
  • feat(reth-bench): auto-create output directory (#17541)
  • chore(deps): bump inspectors 027 (#17543)
  • docs: fix typo in OpReceiptBuilder comment (#17540)
  • perf(trie): Re-use storage tries across payloads (#17488)
  • docs: Fix broken fuzzing module link in database.md (#17523)
  • feat: EthApiCtx::eth_api_builder (#17532)
  • feat: ComponentsFor type alias (#17533)
  • refactor: rename AlloyRethProvider to RpcBlockchainProvider and move to storage (#17524)
  • feat: HeaderConverter (#17490)
  • chore: bump alloy-evm 015 (#17528)
  • fix: ensure required revm features are activated (#17526)
  • chore: extend exex ethapi example (#17481)
  • chore: sanity secp256k1+rayon activations (#17527)
  • feat: make payload validation functions generic over block header type (#17520)
  • fix: logIndex in getBlockReceipts (#17519)
  • docs(trace): document trace format and response structure (#17517)
  • docs: normalize dynamic CLI defaults in help generation (#17509)
  • docs: fix error in RawCapabilityMessage comment (#17411)
  • fix: temporary file leak in atomic_write_file (#17505)
  • fix: Refine Transaction Abstraction Link (#17502)
  • feat(alloy-provider): compatibility for non-reth nodes (#17511)
  • docs: fix Sepolia URL description (#17495)
  • chore: migrate from codespell to typos (#17501)
  • ci: dont expect callenv to fail (#17516)
  • feat(alloy-provider): implement receipts_by_block and other methods (#17507)
  • chore(deps): weekly cargo update (#17506)
  • fix: refactor trace log key and comment formatting (#17459)
  • fix: correct documentation for block_mut method in SealedBlock (#17489)
  • docs: fix outdated file paths in database.md links (#17486)
  • perf(tree): add metric for payload conversion + validation latency (#17499)
  • fix: force set basefee to 0 if gasprice is 0 (#17496)
  • chore: downgrade threadpool init error (#17483)
  • feat(alloy-provider): implement methods for BlockReaderIdExt (#17491)
  • fix: set correct timestamp when calculating basefee (#17493)
  • feat: continue opchainspec support (#17422)
  • chore: fix reth-engine-tree dev-dependencies import (#17487)
  • feat(alloy-provider): implement receipt_by_hash method (#17456)
  • feat: add Middleware generic to AuthServerConfig (#17373)
  • feat: enable CLI support for custom block headers (#17441)
  • docs: add code example to extend_rpc_modules method (#17446)
  • fix: change hyperlink to reth_codec (#17437)
  • fix: edit link and config (#17453)
  • feat(alloy-provider): implement transaction_by_hash method (#17479)
  • chore: expose chainspec getter (#17461)
  • fix(docs): rustdocs module and nested links (#17478)
  • feat: add envelope conversion for op (#17469)
  • fix(docs): change sdk overview path to /sdk (#17467)
  • fix: correct documentation for block_mut method in RecoveredBlock (#17472)
  • feat(alloy-provider): implement bytecode_by_hash method (#17471)
  • fix: use primitives headers for pruner (#17458)
  • feat: add helper for building pending block env (#17464)
  • feat(alloy-provider): implement sealed_header method (#17455)
  • feat(tx-pool): add submit methods to TransactionPool (#17431)
  • docs: fix typo from optstack to opstack (#17454)
  • refactor: move receipt conversions to RpcConverter (#17450)
  • chore: correct spelling errors (#17462)
  • feat: make engine API metered methods and utilities public (#17460)
  • docs: fix typo in NetworkManager diagram (#17448)
  • perf(trie): parallelize ParallelSparseTrie::reveal_nodes (#17372)
  • fix: Update JWT Secret Flag in Benchmark Documentation (#17447)
  • docs: enhance direct database access documentation (#17445)
  • fix: rename highest_static_fileted_block to highest_static_file_block (#17427)
  • fix: Update Docker Compose Docs Link in etc/README.md (#17414)
  • fix: Rename WitnessBlindedProvider to WitnessTrieNodeProvider (#17426)
  • chore(bin): missing --jwt-secret message in reth-bench (#17443)
  • chore: simplify blob count extraction using new blob_count() method (#17439)
  • feat: make revm_spec generic over header type (#17436)
  • chore: bump revm 273 (#17412)
  • refactor: remove unused sparse trie methods (#17433)
  • chore(consensus): refactor fork and ommers check into standalone fn (#17406)
  • chore: add txpool submit examples (#17420)
  • test(engine): enable parallel sparse trie in e2e tests (#17423)
  • refactor: use DefaultTrieNodeProviderFactory in state root calculation (#17425)
  • chore: box import future (#17424)
  • refactor: BlindedPovider rename (#17208)
  • feat: Add support for ethstats (#16396)
  • chore(txpool): use alloy-primitives HashMap for SenderIdentifiers (#17408)
  • feat(sdk): make engine API (auth server) optional for custom consensus integrations (#17376)
  • feat(alloy-provider): implement header methods (#17402)
  • fix(docs): rustdoc search functionality (#17410)
  • feat: add generic database support for Receipt (#17409)
  • feat(rpc): Use generic transaction request as input (#17092)
  • refactor(rpc): change receipt to Cow<R> for build_receipt (#17382)
  • docs(guides): add export era in history section (#17391)
  • perf: release listner lock early (#17400)
  • perf: optimize txpool_status RPC by avoiding full transaction collection (#17392)
  • fix(txpool): Propagate promoted transactions on account updates (#17396)
  • chore: make clippy happy (#17399)
  • chore(deps): weekly cargo update (#17386)
  • perf(blob): optimize blob store gets (#17388)
  • fix: broken link to system requirements in troubleshooting guide (#17384)
  • chore: consolidate typo fixes from multiple PRs (#17387)
  • docs: typos (#17283)
  • feat: add into_logs() to TxReceipt for Receipt/OpReceipt (#17383)
  • docs: typos (#17335)
  • docs: fix link to installation (#17375)
  • feat: make Receipt generic over TxType (#17237)
  • perf(engine): clear accounts trie in background to not block state root (#17369)
  • fix(docs): rustdocs search functionality (#17367)
  • chore(ci): unpin hive (#17370)
  • feat(trie): wire parallel trie config to PayloadProcessor (#17355)
  • docs:fix spelling error in flowchart (#17346)
  • chore(trie): impl HashedPostState::drain_into_sorted (#17362)
  • chore(trie): impl TrieUpdates::drain_into_sorted (#17361)
  • fix(docs): update-book-cli job (#17365)
  • chore(consensus): remove outdated comment from validate_block_pre_execution (#17360)
  • feat: make ethereum Cli generic over node and remove debug commands (#17363)
  • perf(trie): reuse update action buffers in parallel sparse trie processing (#17352)
  • feat(rpc): specialise contiguous receipt queries for logs (#16441)
  • feat(cli): add enable-parallel-sparse-trie flag (#17357)
  • feat: support isthmus in reth-bench (#17351)
  • feat(trie): add TrieUpdates::clear (#17359)
  • feat(trie): add HashedPostState::clear (#17358)
  • chore: broadcast raw tx for opethapi (#17342)
  • chore: add helper to access invalid tx error (#17353)
  • chore: add helper convert into error object (#17354)
  • chore(trie): add Either type for SparseTrieInterface (#17267)
  • fix: Typographical Errors in Comments (#17333)
  • chore: make OpAddonsBuilder generic over middleware (#17347)
  • chore: add helpers for disabling read-tx timeout (#17339)
  • chore(trie): Implement ParallelSparseTrie::find_leaf (#17326)
  • feat: add graph selection option to newpayload latency comparison script (#17097)
  • feat(trie): add generics to SparseTrieTask (#17269)
  • feat(era1): add subcommand export-era (#17132)
  • refactor: rename RevealedSparseTrie to SerialSparseTrie (#17345)
  • feat(ci): reorganize e2e tests with dedicated nextest filter and CI workflow (#17290)
  • feat: re-execute command (#17330)
  • fix(docs): broken rustdocs link (#17341)
  • fix(trie): reset hashes of nodes along the path of removed leaf (#17331)
  • chore: replace CacheDb with trait bounds (#17315)
  • chore: simplify receipt envelope conversion (#17337)
  • chore: remove type hints (#17336)
  • chore: make tracer match non-exhaustive (#17338)
  • test: allow empty response (#17332)
  • feat(sync): track time spent in stages (#17321)
  • feat(sdk): add local_payload_attributes_builder to DebugNodeLauncher (#17297)
  • fix(trie): move masks to ParallelSparseTrie level (#17322)
  • fix(trie): ParallelSparseTrie::update_leaf: add moved leaves to the prefix set (#17317)
  • perf(txpool): reduce one BTree lookup operation in add_transaction (#17313)
  • fix(trie): duplicate hash mask check in sparse trie implementations (#17316)
  • docs: add section for enabling pre-merge history expiry (#17320)
  • feat: make build_receipt infallable (#17287)
  • chore: bump vdocs version (#17318)
  • chore: relax era export bounds (#17312)
  • fix: correct typos (#17296)
  • fix(docs): correct duplicated function reference in documentation (#17301)
  • feat: add --prune.receipts.premerge setting (#17295)
  • docs: myrpc_ext.rs: fix namespace inconsistency in myrpcExt comments (#17300)
  • refactor(examples): Use TransactionEnvelope macro from alloy for CustomPooledTransaction in the custom-node example (#17302)
  • chore(trie): remove Default bound from SparseTrieInterface (#17268)
  • feat(test): add rpc e2e tests (#17284)
  • perf: remove block cloning from is_descendant check (#17286)
  • chore(trie): move from_root out of SparseTrieInterface (#17266)
  • ci: add https:// to image URLs in release.yml (#17280)
  • test(trie): add sparse trie tests to parallel sparse trie (#17258)
  • fix(trie): ParallelSparseTrie: remove leaves from upper subtrie when update in a lower (#17278)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E

Reth

System Architecture Binary PGP Signature
x86_64 reth-v1.6.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 reth-v1.6.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 reth-v1.6.0-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 reth-v1.6.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 reth-v1.6.0-aarch64-apple-darwin.tar.gz PGP Signature
Docker paradigmxyz/reth -

OP-Reth

System Architecture Binary PGP Signature
x86_64 op-reth-v1.6.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 op-reth-v1.6.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 op-reth-v1.6.0-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 op-reth-v1.6.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 op-reth-v1.6.0-aarch64-apple-darwin.tar.gz PGP Signature
Docker paradigmxyz/op-reth -

What's Changed

New Contributors

Full Changelog: v1.5.1...v1.6.0