github paradigmxyz/reth v1.7.0
Reth v1.7.0

one day ago

image

Reth v1.7.0

Upgrade Instructions for Mainnet nodes

Caution

For Reth nodes running Ethereum mainnet, prior to running reth node again, it is recommended to run trie diagnostics and repair tool ASAP.

On September 1st, some Reth nodes running on Ethereum mainnet experienced downtime. We identified and fixed the issue in state root calculation logic; a post-mortem will follow in the coming days.
Following steps are recommended for all ethereum mainnet operators, even if you recovered your node with the previous instructions or if your node was unaffected.

  1. Stop your Reth node
  2. Update reth binary to new version
  3. Run reth db --chain <mainnet> --datadir <datadir> repair-trie
    • This can take up to 2 hours or longer (depending on the disk/IOPS), so it may be a good idea to start it in a tmux session to not interrupt.
    • Let the command run to completion.
    • It is expected that some inconsistences are found and repaired by this command.
  4. Start your Reth node as usual

Summary

This release includes significant performance improvements, Flashblocks support for OP Stack, improved state management, and various bug fixes.

This release also includes relevant code changes with support for the upcoming Fusaka hardfork.

Parallel Sparse Trie

The Parallel Sparse Trie, introduced in 1.6.0 as an opt-in CLI argument, is now enabled by default for computation of the accounts trie root. In our benchmarks we have seen a 10-15% improvement to overall latency on Ethereum mainnet nodes, and 15-20% on Base nodes.

image

