Skip to content

chore: upgrade reth from v1.9.3 to v1.10.2#208

Open
fridrik01 wants to merge 2 commits intomainfrom
bump-reth-1.10.2
Open

chore: upgrade reth from v1.9.3 to v1.10.2#208
fridrik01 wants to merge 2 commits intomainfrom
bump-reth-1.10.2

Conversation

@fridrik01
Copy link
Contributor

@fridrik01 fridrik01 commented Feb 2, 2026

This PR bumps reth dependency from v1.9.3 to v1.10.2. Note that it required bumping alloy dependencies as well.

Reth v1.10.x contains several breaking SDK changes, most notable being:

  • CliHeader trait replaced with HeaderMut - updated BerachainHeader impl (src/primitives/header.rs:98)
  • EthApiTypes and RpcConvert traits refactored with new Error bounds - updated BerachainApi impls (src/rpc/api.rs:345)
  • PayloadAttributesBuilder::build now takes &SealedHeader<Header> (only affects LocalPayloadAttributesBuilder used in debug/testing mode) - updated BerachainPayloadAttributes to derive attributes from parent header instead of timestamp (mirrors upstream reth) (src/engine/payload.rs:141)
  • EngineApi::new requires additional network parameter - updated engine RPC setup (src/engine/rpc.rs:81)
  • Consensus trait simplified (removed type Error) - updated BerachainBeaconConsensus impl (src/consensus/mod.rs:218)
  • Various method renames (tx_resp_builderconverter at src/rpc/api.rs:352, with_specwith_spec_and_mainnet_gas_params at src/node/evm/config.rs:122)

This PR also aligns with upstream payload builder logic by adding extra_data field to BerachainNextBlockEnvAttributes and EIP-7872 blob limit configuration support.

Note: The alloy dependencies align exactly with upstream reth v1.10.2 release, see here

Test plan

make pr
..
All PR checks passed! ✅

Summary by CodeRabbit

Release Notes

  • Chores

    • Bumped package version to 1.4.0-rc.1.
    • Updated core dependencies to newer versions (reth v1.10.2, alloy crates to 1.4.x/1.5.x series).
  • Refactor

    • Enhanced consensus validation with receipt root Bloom verification support.
    • Improved block building with extra data and blob limit handling.
    • Refined payload validation and conversion flow for better block processing.
    • Strengthened RPC transaction interface with improved error handling and type constraints.
    • Updated header trait implementation with additional mutation methods.

@fridrik01 fridrik01 self-assigned this Feb 2, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 2, 2026

📝 Walkthrough

Walkthrough

Dependency upgrade from reth v1.9.3 to v1.10.2 with corresponding alloy version updates (Cargo.toml), followed by coordinated API alignment across consensus, engine, EVM, RPC, and node modules to match new upstream signatures. Package version bumped to 1.4.0-rc.1.

Changes

