Conversation
Core reth crates updated to v1.11.0 from paradigmxyz/reth. The reth-optimism-* crates have moved to ethereum-optimism/optimism and are now referenced via the op-reth/v1.11.0 tag. Alloy and revm dependency versions bumped to match reth v1.11.0 requirements. Breaking API changes addressed: - ReceiptBuilderCtx field renamed tx → tx_type (now takes OpTxType) - Task executor methods renamed: spawn → spawn_task, spawn_critical → spawn_critical_task, spawn_blocking → spawn_blocking_task - Launcher entrypoint signature: Arc<DatabaseEnv> → DatabaseEnv - Test framework: TaskManager replaced by Runtime::test() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| vergen-git2 = "9.0.4" | ||
| opentelemetry = { version = "0.31", features = ["trace"] } | ||
|
|
||
| # TODO: Remove [patch.crates-io] overrides once updated op-alloy and alloy-op crates are published to crates.io |
There was a problem hiding this comment.
I will cut releases over the next few days
There was a problem hiding this comment.
Pull request overview
This PR updates the reth framework from v1.10.2 to v1.11.0, including a migration of Optimism-specific crates to the ethereum-optimism/optimism monorepo. The changes adapt the codebase to breaking API changes in the new version, particularly around task execution and receipt building.
Changes:
- Migrated from
TaskManagertoRuntimefor test framework task management - Updated task executor method names (
spawn_critical→spawn_critical_task,spawn_blocking→spawn_blocking_task,spawn→spawn_task) - Adapted
ReceiptBuilderCtxfrom usingtxfield totx_typefield - Updated
Launcherentrypoint signature to useDatabaseEnvinstead ofArc<DatabaseEnv> - Removed Optimism-specific RESS protocol/provider components
- Bumped alloy from 1.4.3 to 1.6.3 and updated other dependency versions
- Modified Docker build flags by removing static linking options
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| crates/op-rbuilder/src/tests/framework/instance.rs | Migrated from TaskManager to Runtime, updated shutdown logic |
| crates/op-rbuilder/src/launcher.rs | Updated Launcher signature and task executor method names |
| crates/op-rbuilder/src/builders/standard/service.rs | Updated task executor method name for payload builder service |
| crates/op-rbuilder/src/builders/generator.rs | Updated spawn_blocking to spawn_blocking_task |
| crates/op-rbuilder/src/builders/flashblocks/service.rs | Updated multiple task spawning calls to new API |
| crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs | Migrated ReceiptBuilderCtx from tx field to tx_type field |
| crates/op-rbuilder/src/builders/context.rs | Applied ReceiptBuilderCtx field changes |
| crates/op-rbuilder/src/builders/builder_tx.rs | Applied ReceiptBuilderCtx field changes |
| Dockerfile | Removed crt-static and static-libgcc from RUSTFLAGS |
| Cargo.toml | Updated reth to v1.11.0, migrated op-reth crates, updated alloy and revm versions |
| Cargo.lock | Reflects all dependency version updates |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -282,8 +282,8 @@ impl LocalInstance { | |||
|
|
|||
| impl Drop for LocalInstance { | |||
| fn drop(&mut self) { | |||
There was a problem hiding this comment.
The Drop implementation for LocalInstance now uses drop(runtime) instead of task_manager.graceful_shutdown_with_timeout(Duration::from_secs(3)). This removes the graceful shutdown with timeout that was previously in place.
Consider whether this change is intentional. If the Runtime type doesn't require explicit cleanup, this is fine. However, if tasks need to be properly shut down before dropping, you may need to call an appropriate shutdown method on the Runtime object.
| fn drop(&mut self) { | |
| fn drop(&mut self) { | |
| if let Some(task_manager) = self.task_manager.take() { | |
| task_manager.graceful_shutdown_with_timeout(std::time::Duration::from_secs(3)); | |
| } |
|
Reth just released https://github.com/paradigmxyz/reth/releases/tag/v1.11.1, and they said it has critical fixes. Can you bump reth to this? |
There was a problem hiding this comment.
There's an issue with this new Runtime::test() that cause memory usage/threads accumulation and killed by os (atleast locally).
There was a problem hiding this comment.
Probably better to keep this in its separate PR and not stack the changes
On top of #403
Summary
v1.10.2tov1.11.0(paradigmxyz/reth)reth-optimism-*crates toethereum-optimism/optimismmonorepo (op-reth/v1.11.0tag), as op-reth was moved out of paradigmxyz/reth starting with v1.11.01.4.3→1.6.3), revm, and other dependency versions to match reth v1.11.0 requirements[patch.crates-io]overrides forop-alloy-*andalloy-op-*crates (TODO: remove once published to crates.io)ReceiptBuilderCtxfield rename, task executor method renames,Launchersignature change,TaskManager→Runtimein testsTest plan
cargo checkpasses with no errors or warnings🤖 Generated with Claude Code