Fixes

  • Fixed transaction pool fee change updates (#18137)
  • Fixed instant miner creating empty blocks (#18108)
  • Fixed ParallelSparseTrie edge cases and field clearing issues (#17955)
  • Fixed pending transaction updates with higher priority values (#17699)
  • Fixed estimateGas with stateoverrides (#17668)
  • Fixed gas limit saturation if it exceeds configured gas cap (#17847)
  • Fixed prune checkpoint check on unwind for full nodes (#18263)
  • Fixed RLP encoding for SealedBlock (#18003)
  • Fixed error codes for eth_sendRawTransactionSync (#18252)
  • Fixed inconsistent message counts for eth protocol (#17999)

Performance

  • Transaction pool:
    - Eliminated allocations in basefee enforcement (#18162)
    - Eliminate redundant notifications (#17647)
  • Stages optimization: Optimized unwind operations by fetching headers instead of full blocks (#18139)
  • Collection creation: Optimized single-element collection creation (#18168)
  • Canonical hashes: Optimized canonical_hashes_range to O(n) complexity (#17975)
  • State changes: Used FuturesOrdered instead of join_all for better yielding (#17638)
  • State Root: ParallelSparseTrie enabled by default for the accounts trie (#17956)

OP Stack

This release includes flashblocks/pending state support via --flashblocks-url (e.g. "wss://mainnet.flashblocks.base.org/ws").

If enabled, op-reth will attempt to build the pending state via received flashblocks, the "pending" block tag will be mapped to this.

  • Forward debug_traceTransaction with historical RPC(#17971)
  • Forward unknown hashes with historical RPC (#17709)
  • Make OpAddonsBuilder generic over middleware (#17347)
  • Fixed suggested price for empty blocks (#17679)

Enhancements

  • Transaction forwarding: Added support for forwarding transactions to specified endpoints (--txpool.tx-propagation-mode <sqrt|all|max>) (#17444)
  • Trace storage access: Added trace_transaction_storage_access method (#16022)
  • Transaction propagation: Added CLI support for TransactionPropagationMode (#18012)
  • IPC socket permissions: Added configuration for IPC socket permissions (#17497)
  • Multi-file import: Support for importing multiple files (#17928)
  • Max readers configuration: Added max-readers flag for database configuration (#17663)
  • Tracing: Support additional index field in call tracer (#17629)
  • Networking: Support additional subprotocols with custom eth handshake (#18080)

SDK

  • Configurable version globals: Introduced configurable version globals (#17711)
  • TreePayloadValidator: Added new payload validator for tree operations (#17451)
  • Engine separation: Separated EngineValidator from PayloadValidator (#17641)
  • Txpool:
    - Merge EthTransactionValidator and EthTransactionValidatorInner (#18129)
    - Persist Origin in pooled transaction backup (#17756)
  • Ethapi:
    - Support overriding caller gas allowance on call functions(#18101)
    - Support custom pending state and make state lookup async (#17954)
    - Enhanced RpcConverter support for custom rpc type conversions (#17010)

Dependencies

Compatible versions:

  • revm: 29.0.0
  • alloy: 1.0.30
  • op-alloy: 0.19.0
  • alloy-evm: 0.20.1
  • revm-inspectors: 0.29.1

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
Op-reth medium

See Update Priorities for more information about this table.

All Changes

  • chore: bump version 1.7.0 (#18323)
  • fix: DB benches (#18314)
  • fix(stateless): verify_execution_witness doc for pre-state mismatch (#18319)
  • fix(bench): fix deadlock in test data generation (#18321)
  • docs(reth-bench): fix markdown (#18322)
  • ci: pin Rust to 1.88 when building for Windows in Cross (#18320)
  • feat(trie): Add helper sub-command (#18301)
  • feat(optimism): flashblock completed sequences (#18272)
  • refactor(engine): persistence logic (#18318)
  • refactor: change PendingPool and PendingTransaction visibility to pub (#18267)
  • refactor(optimism): Extract pending block building responsibility out of FlashBlockService (#18247)
  • chore(trie): dont warn on blinded node reveals (#18317)
  • fix(rpc): error code eth_sendRawTransactionSync timeout (#18252)
  • chore(deps): weekly cargo update (#18312)
  • chore: introduce validationtask with capacity (#18291)
  • feat(download): support zst archives in reth download (#18237)
  • chore: clippy happy (#18310)
  • feat: introduce maybe_pending method to StateProviderFactory (#18260)
  • perf(e2e-test-utils): optimize block checking by fetching header instead of full block (#18254)
  • chore: fix various typos in comments and documentation (#18296)
  • perf: specialize len 1 (#18307)
  • feat: expose EvmEnv to caller_gas_allowance (#18302)
  • feat: introduce setting for delegated txs slots (#18298)
  • feat(gpo): add default fee price argument (#18297)
  • feat(metrics): add TxPoolValidatorMetrics to track inflight validation jobs (#18295)
  • perf: specialize validate_transactions_with_origin for task validator (#18288)
  • test(optimism): Test that close message is responded to in WsFlashBlockStream (#18268)
  • chore: delist unused deps with cargo-machete (#18259)
  • perf: specialize single batch request (#18289)
  • perf: optimize send raw batching (#18280)
  • fix: check prune checkpoints for unwind target limit (#18263)
  • chore(txpool): add sanity tests for blob fee bit handling (#18258)
  • perf(db): do not heap-allocate the stage key per query (#18284)
  • perf: build local pending block without updates (#18271)
  • perf: rm redundant collect (#18281)
  • chore: extract validate_against_parent_gas_limit into separate fn (#18277)
  • chore: log prune settings on unwind (#18270)
  • test(optimism): Test that UTF-8 encoded messages are received in WsFlashBlockStream (#18269)
  • fix(optimism): Reconnect if ws stream ends in WsFlashBlockStream (#18226)
  • feat(optimism): Respond to close messages in WsFlashBlockStream (#18256)
  • chore: remove redundant payload trait bounds (#18262)
  • feat(optimism): Decode text messages in WsFlashBlockStream (#18257)
  • fix(optimism): Compare parent hash and latest hash to invalidate cached flashblock (#18238)
  • chore: unify engine downloader targets (#18248)
  • chore: downgrade debug to trace for peer reputation logs (#18250)
  • test(optimism): Test that WsFlashBlockStream pongs a ping (#18217)
  • feat(optimism): Respond to ping messages with pong in WsFlashBlockStream (#18212)
  • docs: update urls in docs (#18245)
  • perf(txpool): eliminate allocations in basefee enforcement (#18218)
  • perf(reth-optimism-flashblocks): rm redundant clone (#18196)
  • fix: filter zero storage values when computing withdrawals root in genesis header (#18213)
  • chore(trie): use instrument instead of manual span (#18239)
  • chore(engine): add better logs and spans for execution (#18240)
  • fix(download): use updated merkle base URL (#18236)
  • chore: improve flashblock logs (#18232)
  • chore: safe None check (#18225)
  • feat(optimism): Warn if FlashBlockService has stopped (#18227)
  • test(optimism): Test that sequence stops before a gap (#18228)
  • fix(optimism): Prevent repeated executions of current flashblock sequence (#18224)
  • fix: incorrect blob fee comparison (#18216)
  • revert: "perf(txpool): eliminate allocations in basefee enforcement" (#18215)
  • fix: spawn flashblocks service as blocking (#18214)
  • perf: prepare flashblock txs (#18201)
  • chore: impl ExecutorTx for withtxenv (#18202)
  • chore: simplify flashblocks poll logic (#18194)
  • test(optimism): Test that streaming flashblocks from remote source is successful (#18170)
  • fix: struct serialization to match actual fields (#18189)
  • test(optimism): Cover the case of repeatedly failing to connect to websocket in WsFlashBlockStream (#18169)
  • test(optimism): Cover the case of stream returning errors in WsFlashBlockStream (#18167)
  • test(optimism): Cover the failure case of decoding a non-binary message in WsFlashBlockStream (#18166)
  • test(optimism): Cover successful decoding of websocket messages in WsFlashBlockStream (#18163)
  • fix: Pass prefix set from init_from_state_dump into compute_state_root (#18185)
  • feat(examples): added txpoolExt_clearTxpool to existing example (#18175)
  • refactor(optimism): Extract responsibility to connect to a flashblock websocket stream (#18158)
  • perf(optimism): use cached db in FlashblockService (#18125)
  • perf(txpool): eliminate allocations in basefee enforcement (#18162)
  • feat: enhance engine tree metrics (#18000)
  • chore: avoid using hashmap hashers directly (#18176)
  • perf(stages): optimize unwind operation by fetching headers instead full blocks (#18139)
  • chore(deps): weekly cargo update (#18174)
  • chore: simplify dev signed tx conversions (#18171)
  • refactor: remove unnecessary PathBuf clone in CLI help generator (#18172)
  • fix: correct logical error in delete_outside_range error message (#18031)
  • ci: Fix .PHONY declaration for install-reth-bench target in Makefile (#18152)
  • perf: optimize single-element collection creation (#18168)
  • chore(deps): bump actions/upload-pages-artifact from 3 to 4 (#18076)
  • fix(optimism): find fb attrs in base fb (#18164)
  • chore: Add 0x prefix and use macro (#18156)
  • perf(optimism): Pass noop provider to skip state root calculations for flashblocks (#18161)
  • perf(reth-invalid-block-hooks): use Reverts::eq reduce clone (#18159)
  • feat(optimism): add FlashblocksRx getter (#18155)
  • fix(trie): Fix call to update_account in witness (#18154)
  • chore(reth-optimism-storage): small refactor code (#18104)
  • perf(engine): pre-allocate channel handles in prewarm task (#18147)
  • perf(engine): pre-allocate Vec capacity in payload processor (#18148)
  • feat: generalize impl EngineValidatorAddOn for OpAddOns (#18141)
  • docs(op): op chains don't require deposit contracts, so as dev chain (#17988)
  • refactor: merge EthTransactionValidator and EthTransactionValidatorInner (#18129)
  • fix(txpool): ensure fee changes are updated (#18137)
  • fix(optimism): Fail if latest and base flashblock parent are different (#18132)
  • feat(net): implement support of subprotocols (#18080)
  • feat: Forward transactions to a specified endpoint (#17444)
  • fix: import should count on the delta (#17819)
  • fix(optimism): Verify that flashblocks are not old according to canon state (#18123)
  • perf(engine): only clone headers instead of full blocks for tree tasks (#18116)
  • fix(engine): Prevent instant miner from creating empty blocks (#18108)
  • refactor(eth-wire): remove EthVersion::total_messages in favor of EthMessageID::max (#17999)
  • chore: add prewarm traces (#18117)
  • fix(optimism): Fix endless poll on the FlashBlockService (#18120)
  • chore: make caller_gas_allowance an RPC trait method (#18101)
  • fix(optimism): Prevent old pending flashblock from being returned from pending_flashblock (#18103)
  • chore: include err in log (#18119)
  • feat: add EIP-7934 block size check to validateBuilderSubmissionV5 (#18111)
  • ci: remove expected failures (#18099)
  • chore(reth-optimism-cli): use OpTypedTransaction::eip2718_encode (#18105)
  • feat: add module manipulation methods and RPC server arg helpers (#18084)
  • refactor: make transaction validator functions reusable (#17929)
  • feat(optimism): Remove builder of next block environment from FlashBlockService (#18100)
  • feat(optimism): Implement conversion of ExecutionPayloadBaseV1 into OpNextBlockEnvAttributes (#18097)
  • perf(engine): only fetch headers instead of full blocks for tree tasks (#18088)
  • feat(optimism): Add flashblocks_url as part of rollup args of the op-reth CLI (#18094)
  • feat: add helper for provider with wallet (#18085)
  • feat: add NoopNetwork example (#18093)
  • feat(optimism): Launch FlashBlockService when websocket URL is provided in OpEthApi (#18077)
  • feat: optionally disable balance check for EthTransactionValidator (#18086)
  • fix(era): SlotIndex offset support negative value (#18047)
  • fix: clarify locking behavior comment in InMemoryState (#18081)
  • fix: Fix state root related metrics (#18045)
  • chore(nix): add cargo-nextest to devShell (#18087)
  • chore: add helpers for setting minimum protocol basefee (#18083)
  • feat: support importing multi files (#17928)
  • feat: fusaka changes (#18071)
  • feat(optimism): Change FlashBlockService output ExecutedBlock => PendingBlock (#18078)
  • feat: FCU unwind: properly reorg in-memory canonical state and update latest block (#17938)
  • feat(optimism): Add launch_wss_flashblocks_service function spawning a task sending last pending block (#18067)
  • fix(static_file_provider): Exception for Gnosis and Chiado (#18044)
  • refactor(rpc): add TxEnv converter to RpcCoverter (#17792)
  • perf: use FuturesOrdered instead of join_all to yield results (#17638)
  • feat(optimism): Add constructors to FlashBlockService and FlashBlockWsStream (#18064)
  • perf(payload): do not clone full attributes for timestamp validation (#18054)
  • feat(optimism): Wrap incoming stream item in Result for compatibility of FlashBlockService with FlashBlockWsStream (#18063)
  • fix: use deterministic RNG in state_root_task benchmark (#18049)
  • fix: add secp256k1 to dev-dependencies of dns crate (#18059)
  • fix(node/builder): correct left_mut() method implementation and docs (#18053)
  • refactor(tree): move metered execution functions to tree module (#17912)
  • chore: relax EngineValidatorAddOn impl (#18052)
  • perf: optimize canonical_hashes_range to O(n) complexity (#17975)
  • feat: remove the not used executor in sparse_trie (#17966)
  • feat(optimism): Add FlashBlockService that builds blocks from FlashBlocks (#18009)
  • feat: bump jsonrpsee to v0.26.0 (#17901)
  • chore: apply spelling and typo fixes (#18041)
  • chore: remove msrv from clippy.toml (#18034)
  • Update README.md (#18021)
  • perf(pool): remove unused hash in tx insertion/validation (#18030)
  • feat(reth-bench): add --advance option for relative block ranges (#17996)
  • chore(deps): weekly cargo update (#18023)
  • feat: add accessor methods for RPC handle types (#18016)
  • feat: add log.file.name cli arg (#17883)
  • feat: added trace_transaction_storage_access (#16022)
  • feat: add CLI support for TransactionPropagationMode in NetworkArgs (#18012)
  • fix: replace unwrap with proper error handling in ShardedKey decode (#17902)
  • feat: add helper for setting tx propagation mode (#18007)
  • test(engine): add e2e tests for forkchoice update with finalized blocks (#18004)
  • fix: rlp encoding for sealedblock (#18003)
  • chore(trie): fully reveal sparse tries prior to leaf updates/removals (#17643)
  • fix: remove unused base_fee_params_at_block function (#17992)
  • fix(revm-inspectors): update revm-inspectors to fix js tracer opcode gas calculation (#17986)
  • feat(optimism): Add FlashBlockWsStream for streaming flashblocks from a websocket connection (#17987)
  • chore(cli): add log about state root computation for init-state (#17980)
  • chore: remove not used block/receipt memory limiter constants (#17989)
  • chore(db): remove empty TODO comment (#17981)
  • feat(optimism): Add FlashBlock payload schema (#17984)
  • refactor: Fix incorrect length parameter in StorageTrieEntry::from_compact (#17748)
  • feat(optimism): Add new reth-optimism-flashblocks crate (#17982)
  • feat(rpc): Use pool-based pending block for pending state over latest (#17924)
  • docs(net): add Rreceipts69 document (#17969)
  • fix(optimism): add debug_traceTransaction support for pre-bedrock blocks (#17971)
  • feat(rpc): Add local_pending_state that creates a state provider out of a mem-pool built pending block (#17957)
  • docs(sdk): Add guide for custom transaction envelope macro usage (#17879)
  • perf(trie): default ParallelSparseTrie to enabled (accounts only still) (#17956)
  • fix: ParallelSparseTrie::update_leaf edge-case, and not correctly clearing all fields for re-use (#17955)
  • fix(net): Receipts69 should respond with Receipts69 message (#17880)
  • fix: use len() instead of iter().count() for trace logging (#17968)
  • docs(trie): document MDBX ordering assumptions in TrieWalker and Trie… (#17906)
  • chore(engine): rename block validation task (#17964)
  • feat(engine): set default_memory_block_buffer_target to zero (#17963)
  • feat(optimism): add supervisor_revalidation_duration_seconds metrics (#17897)
  • refactor(evm): use execution payload getters (#17947)
  • chore: rm redundant runtime (#17961)
  • feat(rpc): Convert state_at_block_id into async function (#17954)
  • fix: allow at most one in-flight tx (#17960)
  • chore: activate pool if node (#17950)
  • chore: add helpers to added tx state (#17951)
  • refactor(era): add era types and file traits for shared behavior (#17873)
  • feat(rpc): Add spawn_blocking_io_fut that accepts a future (#17953)
  • fix: replace todo!() with Ok(None) in NoopProvider transaction_block (#17949)
  • feat: Add transaction propagation kind 'None' (#17944)
  • docs: multiple small textual defects (#17904)
  • fix(optimism): correct string formatting in error message (#17923)
  • chore(deps): bump amannn/action-semantic-pull-request from 5 to 6 (#17933)
  • fix(trie): replace rayon with tokio for I/O operations in parallel trie (#17931)
  • fix: optimize empty directory check in is_database_empty (#17932)
  • chore: fix clippy in nix flake (#17918)
  • test: remove misleading TODO comments in MockEthProvider (#17926)
  • chore: replace reference (#17899)
  • perf: reduce cycles on indexing (#17916)
  • docs: add paragraph about EIP-7702 transaction types (#17865)
  • chore(grafana): Add description to pruner panel (#17917)
  • chore(metrics): fix MeteredReceiver docs (#17913)
  • fix: convert anchor() method from recursive to iterative (#17909)
  • refactor: remove StateCommitment trait (#17812)
  • fix(ress/provider): return zero headers when request.limit == 0 (#17911)
  • chore(deps): weekly cargo update (#17907)
  • chore(pool): replace saturating_sub with unchecked_sub (#17890)
  • chore: remove Beacon from type names (#17868)
  • test: add tests for fetching header,body ranges (#17893)
  • feat: bubble up revm feature flags via revm-reth (#17896)
  • refactor(examples): Replace CustomTransactionEnvelope with Signed<TxPayment> as the variant type in the custom node example (#17894)
  • feat(rpc): add configurable pending block behaviour (#17677)
  • fix(examples): Implement Compact using blanket implementation (#17878)
  • fix: use map_pure_precompiles for precompile caching (#17886)
  • fix(network): off by one error in getting next header (#17889)
  • chore: clippy happy (#17892)
  • chore(tx-pool): Rm redundant async block (#17891)
  • chore: remove the deprecated ganache api (#17881)
  • feat(rpc): Add RpcTxConverter to allow for providing custom converters with extra context (#17827)
  • fix: critical error handling in ExEx launcher (#17627)
  • feat(rpc): Add support for custom Tokio runtime configuration in EthereumAddOns (#17693)
  • chore(ci): migrate workflows to checkout v5 (#17813)
  • fix: replace unsafe unwrap with proper error handling (#17867)
  • feat: custom instance label and configurable datasource for mempool dash (#16634)
  • feat(txpool): Batch insertions into the Tx Pool (#17670)
  • fix: box some more futures (#17864)
  • test(chain-state): opt unit test (#17770)
  • chore: fix typos and improve documentation (#17862)
  • feat: make MockEthProvider more generic (#17780)
  • docs(e2s_file): clarify automatic version insertion and entries behavior (#17789)
  • chore: update crunchy to v0.2.4 (#17856)
  • fix: remove unused import from execute.rs (#17811)
  • feat(rpc): Add SimTxConverter to allow for providing custom converters with extra context (#17821)
  • fix: typo initialise to initialize (#17851)
  • chore: use receipt.into_logs instead of log.to_vec to reduce the unnecessary clone (#17852)
  • chore: remove myself from codeowners (#17855)
  • feat: introduced configurable version globals (#17711)
  • fix(call): overwrite gas when exceed the RPC_DEFAULT_GAS_CAP (#17847)
  • fix: clippy warnning manual_is_multiple_of (#17853)
  • fix(db): make db get --raw work with DupSort tables (#17842)
  • feat(examples): Add custom header extensions to payload attributes in custom_node example (#17797)
  • chore: remove s3 stage (#17831)
  • chore: update db-access example used method (#17815)
  • chore(deps): bump revm 28.0.1, inspectors, alloy-evm (#17840)
  • perf: use unwrap and save 198 cycles (#17836)
  • chore(cli): rename file import_op to import_core for clarity (#17826)
  • perf: iterate through nibbles (#17820)
  • feat: allow external block recovery in reth-stateless (#17755)
  • chore: Remove BlockMeta variants and unused code (#17835)
  • feat(tx-pool): add add_transactions_with_origins helper (#17802)
  • chore: fixed dead links in repo (#17694)
  • test: modify discv5 startup test to use a random port (#17614)
  • fix: storage lock race condition (#17823)
  • perf: optimize condition ordering in ParkedPool for better short-circuiting (#17816)
  • perf: remove some clones around eth tracing (#17822)
  • chore(deps): bump actions/download-artifact from 4 to 5 (#17817)
  • chore(deps): bump actions/checkout from 4 to 5 (#17814)
  • chore(test-vectors): remove TxDeposit compact TODO (#17800)
  • chore: remove whitespace of the gas unit and threshold (#17808)
  • chore: rename gas to gas_used in the node logs (#17767)
  • chore: Expose payload builder handle and metrics (#17764)
  • chore: remove redundant words in comment (#17753)
  • feat: add op db access example (#17796)
  • feat: persist origin on pooled tx backup for propagation setting (#17756)
  • chore: replace ~/.cargo with $CARGO_HOME (#17776)
  • docs: add optimism Access-list spec (#17775)
  • fix: reth dev node implement the --block-max-transactions arg (#17784)
  • fix(network): push header before next header check in get_headers_response (#17766)
  • chore(deps): weekly cargo update (#17777)
  • docs: remove deprecated difficulty check comment (#17781)
  • chore: msrv 1.88 (#17782)
  • fix: add validation against parent header in reth-stateless (#17754)
  • chore: Fix typo tx_inf -> tx_info (#17763)
  • refactor(witness): remove unnecessary curly braces in closure (#17752)
  • feat: nix flake (#17757)
  • fix(stages): use correct block number in error message (#17751)
  • feat(grafana): add state root duration histogram graph (#17745)
  • fix: add missing semicolon in wallet generation loop (#17739)
  • fix: enforce propagate on getpooledtx (#17720)
  • feat: delay block -> payload conversions (#17681)
  • feat(chain-state): add IndexedTx helper (#17737)
  • chore: remove redundant word in comment (#17728)
  • feat: add jovian to OpChainSpec (#17671)
  • chore: feature gate async (#17734)
  • fix: typo in file deletion error message (#17729)
  • chore: rm trie dep (#17732)
  • feat: Execute execution-apis-tests in e2e tests (#17708)
  • test(generators): add topics_count parameter to random_receipt (#17718)
  • fix(db-common): compute state root when initializing from genesis (#17731)
  • fix: execution-apis eth_syncing should return false (#17730)
  • fix(GPO): calculate max_tx_gas_used corner case (#17679)
  • deps: bump libmdbx to 0.13.7 (#17727)
  • chore: fix clippy docs (#17726)
  • chore: add flag to disable txpool gossip (#17724)
  • test: add ordering test (#17703)
  • chore(deps): weekly cargo update (#17716)
  • test(exex): add advance backfill range test (#17714)
  • fix: forward unknown hashes pre bedrock (#17709)
  • chore: fix clippy warnings (#17707)
  • feat: add all_transaction_hashes (#17700)
  • fix: feature-gate std-only methods in sparse trie (#17706)
  • refactor: move BasicEngineValidator creation into EngineApiValidatorBuilder trait (#17664)
  • test(op-chainspec): add isthmus checks (#17698)
  • fix: skip pending tx updates with higher prio value (#17699)
  • fix(txpool): also emit promoted pending tx on pool drift (#17695)
  • feat(trie): add blinded node metrics in ProofTaskManager (#17685)
  • chore: bump alloy-op-hardforks and op-alloy (#17697)
  • fix(config): default back gas limit to 45M on mainnet (#17690)
  • fix: use primitive header type for fetching header (#17691)
  • refactor: stream transactions while executing payload (#17661)
  • chore(sdk): Add example for building offline TraceApi with node builder (#17682)
  • fix(pool): optimize canonical state change benchmark (#17688)
  • chore: rm clone for witness (#17684)
  • perf(trie): reuse allocated trie input in payload processor (#17371)
  • feat(trie): add ParallelSparseTrieMetrics (#17405)
  • fix: RPC: feeHistoryEntry should return 0.0 when blob_params.max_blob_count is zero (#17669)
  • feat: convert BlockExecutionErrors (#17573)
  • docs(example): extract full contract state from db (#17601)
  • feat: tracked State for local pending block (#17600)
  • feat(merkle): add IntermediateRootState for storage root progress (#17548)
  • perf: remove redundant metrics update (#17660)
  • fix: createtx_env after applying state overrides for estimate_gas (#17668)
  • feat: added max-readers flag for db (#17663)
  • refactor(cli): replace From with CliHeader trait (#17656)
  • docs(trie): update ParallelSparseTrie documentation (#17538)
  • perf: add benchmark for on_canonical_state_change (#17645)
  • perf: box larger futures (#17633)
  • refactor: move invalid block hook creation from LaunchContext to AddOnsContext (#17655)
  • feat: separate EngineValidator from PayloadValidator (#17641)
  • perf: only notify if we have listeners (#17651)
  • perf: can shortcircuit here if no peers (#17650)
  • chore: only cast basefee once (#17648)
  • perf(txpool): rm unused best bijection (#17649)
  • perf: avoid redundant notifications (#17647)
  • fix(era-test): fix integration tests for era (#17646)
  • perf(trie): Process multiproof reveals for storage tries in parallel (#17440)
  • docs: fix doc comments: clarify downloaded bytes and builder return condition (#17566)
  • refactor: introduce Enginvalidator in tree (#17598)
  • chore: relax Cli::run_with_components (#17630)
  • chore(deps): weekly cargo update (#17628)
  • fix: correct comment for is_latest_invalid method (#17621)
  • docs: fix typos (#17624)
  • feat: support any network type in eth api builder (#17617)
  • fix: Benchmarking Link in database.md (#17553)
  • chore: remove duplicate deps (#17618)
  • chore: make clippy happy (#17620)
  • docs: correct error comments in networking optimism modules (#17602)
  • feat(rpc): add method to configure custom tokio runtime for RPC server (#17611)
  • test(sdk): Add test for using node builder with noop components (#17560)
  • test(era1): add more Receipt tests to verify decoding (#17592)
  • chore: introduce engine module (#17591)
  • fix: typo in Cargo.toml (#17588)
  • feat: Add IPC socket permission configuration (#17497)
  • refactor: small simplifications for tree types (#17589)
  • fix: remove extra space in PostStateRootMismatch error message (#17590)
  • docs: fix the parameters (#17586)
  • feat(engine): add validate_payload and validate_block methods to EngineValidator trait (#17429)
  • chore: move validation to standalone fns (#17582)
  • fix(txpool): enforce encoded length check (#17581)
  • fix: correct prune mode assignments in HistoryIndexingStages (#17575)
  • feat: abstraction for attributes -> NextBlockEnv conversion (#17570)
  • feat(era): add era types (#17477)
  • refactor: move EngineValidator trait to reth-engine-tree (#17559)
  • chore(hive): update expected failures (#17580)
  • feat(ci): add ignored tests management to hive workflow (#17577)
  • feat: make CompactEnvelope trait public for external crate usage (#17576)
  • feat(reth-bench): add gas throughput chart to python script (#17572)
  • refactor: use alloy Log::collect_for_receipt instead of macro to collect logs (#17569)
  • feat: add TreePayloadValidator (#17451)
  • feat(pool): return state of an added tx (#17442)
  • feat: make basic block builder pub (#17476)
  • chore: rm unused file (#17563)
  • perf: process chunks in par for get logs in block range eth_getLogs (#16675)
  • fix(exex): update batch threadshold calculate processed blocks (#17551)

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.7.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 reth-v1.7.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 reth-v1.7.0-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 reth-v1.7.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 reth-v1.7.0-aarch64-apple-darwin.tar.gz PGP Signature
Docker paradigmxyz/reth -

OP-Reth

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

What's Changed

New Contributors

Full Changelog: v1.6.0...v1.7.0

Don't miss a new reth release

NewReleases is sending notifications on new releases.