Cohort / File(s) Summary
Hive Configuration
.github/assets/hive/build_simulators.sh, .github/assets/hive/expected_failures.yaml, .github/assets/hive/ignored_tests.yaml
Updated header comments from "Copied from reth v1.9.3" to "Synced with reth v1.10.2".
Dependency Versions
Cargo.toml
Bumped package version to 1.4.0-rc.1 and upgraded all reth crates from v1.9.3 to v1.10.2; aligned alloy-* crates to 1.4.x/1.5.x series; updated dev and build dependencies including vergen, revm-inspectors.
Consensus Validation
src/consensus/mod.rs
Added receipt_root_bloom: Option<ReceiptRootBloom> parameter to validate_block_post_execution; standardized return types from Self::Error to ConsensusError in trait implementations.
Engine Payload Building
src/engine/builder.rs, src/engine/payload.rs, src/engine/validator.rs
Added extra_data field to payload attributes; refactored blob limit handling with protocol-level clamping; changed validate_block_post_execution to accept parent SealedHeader for timestamp enforcement; renamed validator method to convert_payload_to_block returning SealedBlock with new wrapper for RecoveredBlock.
Engine API & Execution
src/engine/mod.rs, src/engine/rpc.rs
Added block_access_list() and transaction_count() methods to BerachainExecutionData; added network handle parameter to EngineApi::new constructor.
Node EVM Configuration
src/node/evm/config.rs, src/node/evm/executor.rs
Added extra_data: Bytes field and with_extra_data() builder method; replaced with_spec() with with_spec_and_mainnet_gas_params(); added receipts() accessor to BlockExecutor trait; updated state-change imports to alloy_evm::block::state_changes.
Node & Primitives
src/node/mod.rs, src/primitives/header.rs
Updated local_payload_attributes_builder return type with additional BerachainHeader generic; replaced CliHeader with HeaderMut implementation; added set_timestamp(), set_state_root(), set_difficulty() methods to header trait.
RPC API
src/rpc/api.rs
Renamed tx_resp_builder() to converter(); tightened RpcConvert trait bounds to include Error = EthApiError; added blocking_io_task_guard() method; refactored send_raw_transaction() to send_transaction() accepting WithEncoded<Recovered<PooledTx>> with split broadcast/submit logic.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Suggested reviewers

  • rezzmah
  • calbera

Poem

🐰 Hoppy hops through versions new,
From reth v1.9.3 to v1.10.2 we flew!
Signatures aligned with careful care,
Extra data fields floating in the air,
Blob limits clamped, receipts in sight,
Berachain bounds ever-tighter, ever-right!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 30.30% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: upgrade reth from v1.9.3 to v1.10.2' directly and clearly summarizes the main change - a dependency upgrade across the codebase affecting multiple files and requiring API adaptations.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bump-reth-1.10.2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@fridrik01 fridrik01 marked this pull request as ready for review February 2, 2026 15:14
Base automatically changed from bump-reth-1-9-3 to main February 3, 2026 06:25
Copilot AI review requested due to automatic review settings February 3, 2026 09:27
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades reth dependency from v1.9.3 to v1.10.2, along with corresponding alloy dependency updates. The upgrade involves several breaking SDK changes in reth v1.10.x that require adaptation throughout the codebase.

Changes:

  • Updated reth from v1.9.3 to v1.10.2 and alloy dependencies to match upstream versions
  • Adapted to trait refactorings including HeaderMut, RpcConvert, Consensus, and PayloadAttributesBuilder
  • Updated method signatures and API calls to match new reth interfaces
  • Added EIP-7872 blob limit configuration support and extra_data field handling

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated no comments.

Show a summary per file
File Description
Cargo.toml Bumped reth to v1.10.2, alloy to v1.4.3/v1.5.0, and updated build/dev dependencies
Cargo.lock Comprehensive dependency lock file updates reflecting the version bumps
src/primitives/header.rs Replaced CliHeader trait with HeaderMut trait implementation
src/rpc/api.rs Updated RpcConvert trait bounds with Error type, renamed tx_resp_builder to converter, refactored send_transaction method
src/node/mod.rs Updated PayloadAttributesBuilder signature to include header type parameter
src/node/evm/config.rs Renamed with_spec to with_spec_and_mainnet_gas_params, added extra_data field
src/node/evm/executor.rs Updated imports for balance_increment_state and post_block_balance_increments moved to alloy-evm, added receipts() method
src/consensus/mod.rs Removed type Error from Consensus trait implementation, added receipt_root_bloom parameter
src/engine/mod.rs Added block_access_list() and transaction_count() methods to ExecutionPayloadTrait
src/engine/rpc.rs Added required network parameter to EngineApi::new
src/engine/validator.rs Split ensure_well_formed_payload into separate convert_payload_to_block method
src/engine/payload.rs Updated PayloadAttributesBuilder::build to take &SealedHeader instead of timestamp
src/engine/builder.rs Added EIP-7872 blob limit logic, updated mark_invalid calls to pass reference
.github/assets/hive/*.{yaml,sh} Updated comments from "Copied from" to "Synced with" reth v1.10.2

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants