Releases: paradigmxyz/reth
Reth v1.3.4
Summary
This patch release contains a version number fix from v1.3.3.
Includes several fixes for the upcoming opstack isthmus hardfork.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | low |
Non-Payload Builders | low |
See Update Priorities for more information about this table.
All Changes
- chore: release 1.3.4 (#15205)
- chore: bump revm alpha7 (#15202)
- refactor(trie): initialize sparse trie with the provider (#15199)
- chore: remove serde default (#15186)
- test(trie): fix the trie node iterator test and use hash builder for correctness (#15195)
- chore: remove serde from reth-provider (#15194)
- docs: edited by badge lint (#15072)
- Use of payload type instead of EngineTypes (#15187)
- chore: bump version 1.3.3 (#15193)
- chore: remove serde default (#15188)
- chore: remove reth-provider dep (#15191)
- chore: remove reth-provider dep (#15184)
- test(trie): trie node iter (#15176)
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | reth-v1.3.4-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.4-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.4-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.4-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.4-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth | ||
Docker (Reproducible) | paradigmxyz/reth-reproducible |
What's Changed
- test(trie): trie node iter by @shekhirin in #15176
- chore: remove reth-provider dep by @mattsse in #15184
- chore: remove reth-provider dep by @mattsse in #15191
- chore: remove serde default by @mattsse in #15188
- chore: bump version 1.3.3 by @mattsse in #15193
- Use of payload type instead of EngineTypes by @gitToki in #15187
- docs: edited by badge lint by @Olexandr88 in #15072
- chore: remove serde from reth-provider by @mattsse in #15194
- test(trie): fix the trie node iterator test and use hash builder for correctness by @shekhirin in #15195
- chore: remove serde default by @mattsse in #15186
- refactor(trie): initialize sparse trie with the provider by @shekhirin in #15199
- chore: bump revm alpha7 by @mattsse in #15202
- chore: release 1.3.4 by @mattsse in #15205
New Contributors
- @gitToki made their first contribution in #15187
- @Olexandr88 made their first contribution in #15072
Full Changelog: v1.3.3...v1.3.4
Reth v1.3.3
Summary
This release includes full support for the Hoodi testnet: --chain hoodi
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | low |
Non-Payload Builders | low |
See Update Priorities for more information about this table.
All Changes
- Created ProduceBlocks (#15179)
- chore(ci): update hive eest limits (#15172)
- chore: bump alloy-evm alpha2 (#15177)
- feat: make MissingPayloadBehaviour configurable in EthereumPayloadBuilder (#15161)
- Fix: Enable BSC Pascal Hardfork for fixing bsc handshake (#15175)
- test(trie): mock hashed cursor factory (#15174)
- test(trie): mock trie cursor factory (#15173)
- move tx pool events and listener code into its own file (#15162)
- chore(op): remove unused DepositTransaction impl (#15169)
- perf(engine): use proof task as blinded node provider for sparse trie (#15152)
- feat: add inverse conversion for rpc proof types (#15158)
- feat: add new
NewBlockEvent
enum for different types of block announcement events (#15133) - refactor: Update BlockImport type to use BlockImportEvent to support announcements (#15153)
- feature gate serde in config (#15071)
- feat: use configured
max_new_pending_txs_notifications
channel for channel size (#15132) - chore(trie): make rlp_node take external rlp_buf (#15137)
- chore(trie): refactor each trie reveal into separate fn (#15143)
- Exempt auth server from query limits (#15074)
- converted EngineTypes to PayloadTypes (#15148)
- chore: simplify revm imports (#15090)
- Added custom headers to NodePrimitives (#13995)
- chore: Move block_to_payload to PayloadTypes trait (#15138)
- chore: turn multiproof from state into pure fn (#15139)
- chore(trie): rename from_provider_and_root to from_root_node (#15141)
- chore: fix hickory_resolver breakage (#15134)
- feat: add hoodi genesis (#15118)
- feat(rpc): accept requests hash in engine_newPayloadV4 (#15123)
- feat(reth-bench): support engine_newPayloadV4 (#15127)
- chore: bump alloy 0.12.6 (#15130)
- chore: add evm_for_ctx in prewarming ctx (#15121)
- refactor(trie): pass blinded provider factory to sparse trie methods (#15120)
- Created PickNextBlockProducer e2e Action (#15119)
- refactor(trie): invert provider access in sparse trie (#14662)
- chore(trie): do not take self by mutable ref for blinded provider (#15116)
- Re-exports serde bincode compat (#15112)
- Refactor generic type to use
PayloadTypes
(#15113) - ExecutionData moved to PayloadTypes (#15060)
- fix windows msvc build (#15082)
- chore: remove layer of blocking task calls (#15102)
- Build and push images in parallel (#15042)
- feat(op-interop): Uncomment interop activation checks (#14980)
- Bsc block import (#14784)
- chore: elide lifetime in PayloadOrAtt impl (#15095)
- chore: fix dead link in
example/README.md
(#15065) - perf(tree): do not wait for the sparse trie to drop (#15092)
- feat: use fixed number of db transactions for storage proofs (#14860)
- chore: make execution and state root logs debug (#15077)
- fix: bring back the missing trace! logs (rpc::engine) (#15096)
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | reth-v1.3.3-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.3-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.3-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.3-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.3-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth | ||
Docker (Reproducible) | paradigmxyz/reth-reproducible |
What's Changed
- fix: bring back the missing trace! logs (rpc::engine) by @kien-rise in #15096
- chore: make execution and state root logs debug by @Rjected in #15077
- feat: use fixed number of db transactions for storage proofs by @Rjected in #14860
- perf(tree): do not wait for the sparse trie to drop by @shekhirin in #15092
- chore: fix dead link in
example/README.md
by @litvintech in #15065 - chore: elide lifetime in PayloadOrAtt impl by @stevencartavia in #15095
- Bsc block import by @loocapro in #14784
- feat(op-interop): Uncomment interop activation checks by @emhane in #14980
- Build and push images in parallel by @jenpaff in #15042
- chore: remove layer of blocking task calls by @Rjected in #15102
- fix windows msvc build by @makcandrov in #15082
- ExecutionData moved to PayloadTypes by @Rimeeeeee in #15060
- Refactor generic type to use
PayloadTypes
by @0xMushow in #15113 - Re-exports serde bincode compat by @fedemagnani in #15112
- chore(trie): do not take self by mutable ref for blinded provider by @shekhirin in #15116
- refactor(trie): invert provider access in sparse trie by @PoulavBhowmick03 in #14662
- Created PickNextBlockProducer e2e Action by @Soubhik-10 in #15119
- refactor(trie): pass blinded provider factory to sparse trie methods by @shekhirin in #15120
- chore: add evm_for_ctx in prewarming ctx by @Rjected in #15121
- chore: bump alloy 0.12.6 by @mattsse in #15130
- feat(reth-bench): support engine_newPayloadV4 by @shekhirin in #15127
- feat(rpc): accept requests hash in engine_newPayloadV4 by @shekhirin in #15123
- feat: add hoodi genesis by @Rjected in #15118
- chore: fix hickory_resolver breakage by @Rjected in #15134
- chore: turn multiproof from state into pure fn by @Rjected in #15139
- chore(trie): rename from_provider_and_root to from_root_node by @Rjected in #15141
- chore: Move block_to_payload to PayloadTypes trait by @stevencartavia in #15138
- Added custom headers to NodePrimitives by @PelleKrab in #13995
- chore: simplify revm imports by @rakita in #15090
- converted EngineTypes to PayloadTypes by @Rimeeeeee in #15148
- Exempt auth server from query limits by @yohkaz in #15074
- chore(trie): refactor each trie reveal into separate fn by @Rjected in #15143
- chore(trie): make rlp_node take external rlp_buf by @Rjected in #15137
- feat: use configured
max_new_pending_txs_notifications
channel for channel size by @varun-doshi in #15132 - feature gate serde in config by @Rimeeeeee in #15071
- refactor: Update BlockImport type to use BlockImportEvent t...
Reth v1.3.2
Summary
This patch release contains
- support for hoodi testnet bootnodes
- fixes broken build of 1.3.1 caused by a breaking change in
revm
by updatingrevm
to latest patch release
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | low |
Non-Payload Builders | low |
Testnet operators | high |
See Update Priorities for more information about this table.
All Changes
- chore: release 1.3.2 (#15097)
- feat: add hoodi bootnodes (#15085)
- bump: revm v20.0.0-alpha.6 (#15087)
- fix: use branch for jsonrpsee (#15094)
- respect gas limit for test_best_transactions_prioritized_senders() (#15076)
- chore: rm reth-primitives from trie (#15070)
- feat: add wait_time optional argument to reth-bench (#15045)
- chore: rm reth-primitives from node crates (#15069)
- chore: rm reth-primitives from exex crates (#15066)
- chore: rm reth-primitives from network (#15063)
- chore: rm reth-primitives from optimism (#15064)
- chore: rm reth-primitives from eth wire (#15062)
- chore: rm reth-provider dep (#15058)
- chore: rm reth-primitives from downloaders (#15059)
- chore: rm reth-primitives from payload basic (#15056)
- chore: rm reth-primitives from payload crates (#15055)
- test for handling incoming_transactions_hashes (#14960)
- Replace None with RecoveryError in transaction signature recovery (#15050)
- chore: add serde feature to db-models (#15051)
- fix: increment in_progress when we spawn a prewarm transaction (#15052)
- fix: add debug namespace to auth module in op-reth (#15048)
- fix: handling of on-disk reorgs (#15046)
- chore: rm redundant error map (#15044)
- feat: add total multiproof task duration grafana (#15034)
- fix(l2-withdrawals-root): conversion of block to
OpExecutionPayloadEnvelopeV4
(#15038) - chore: invoke invalid block hook for new invalid blocks (#14776)
- feat: make trace_filter block range configurable (#14939)
- feat(test, e2e): mutable environment for actions (#15021)
- chore: rename stateful-precompile to precompile-cache (#15033)
- fix(ci): update limit to match fixture types in hive eest tests (#15037)
- Fix: Update commet about Eip7702 transaction type (#15024)
- remove no need map_err (#15036)
- remove no need map_err (#15035)
- feat:added peer-kind to SessionInfo (#15022)
- feat: track time since first state update in metrics (#15031)
- chore: add profiling-op target to Makefile (#15032)
- feat: Impl TryFrom<Recovered<TxEnvelope for MockTransaction (#15005)
- chore: use Histogram for trie input duration (#15028)
- feat: add redundant / total multiproof node graphs (#15027)
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | reth-v1.3.2-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.2-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.2-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.2-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.2-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth | ||
Docker (Reproducible) | paradigmxyz/reth-reproducible |
What's Changed
- feat: add redundant / total multiproof node graphs by @Rjected in #15027
- chore: use Histogram for trie input duration by @Rjected in #15028
- feat: Impl TryFrom<Recovered<TxEnvelope for MockTransaction by @stevencartavia in #15005
- feat: track time since first state update in metrics by @Rjected in #15031
- chore: add profiling-op target to Makefile by @Rjected in #15032
- feat:added peer-kind to SessionInfo by @Rimeeeeee in #15022
- remove no need map_err by @Pana in #15035
- remove no need map_err by @Pana in #15036
- Fix: Update commet about Eip7702 transaction type by @akshay-ap in #15024
- fix(ci): update limit to match fixture types in hive eest tests by @fgimenez in #15037
- chore: rename stateful-precompile to precompile-cache by @Rjected in #15033
- feat(test, e2e): mutable environment for actions by @fgimenez in #15021
- feat: make trace_filter block range configurable by @stevencartavia in #14939
- chore: invoke invalid block hook for new invalid blocks by @Soubhik-10 in #14776
- fix(l2-withdrawals-root): conversion of block to
OpExecutionPayloadEnvelopeV4
by @emhane in #15038 - feat: add total multiproof task duration grafana by @Rjected in #15034
- chore: rm redundant error map by @leopardracer in #15044
- fix: handling of on-disk reorgs by @klkvr in #15046
- fix: add debug namespace to auth module in op-reth by @alessandromazza98 in #15048
- fix: increment in_progress when we spawn a prewarm transaction by @Rjected in #15052
- chore: add serde feature to db-models by @mattsse in #15051
- Replace None with RecoveryError in transaction signature recovery by @leopardracer in #15050
- test for handling incoming_transactions_hashes by @int88 in #14960
- chore: rm reth-primitives from payload crates by @mattsse in #15055
- chore: rm reth-primitives from payload basic by @mattsse in #15056
- chore: rm reth-primitives from downloaders by @mattsse in #15059
- chore: rm reth-provider dep by @mattsse in #15058
- chore: rm reth-primitives from eth wire by @mattsse in #15062
- chore: rm reth-primitives from optimism by @mattsse in #15064
- chore: rm reth-primitives from network by @mattsse in #15063
- chore: rm reth-primitives from exex crates by @mattsse in #15066
- chore: rm reth-primitives from node crates by @mattsse in #15069
- feat: add wait_time optional argument to reth-bench by @Rjected in #15045
- chore: rm reth-primitives from trie by @mattsse in #15070
- respect gas limit for test_best_transactions_prioritized_senders() by @int88 in #15076
- fix: use branch for jsonrpsee by @Rjected in #15094
- bump: revm v20.0.0-alpha.6 by @rakita in #15087
- feat: add hoodi bootnodes by @Rjected in #15085
- chore: release 1.3.2 by @mattsse in #15097
Full Changelog: v1.3.1...v1.3.2
Reth v1.3.1
Summary
This patch release includes:
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | Low |
Non-Payload Builders | Low |
See Update Priorities for more information about this table.
All Changes
- release: v1.3.1 (#15030)
- feat(ress): max witness window (#15029)
- chore(trie): simplify hashed post state partitioning (#14892)
- optimize txpool component doc comment (#15006)
- chore(ress-provider): replace
reth-primitives
(#15020) - check not only 1559 but also 4844 and 7702 for min_priority_fee checking in txpool validation (#15009)
- Fix: help merging
CachedReads
across blocks (#14993) - feat:added EthApiCtx struct for converting build_eth_api args to container type (#15013)
- fix: add bincode compat for eth receipt (#15017)
- chore(cli): fix clap deprecated warnings (#15016)
- chore: rm reth-primitives from reth-rpc-eth-types (#15004)
- feat: remove deprecated #[clap] attribute (#15015)
- chore(test, e2e): remove empty and unused actions (#15008)
- fix(ress): do not terminate on dropped commands sender (#15007)
- chore: rm reth-primitives from engine crates (#15003)
- chore: add metrics on redundant proof nodes (#14969)
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | reth-v1.3.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.1-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.3.1-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.3.1-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth | ||
Docker (Reproducible) | paradigmxyz/reth-reproducible |
Reth v1.3.0
Summary
Pectra
This release contains fixes for all known pectra issues.
Performance
This release enables the new State Root Task for OP-Reth users by default.
It significantly improves the average engine_newPayload
call latencies for Base Mainnet, and helps to alleviate the spikes caused by certain transactions that use a lot of storage (for example XEN contracts).
For more technical details on how the new design works, see https://github.com/paradigmxyz/reth/blob/main/crates/engine/tree/docs/root.md.
OP Stack
This release contains preparations for the upcoming Isthmus hardfork:
Reth SDK
In 1.3.0 #[cfg(feature = “optimism”)]
feature flags on primitives types were removed. Most OP stack crates still required an optimism feature to be compiled, and were incompatible with ethereum crates that depended on revm
because revm also used feature flags to support the OP stack. These are now removed in revm 20.0.0
.
This release includes the transition to the new revm API and introduced a new abstraction layer for interacting with EVM in alloy-evm
for both ethereum and the OP stack. alloy-evm
is no-std compatible and fully built on top of alloy and revm types. It contains all implementations that are required to execute a block, e.g. BlockExecutor
with support for all system transactions (EIP-2935, EIP-4788, EIP-7002, EIP-7251).
alloy-evm
is intended to be zk friendly and should provide the ethereum and OP stack STF out of the box. This is only the initial rollout, more incremental changes and additional features are expected.
This release fully transitioned to revm 20.0.0 and uses alloy-evm.
Developers that currently work with a modified EVM implementation can take a look at the custom evm/precompiles example . Users are encouraged to report limitations and suggestions for documentation.
EVM API
With this release, ConfigureEvmEnv
and BlockExecutionStrategyFactory
traits are merged into a single ConfigureEvm
trait which provides access to both EVM and BlockExecutor
(previously BlockExecutionStrategy
). For detailed overview of the abstraction, see ConfigureEvm docs.
Block builders are also encouraged to migrate to the new BlockBuilder
API that is available on the ConfigureEvm
trait. With 1.3.0 release, ConfigureEvm
stores a BlockAssember
that defines how a block header should be built. BlockBuilder
can be used by payload builders to reduce their responsibilities to only choosing transactions to apply in the block.
This approach has been applied to both Ethereum and Optimism payload builders which can be used as a reference.
Compatible alloy-* version with this release is 0.12.5
Components
- Simplified Payload builder setup: #14700
Upcoming features
Upcoming releases will focus on unifying the remaining transaction types between reth and alloy #14961 in addition to improved ergonomics
Ress
This release contains native support for ress
RLPx subprotocol for stateless nodes. The subprotocol is disabled by default and can be enabled by passing --ress.enable
CLI argument. See protocol documentation for more info: https://github.com/paradigmxyz/reth/tree/main/crates/ress/protocol
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | low |
Non-Payload Builders | low |
Tesnet operators | high |
See Update Priorities for more information about this table.
All Changes
- fix: use clang v10 (#15000)
- chore: add workflow for building binaries (#14999)
- Revert "meta: downgrade ubuntu for windows" (#14998)
- deps: downgrade cc to 1.2.15 (#14996)
- meta: downgrade ubuntu for windows (#14995)
- meta: bump ubuntu for release (#14994)
- meta: bump rust version for reproducible build (#14991)
- meta: install cross from main for release (#14992)
- Chore: move tree config from engine-tree to engine-primitives (#14890)
- chore: bump version 1.3.0 (#14986)
- chore: blanket implementation for
OpPooledTx
(#14990) - chore: bump revm (#14988)
- docs(ress): fix witness format (#14984)
- chore: add ress code owner (#14985)
- chore: bump alloy-trie (#14983)
- use cross main in docker-git and docker instead of taiki-e action (#14978)
- Bump vergen to 9.0 #14904 (#14940)
- feat(optimism): enable state root task by default (#14977)
- chore: bump alloy 0.12.5 (#14976)
- feat: integrate ress (#14959)
- chore: add
From<BlockExecutionError> for PayloadBuilderError
(#14973) - chore: rm reth-prmitives from ethereum crates (#14972)
- chore: rm reth-prmitives from stages (#14970)
- chore: rm reth-prmitives from e2eutils (#14971)
- chore: add sparse trie logs with time elapsed (#14967)
- chore: remove reth-primitives dep db crates (#14968)
- chore: rm reth-prmitives from rpc compat (#14965)
- chore: rm reth-prmitives from rpc builder (#14966)
- chore: bump revm (#14954)
- Update metrics.md (#14813)
- chore: rm reth-prmitives from rpc (#14957)
- chore: remove reth-primitives dep from eth api (#14958)
- chore: Use cargo-chef to build the hivetests docker image (#14884)
- chore: reorder trait impl fns (#14956)
- fix: call validate_execution_requests from validate_version_specific_fields for ethereum engine validator (#14932)
- test: complete mine block test in e2e testsuite (#14849)
- chore: feature propagation (#14951)
- chore: bump revm (#14947)
- fix(docker-nightly) use cross main (#14948)
- chore: remove commented SparseTrieEvent (#14946)
- ci: allow unmaintained humantime (#14950)
- chore(
SessionManager
): send message without&mut self
requirement (#14949) - chore: rm rpc conversion types (#14942)
- chore: bump alloy-chains (#14944)
- chore: use B256 Display for state root test assertion (#14943)
- Parse L1 block values in Interop fork (#14869)
- chore: enable revm portable by default for op-reth (#14937)
- chore: simplify rpc tx conversion (#14736)
- Add other variant on Block import err (#14938)
- chore: simplify
NodePrimitives
bounds (#14936) - feat(ress): limit active connections (#14928)
- add nightly builds (#14934)
- chore: enable revm portable feature by default for binaries (#14931)
- fix: exex head ahead of host (#14001)
- feat: implement compact for alloy ethereum transaction (#14908)
- feat/emit better payload events (#14923)
- fix: disable not only if requested (#14927)
- feat(op, txpool): introduce OpPooledTx trait (#14926)
- fix: clear tree state on unwind (#14866)
- feat: add bincode support to opreceipt (#14872)
- chore: remove reth-primitives dep from commands (#14919)
- chore: remove reth-primitives dep from chain-state (#14914)
- refactor: unify EVM traits (#14920)
- feat: implement InMemorySize for TxEnvelope and OpTxEnvelope #14913 (#14922)
- chore: remove reth-primitives dep from op rpc (#14915)
- chore: bump alloy-evm (#14917)
- chore: remove reth-primitives dep from consensus-common (#14912)
- chore: remove reth-primitives dep from evm (#14911)
- chore: Add 0x prefix and use macro if possible (#14907)
- docs: correct activation note (#14910)
- chore: add FactoryTx for getting tx associated types (#14909)
- chore: replace withencoded with alloy's (#14905)
- chore(ci): Remove redundant licenses from allow list (#14903)
- replace reth-primitives deps in txpool with reth-primitives-traits (#14306)
- fix: generate-jwt.sh dir with whitespace (#14896)
- changed block_with_senders() to recovered_block() (#14894)
- chore: impl encodable for tx (#14893)
- feat(trie): update sparse trie storage roots independently (#14874)
- chore: bump alloy 0.12 (#14891)
- chore: update advisories (#14889)
- feat: don't include operator fee params in receipts when both zero (#14880)
- perf(tree): chunk multiproofs (#14800)
- chore(deps): Bump op-alloy (#14882)
- changed sealed_block_with_senders_range() into recovered_block_range() (#14876)
- fix(l2-withdrawals-root): isthmus header custom genesis (#14875)
- feat: add helper for eth body conversion (#14864)
- chore: add 0x prefix to
b256!
andaddress!
calls (#14871) - modified get_sealed_block_with_senders() to get_recovered_block_with_senders() (#14865)
- chore(primitives-traits): remove duplicate IntoIterator bounds in generics (#14861)
- chore: remove StateRoot variant from BlockValidationError (#14858)
- chore: bump alloy-evm and revm (#14855)
- refactor: prepare BlockExecutionError for move to alloy-evm (#14857)
- Added 0x prefix to transaction hash test values (#14854)
- chore: auto_impl TrieCursorFactory for reference (#14856)
- feat: add validate known account to optimism rpc (#14851)
- feat: integrate alloy-hardforks (#14853)
- feat: configuration of the tokio runtime (#14837)
- fix(mev_simBundle): log at trace rather than info level (#14852)
- test: partially tx resp...
Reth v1.2.2
Summary
This is a hotfix release for an issue on the Sepolia testnet and fixes an issue with deposit contract event parsing.
Sepolia has a different version of the deposit contract that deviates from EIP-6110 because it emits additional events (ERC-20).
This issue is present in all EL clients:
- fix: filter by deposit signature hash (#14841)
Update Priority
Critical for Sepolia
See Update Priorities for more information about this table.
All Changes
- release: v1.2.2
- fix: filter by deposit signature hash (#14841)
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | reth-v1.2.2-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.2.2-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.2.2-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.2.2-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.2.2-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth | ||
Docker (Reproducible) | paradigmxyz/reth-reproducible |
Full Changelog: v1.2.1...v1.2.2
Reth v1.2.1
Summary
Includes one fix for ethereum sepolia where merge block was misconfigured
- fix: sepolia paris block (#14766)
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | low |
Non-Payload Builders | low |
See Update Priorities for more information about this table.
All Changes
- chore: release 1.2.1
- fix: sepolia paris block (#14766)
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | reth-v1.2.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.2.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.2.1-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.2.1-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.2.1-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth | ||
Docker (Reproducible) | paradigmxyz/reth-reproducible |
Full Changelog: v1.2.0...v1.2.1
Reth v1.2.0
Pectra
This release is Pectra ready and includes timestamps for the upcoming Holesky and Sepolia hardforks.
Network | Timestamp |
---|---|
Holesky | Feb 24 2025 21:55:12 GMT |
Sepolia | Mar 05 2025 07:29:36 GMT |
--engine.legacy
deprecation
As announced in v1.1.5, this release fully removes support for the --engine.legacy
option.
Users that rely on the legacy behaviour where blocks are immediately flushed to disk should run with --engine.persistence-threshold 0
and --engine.memory-block-buffer-target 0
to restore that behaviour.
Gas Limit increase
Default suggested gas limit is now 36M: #13318
Performance
This release includes a new State Root Task and Sparse Trie data structure that improve the state root computation performance, and it’s enabled by default for all users.
It reduces the engine_newPayload
call latencies by up to 50%. The average 99th percentile response time has been reduced from 120ms to 80ms. This work is part of ongoing improvements that will be rolled out in upcoming releases.
For more technical details on how the new design works, see https://github.com/paradigmxyz/reth/blob/main/crates/engine/tree/docs/root.md.
We’re going to be implementing more optimizations & testing, and then roll this out on OP Stack L2s for all OP-Reth users by default as well.
OP Stack
- This release contains some preparations for the upcoming Isthmus hardfork, but is not yet Isthmus ready.
- Includes support for forwarding
sendRawTransactionConditional
to the sequencer.
Reth as a library
This release introduces new top level meta crates for easier Reth dependency management:
reth_ethereum
re-exports various commonly used Ethereum and Reth specific types, such as primitives, node components, RPC…reth_op
re-exports various commonly used Optimism and Reth specific types, such as primitives, node components, RPC…
Primitives
This contains several breaking API changes surrounding primitive types.
- Compatible
alloy-*
version is 0.11.1 - This release finalises the separation of Etheruem and Optimism specific primitive types (
Block
,Transaction
,Receipt
). - The core abstraction is now defined by the
Block
trait inreth-primitives-traits
. The Ethereum types are now included inreth-ethereum-primitives
and optimism types inreth-optimism-primitives
- This release stabilises the primitive abstraction and introduces:
SealedHeader<Header>
: supports lazy block hashingSealedBlock<Block>
: contains theSealedHeader
andBlockBody
RecoveredBlock<Block>
:SealedBlock
with all recovered transaction senders.
Conversions are now embedded into the trait abstraction, such as:
Block::try_into_recovered
returnsRecoveredBlock<Block>
Block::seal
returnsSealedBlock<Block>
SignedTransaction::try_recover
returnsRecovered<SignedTransaction>
All internals can only be accessed via functions, so block.body.transactions
now becomes block.body().transactions()
.
The Block
, BlockBody
and SignedTransaction
trait were extended with additional helper functions, such as:
BlockBody::transaction_count
BlockBody::encoded_2718_transactions_iter
This introduces a new container type for the ExecutedBlock
:ExecutedBlockWithTrieUpdates
which includes the ExecutedBlock
and the trie updates of the block.
Deprecated
This release marks various primitives types as deprecated:
BlockWithSenders
which is nowRecoveredBlock<Block>
SealedBlockWithSenders
which is also justRecoveredBlock<Block>
RecoveredTx
is now justRecovered
Deprecated types will be removed in upcoming releases.
Components
This release contains breaking changes for configuring a custom payload builder: #14276, for migration see also: #14320
The PayloadServiceBuilder
setup now consists of two steps, allowing to reuse the default generator.
ExEx migration reference: paradigmxyz/reth-exex-examples#36
Upcoming features
- Upcoming releases will rollout a transition to alloy-rs/evm in combination with a migration to new the new revm implementation. This will allow more flexibility for things like custom evm modifications.
- Combined with that fully RISC-V compatible implementations of the OP-Stack and Etheruem block execution implementations are in progress.
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
- fix(ci): docker release (#14458)
- chore(ci): update hive expected failures (#14454)
- chore: release v1.2.0 (#14438)
- feat: add Block::seal (#14451)
- chore: remove
BatchExecutor
(#14453) - fix(trie): reveal blinded sparse trie when calculating root (#14449)
- feat: add Consensus to
ExecutionStage
(#14447) - feat(grafana): add block validation overhead graph (#14431)
- fix(grafana): use correct datasource for all metrics (#14432)
- feat(op, cli): add cli option to enable tx conditional (#14421)
- chore: export cli from reth ethereum (#14444)
- docs(tree): state root task (#14400)
- feat(optimism): disable state root task by default (#14446)
- chore: use shorter map names (#14445)
- Increase default gas limit from 30M to 36M (#13318)
- chore: export exex (#14443)
- refactor: Add more low-level methods to
Executor
(#14440) - chore: bump alloy 0.11.1 (#14439)
- feat: add MaybeSerdeBincodeCompat to SignedTx (#14433)
- feat: Return root result without blocking due to sparse trie Drop (#14333)
- chore: use reth-ethereum in example (#14409)
- feat(l2-withdrawals): Define
OpEngineApiBuilder
(#14426) - chore: phase out reth-primitives from op-evm (#14428)
- Fix branch (#14416)
- chore: rm unused err variant (#14427)
- fix: use alloc::vec::Vec (#14423)
- feat: impl serde for OpPrimitives (#14422)
- feat: append tx conditional to pooled tx (#14403)
- feat(l2-withdrawals): Define
OpEngineApi
(#14414) - feat: add alloy-compat for op prims (#14406)
- docs: Complete missing stage descriptions in stages.md (#14415)
- chore(tree): expect message on state root handle unwrap (#14419)
- fix(tree): state root task finished log (#14418)
- perf: only fetch parent if not latest (#14412)
- feat: add DecodedStorageProof and DecodedStorageMultiProof (#14391)
- fix: use generic table types (#14413)
- fix(ci): changes in kurtosis-op network config latest optimism package (#14402)
- chore: add root_with_updates method to sparse trie (#14393)
- chore: bump revm 19.5 (#14408)
- fix(validation-rpc): validate against parent, not latest (#14405)
- feat(bin, engine): make state root task default (#14371)
- feat(engine): use Hash Builder as a fallback to the Sparse Trie on newPayload (#14387)
- feat: add reth-op crate (#14401)
- Decode raw conditional correctly (#14397)
- Add helper trait (#14394)
- chore: remove unused arbitrary dep from optimism-primitives (#14392)
- chore: rm unused dependencies from optimism crates (#14396)
- fix: bytecode override (#14390)
- feat: Add cli arg for pool lifetime (#14273)
- Introduce StatusEth69 for
eth/69
status messages (#14292) - feat: add cross-block cache size cli arg (#14305)
- chore: correct the comments (#14339)
- feat(op, txpool): impl send_raw_tx_cond endpoint (#14311)
- chore: re-export rpc types (#14381)
- chore: abstract
OpPayloadBuilder
overChainSpec
(#14374) - feat(l2-withdrawals): Use
OpExecutionPayloadV4
for new payload v4 (#14379) - Added from<alloy_rpc_types_eth::Transaction> for TransactionSigned (#14350)
- fix(trie): do not reveal same node twice in sparse trie (#14370)
- feat: add operator fee params on RPC L1BlockInfo (#14269)
- feat: add reth-eth meta crate (#14361)
- feat(l2-withdrawals): Declare
OpEngineApiServer
andOpEngineApiClient
(#14359) - chore: remove code snippets from stages.md (#14367)
- feat(engine): invalid block event (#14365)
- feat(tree): enter tracing span for each storage trie in state root task (#14363)
- feat: avoid zstd dependency in reth-evm, reth-evm-ethereum and reth-optimism-evm (#14356)
- chore: rm reth-primitives from eth payload (#14357)
- Fix: Correct functionality of
get_queued_transactions_by_sender
andget_pending_transactions_by_sender
(#14353) - feat:
EngineApiBuilder
(#14354) - prague: testnet timestamps (#14270)
- add debug_chainConfig endpoint (#14346)
- added BeaconConsensusEngineHandle to RpcHandle (#14348)
- added helper error enums for L1BlockInfoError (#14326)
- refactor: move
ValidationApi
setup toEthereumAddOns
(#14342) - added EventSender to FullNode type (#14268)
- chore(ci): pin op-node image for kurtosis-op (#14343)
- chore(deps): weekly
cargo update
(#14340) - feat(engine): emit events with executed blocks (#14341)
- test: add a test for devnet failure (#14288)
- chore: make stages types no-std (#14334)
- fix: update --rpc-cache.headers name (#14336)
- feat: add other helpers for ProviderError (#14325)
- chore: add codec and serde features to prune types (#14327)
- chore: typos (#14330)
- chore: add serde feature to stages types (#14329)
- chore: silence unused warnings (#14328)
- feat: Ad...
Reth v1.1.5
Summary
Important
Legacy engine implementation has been made non-default in v1.1.1.
--engine.legacy
flag and legacy engine support is dropped for op-reth in this release and will be removed for reth in the next release.
This release contains performance improvements and bug fixes.
- fix(simulate_v1): fill transactions sequentually (#13532)
- fix: only skip last tx commit in eth_simulate (#13528)
- pref: use batch tx validation in eth validator (#13490)
- feat(rpc): remove total difficulty (#13303)
- fix(builder): desired block gas limit (#13351)
- fix: call bundle recursion (#13425)
OP-Reth
- includes mainnet holocene fork timestamps that goes live Jan 9th (#13419)
Reth as a library
This contains several breaking API changes surrounding primitive types.
- Compatible
alloy-*
version is0.9.2
- Make
block
field private (#13628); migration: replace field access.body
with.body()
- Several primitive types have been unified with alloy's
- Improved
no-std/riscv
support, more WIP - Total difficulty has been removed from all APIs; removed
EvmEnvProvider
trait (#13503) - Make block <-> payload conversions generic over transaction (#13389)
ExEx migration reference: paradigmxyz/reth-exex-examples#35
Next release focuses on finalizing the transition from feature gated Transaction types (eth, op) to dedicated network types followed by cleanup, ergonomic improvements, docs and examples.
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 |
Op-Reth | high |
See Update Priorities for more information about this table.
All Changes
- chore: release 1.1.5 (#13700)
- chore: relax tryfrom impl (#13691)
- chore: rm usage of PooledTransactionsElementEcRecovered alias (#13690)
- chore: disable reth-primitives std default feature (#13687)
- Revert "feat(no-std): enable
no_std
support for op consensus rules" (#13689) - chore: no-std consensus common (#13686)
- feat(no-std): enable
no_std
support for op consensus rules (#13684) - chore: move signedtx ext trait (#13677)
- chore: move accesslist tests (#13680)
- fix(tree): do not reveal nodes twice in sparse trie (#13674)
- chore: remove optimism feature from execution-types tests (#13676)
- chore: rm uneccessary serde mod (#13681)
- chore: remove duplicated compact consts (#13679)
- chore: use secp fns directly (#13675)
- feat(primitives): re-export alloy Recovered (#13670)
- chore(root): log multiproof calculation (#13673)
- chore: bump revm 19.2 (#13667)
- chore: remove unused
WithdrawalsProvider::latest_withdrawal
(#13671) - refactor: Remove standalone from_recovered functions and make part of TransactionCompat trait (#13653)
- chore(consensus): Cut down on reth-primitives::TransactionSigned usage (#13659)
- feat: rename reth_primitives::RecoveredTx functions to match alloy::Recovered (#13663)
- ci: prettify hive/parse.py (#13668)
- chore(trie): parallel storage proof should not error on closed recv (#13448)
- feat: Implement "Add BlockBody::transaction_count helper function" (#13660)
- chore(deps): weekly
cargo update
(#13657) - chore: mark op chainspec riscv (#13654)
- chore: replace trie-common dep with alloy-trie (#13652)
- docs(ci): remove moved deny workflow (#13645)
- integrate EIP-7840 in chainspec (#13605)
- chore: use generics for RecoveredTx (#13650)
- chore: use HashMap::from_iter (#13649)
- feat: remove PartialEq+Eq from ProviderError and all others affected (#13592)
- fix: no_std case hashmap imports (#13617)
- feat: add helper iter for tx hashes (#13638)
- chore: rm another payload conversion fn (#13637)
- test: move tests out of reth-primitives (#13636)
- chore: rm unused recovery fns (#13634)
- chore: rm some direct header access (#13633)
- feat: merge BlockBodyTxExt trait into BlockBody (#13613)
- chore: use alloy TransactionMeta (#13632)
- chore: use alloy-eip2124 code (#13629)
- chore: make block field private (#13628)
- chore: use more payload conversion fns (#13625)
- chore: remove redundant payload fn (#13624)
- chore: bump alloy 0.9.2 (#13623)
- chore: update license to 2025 (#13616)
- chore: use native conversions for payload to block (#13608)
- fix: implement
StateCommitmentProvider
forBlockchainProvider
(#13620) - chore: lower file client bad message log verbosity (#13619)
- feat: handle Isthmus in revm_spec_by_timestamp_after_bedrock() (#13607)
- feat: use alloy block types (#13518)
- chore(bench): more determinism (#13603)
- chore(deps): bump alloy-trie 0.7.8 (#13604)
- chore: bump alloy 0.9.1 (#13602)
- chore: add ChainSpec::from_genesis (#13601)
- feat(metrics): Add cumulative transaction counters to improve observability (#12273)
- feat(bench): make benchmark inputs deterministic using fixed seed (#13586)
- feat: update revm 19 alloy 09 (#13594)
- fix: net/nat retain https scheme for external (#13507)
- fix(storage): update proptest configuration for deterministic bench runs (#13580)
- chore: correct typo docs (#13557)
- feat(tx-pool): make benchmark inputs deterministic (#13570)
- feat(engine): make benchmark inputs deterministic (#13536)
- chore: include typename in assert (#13595)
- chore: use correct assert message (#13591)
- chore: simplify transaction to call request conversion (#13574)
- chore: move payload builder types to standalone mod (#13593)
- chore: use correct error message (#13587)
- chore(deps): weekly
cargo update
(#13589) - chore: replace match with let else (#13585)
- chore: disable chainspec default features (#13583)
- chore: add no-std support for eth-wire-types (#13577)
- chore: update WASM build exclusion list (#13576)
- chore(db): relax consistent view provider bound (#13566)
- chore: rm unused dep and add required (#13569)
- fix: use correct vars (#13567)
- feat: integrate
OpPrimitives
(#13556) - fix(pool): oversized data error (#13565)
- fix(pool): max init code error (#13564)
- feat(net): make benchmark inputs deterministic (#13563)
- chore: simplify revm specId mapping (#13553)
- feat: use new engine in e2e tests for OP (#13558)
- feat: generic data primitives block builder test framework (#13522)
- chore: make clippy happy (#13561)
- perf: query bytecodes with
&B256
to avoid copying code hash (#13559) - chore(version) Remove const_format dependency (#13504)
- perf: query accounts with
&Address
to avoid copying address (#13554) - fix: typo in thread name (#13555)
- fix: debug client etherscan (#13542)
- chore: deduplicate FillTxEnv traits (#13551)
- chore: make
EthStorage
generic over transaction (#13549) - feat: impl compression traits for op primitives (#13550)
- refactor: avoid using NoopTransactionPool in OP payload builder (#13547)
- feat: introduce
OpPooledTransaction
(#13548) - feat: add more impls for OpTransactionSigned (#13546)
- chore: relax cli bounds (#13543)
- fix: Compact impl for OpTypedTransaction (#13544)
- feat: add L2EthApiExt trait (#13539)
- chore: relax
EngineNodeLauncher
bounds (#13540) - Add drop aware sender new type (fixes #13242) (#13495)
- chore: make
NodeEvent
generic overNodePrimitives
(#13534) - refactor: integrate BuiltPayload::Primitives (#13484)
- feat: add missing from impls (#13527)
- chore: move
EventSender
out ofBeaconConsensusEngineHandle
(#13533) - fix(
simulate_v1
): fill transactions sequentually (#13532) - chore(bench): fix non deterministic bench IDs (#13530)
- chore: reuse build_import_pipeline for OP (#13529)
- fix: only skip last tx commit (#13528)
- feat: use batch tx validation in eth validator (#13490)
- chore: expose execution error of debug_cmd/merkle.rs (#13515)
- Fix typo in the command example in the comments Update main.rs (#13524)
- feat: make
ReceiptFileClient
generic over receipt (#13523) - chore: rm evmenvprovider trait (#13503)
- chore: replace root fns with alloys (#13501)
- chore(bench): codspeed name workaround (#13519)
- chore: mark chainspec as riscv compatible (#13517)
- chore: disable default std serde_json feature (#13513)
- chore: disable op- default features (#13511)
- chore: remove unused rand (#13512)
- chore: use imported b256 types (#13509)
- ci: mark trie-common as risc compatible (#13510)
- chore: correct typos docs (#13505)
- docs: update https external link (#13508)
- chore: disable itertools default features (#13500)
- chore: bump alloy-trie and nybbles (#13502)
- docs: use ots_ prefix (#13498)
- fix: reth-trie no_std case hashmap (#13497)
- chore: use NoopConsensus in CLI unwind (#13487)
- update links in crates/static-file/static-file/README.md (#13462)
- feat: relax eth_callBundle bounds (#13485)
- chore: relax
build_receipt
(#13486) - chore(deps): weekly
cargo update
(#13494) - fix...
Reth v1.1.4
Summary
This release contains only one fix relevant to op-reth which allows the miner_
API that is now required by op-batcher as CLI argument:
- fix: fromstr impl for miner variant (#13289)
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | low |
Non-Payload Builders | low |
OP-Reth | high |
See Update Priorities for more information about this table.
All Changes
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | reth-v1.1.4-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.1.4-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.1.4-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.1.4-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.1.4-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth |
Full Changelog: v1.1.3...v1.1.4