Skip to content

feat: Integrate downstream changes (Jovian hardfork + miner_setGasLimit + reth 1.9.1)#316

Merged
avalonche merged 8 commits intoflashbots:mainfrom
base:integrate-base-changes
Nov 10, 2025
Merged

feat: Integrate downstream changes (Jovian hardfork + miner_setGasLimit + reth 1.9.1)#316
avalonche merged 8 commits intoflashbots:mainfrom
base:integrate-base-changes

Conversation

@tobidae-cb
Copy link
Contributor

@tobidae-cb tobidae-cb commented Nov 10, 2025

📝 Summary

Jovian Hardfork Support

  • Adds DA footprint gas scalar validation for post-Jovian transactions
  • Implements da_footprint_gas_scalar parameter in transaction limit checks
  • Validates that tx_da_footprint = total_da_bytes_used * da_footprint_gas_scalar < block_gas_limit
  • Updates to crates/op-rbuilder/src/primitives/reth/execution.rs:89-99

miner_setGasLimit Feature

  • Introduces OpGasLimitConfig for dynamic gas limit control
  • Block gas limit can be overridden via configuration
  • Integrated throughout builder context (crates/op-rbuilder/src/builders/context.rs:119-127)
  • Includes comprehensive test coverage (crates/op-rbuilder/src/tests/miner_gas_limit.rs)

Dependency Upgrades

  • Reth: 1.9.1 (from v1.8.3)
  • Alloy: 1.0.41 (from 1.0.37)
  • alloy-evm: 0.23.0 (from 0.21.3)
  • alloy-op-evm: 0.23.1 (from 0.21.3)
  • op-alloy: 0.22.0 (from 0.20.0)
  • alloy-op-hardforks: 0.4.4 (new)
  • rollup-boost: v0.7.8 (updated for reth 1.9.1 compatibility)
  • Rust: 1.88

💡 Motivation and Context


✅ I have completed the following steps:

  • Run make lint
  • Run make test
  • Added tests (if applicable)

danyalprout and others added 7 commits October 13, 2025 11:24
* Jovian ready op-rbuilder

* Add factoring in da footprint scalar

* Bump reth to 1.9.0
* respect miner_setGasLimit

* fmt
* wip: telemetry resolution

* done
This merge integrates Base's latest changes with Flashbots' main branch:

**From Base (release_upstream):**
- Bump to reth 1.9.1 and latest alloy/op-alloy dependencies
- Jovian hardfork support: DA footprint gas scalar validation
- miner_setGasLimit feature: OpGasLimitConfig for gas limit override
- Rust version 1.88

**From Flashbots (main):**
- P2P layer for flashblocks broadcasting and syncing
- Flashtestations with permit functions
- WebSocket publishing for synced flashblocks
- All existing features and refactoring

**Key Changes:**
- Updated all reth dependencies to version 1.9.1
- Updated alloy dependencies to 1.0.41
- Updated alloy-evm to 0.23.0, alloy-op-evm to 0.23.1
- Updated op-alloy dependencies to 0.22.0
- Added alloy-op-hardforks 0.4.4
- Integrated OpGasLimitConfig for miner gas limit control
- Preserved P2P crate and flashtestations functionality
- Maintained rollup-boost integration
- Added gas_limit_config initialization in flashblocks context
- Changed block_gas_limit() visibility from pub(super) to pub for flashtestations access
- Removed unused Events import

Note: Tests currently fail due to rollup-boost dependency version mismatch (op-alloy 0.20.0 vs 0.22.0)
- Updated rollup-boost dependency from rev dd12e8e to tag v0.7.8
- Resolves op-alloy version mismatch (0.20.0 -> 0.22.0)
- All tests now pass (94/94 passing)
Applied formatting fixes from cargo +nightly fmt to ensure code
passes lint checks. Changes include proper brace placement and
line formatting in flashblocks builder_tx and payload_handler.
ctx.metrics
.payload_byte_size
.record(payload.block().size() as f64);
.record(InMemorySize::size(payload.block()) as f64);
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think you could just import InMemorySize and keep old code, that will now call correct .size()

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I tried to do that but the lint check wasn't happy with that

make lint
Error: Exit code 2
        Compiling op-rbuilder v0.2.8 (/Users/tobi/Desktop/coinbase/base/op-rbuilder/crates/op-rbuilder)
     error[E0282]: type annotations needed
        --> crates/op-rbuilder/src/builders/standard/payload.rs:593:21
         |
     593 |             .record(payload.block().size() as f64);
         |                     ^^^^^^^^^^^^^^^ cannot infer type

     error[E0282]: type annotations needed
        --> crates/op-rbuilder/src/builders/standard/payload.rs:596:18
         |
     596 |             .set(payload.block().size() as f64);
         |                  ^^^^^^^^^^^^^^^ cannot infer type

     For more information about this error, try `rustc --explain E0282`.
     error: could not compile `op-rbuilder` (lib) due to 2 previous errors
     make: *** [lint] Error 101

     cargo +nightly fmt -- --check
     cargo +nightly clippy --all-features -- -D warnings

cli_app.access_tracing_layers()?.add_layer(telemetry_layer);
}

cli_app.init_tracing()?;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we init tracing in some different way now?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah the tracing is enabled by default now when initializing the node client. Code here.

Copy link
Collaborator

@SozinM SozinM left a comment

Choose a reason for hiding this comment

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

Looks great!
Left some qs, otherwise good

@avalonche avalonche merged commit 04c4d78 into flashbots:main Nov 10, 2025
4 checks passed
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.

5 participants