feat: Tsuki hardfork — migrate to DogeOS reth/revm forks#5
Draft
dghelm wants to merge 2 commits into
Draft
Conversation
Update the workspace dependencies to build against the Tsuki hardfork toolchain: - Point all reth-*, reth-scroll-*, and scroll-alloy-* crates at DogeOS69/dogeos-reth rev 65bae46 (reth 1.11.1 base, Tsuki hardfork). - Patch revm/op-revm to scroll-tech/revm branch feat/v103 to match the revm version used by dogeos-reth; revm-scroll resolves to DogeOS69/dogeos-revm tag tsuki-v0.4 transitively. This stays a branch ref (not a pinned rev) so it unifies with dogeos-reth's own internal revm reference; Cargo.lock still pins the exact commit. - Pin the anvil (scroll-tech/foundry) and solar patches to full-length revs for supply-chain hygiene. - Bump alloy to 1.6.3 / alloy-primitives 1.5.6 to match reth 1.11.1. - Switch anvil test dep to scroll-tech/foundry feat/bump-dependencies and add the solar crates.io patches it requires. - Bump rust-version and Docker images to 1.91; adopt resolver 3 so dependency selection stays MSRV-aware and avoids crates that require newer toolchains than the 1.91 build target. - Add reth-tasks/test-utils to node, chain-orchestrator and watcher test-utils features. - Exclude Cargo.toml from dprint formatting. Cargo.lock alloy versions are pinned to the set that dogeos-reth 1.11.1 and the foundry/tempo/solar test dependencies compile against (big-alloy 1.7.3, alloy-primitives/sol 1.5.7, alloy-chains 0.2.30). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
9d2c4b9 to
65825bb
Compare
Port the source and test-utils changes required by the reth 1.11.1 / Tsuki upgrade (mirrors scroll-tech/rollup-node scroll-tech#500): - Migrate off the removed spawn / spawn_critical task helpers. pprof stays critical via spawn_critical_task; db_maintenance and scroll_network_manager use spawn_task to preserve their original non-critical behavior (a plain rename to spawn_critical_task would silently tear down the node if the network manager returns). - Implement RpcHandleProvider::rpc_handle_mut on ScrollAddOnsHandle. - Replace TaskManager with TaskExecutor in the node test harness, and build it with TaskExecutor::test() (lightweight 2-thread pools) rather than ::default(), which would allocate full CPU-sized pools per node and blow up thread counts on high-core CI under --all-features. Move the graceful-shutdown closure accordingly. - Rename TransactionTestContext::transfer_tx_nonce_bytes to transfer_tx_bytes_with_nonce. - Update the sequencer setup() call sites to the new 2-tuple return. - Regenerate anvil_state.json for the newer anvil serialization (adds gas_refund_counter). - Test stabilizers: bump txpool max_account_slots (with rationale), tolerate already-known transactions, wait on block_sequenced instead of a fixed sleep, raise integration timeouts to 120s, and run nextest with --test-threads 4. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
65825bb to
fea90ef
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates the rollup node onto the Tsuki hardfork toolchain: DogeOS forks of reth and revm, plus the source/test changes reth 1.11.1 requires.
Depends on DogeOS69/dogeos-reth#5 (
feat/tsuki-hardfork) — this branch pins its head commit65bae46.Changes
feat: migrate to DogeOS reth/revm forks for Tsuki hardforkreth-*,reth-scroll-*,scroll-alloy-*crates atDogeOS69/dogeos-rethrev65bae46(reth 1.11.1 base).revm/op-revmtoscroll-tech/revmbranchfeat/v103(the revm version dogeos-reth builds against);revm-scrollresolves toDogeOS69/dogeos-revmtagtsuki-v0.4transitively.anviltest dep toscroll-tech/foundry(feat/bump-dependencies) and add thesolarcrates.io patches it needs; both pinned to full revs.rust-versionand both Dockerfiles to 1.91; adopt resolver 3 so dependency selection stays MSRV-aware (avoidsinturn/vergenversions requiring Rust 1.95).reth-tasks/test-utilsto the node, chain-orchestrator, and watcher test-utils features; excludeCargo.tomlfrom dprint.feat: adapt source and tests to reth 1.11.1 API changesspawn/spawn_criticalhelpers. pprof stays critical (spawn_critical_task);db_maintenanceandscroll_network_managerusespawn_taskto preserve their original non-critical behavior — a blanket rename tospawn_critical_taskwould tear the node down if e.g. the network manager returns benignly.RpcHandleProvider::rpc_handle_mut.TaskManager→TaskExecutorin the test harness, built withTaskExecutor::test()(lightweight 2-thread pools) rather than::default(), which would allocate full CPU-sized pools per node and blow up thread counts on high-core CI under--all-features.transfer_tx_nonce_bytes→transfer_tx_bytes_with_nonce; sequencersetup()2-tuple return.anvil_state.jsonfor the newer anvil serialization (addsgas_refund_counter).max_account_slots: 16_384(lets a single wallet queue many txs), duplicate-tx tolerance, deterministicblock_sequencedwait replacing a flakysleep, integration timeouts raised 60s→120s, and nextest run with--test-threads 4. The timeout/thread changes accommodate the heavier stack — they are not masking a regression.Notes
revm/op-revmstay on thescroll-tech/revm feat/v103branch (not a pinned rev) because dogeos-reth references revm via the same branch spec internally and cargo only unifies exactly-matching git sources — arev=would split revm into two copies.dogeos-revm tsuki-v0.4only provides therevm-scrollcrate, so "no Scroll revm at all" would need upstream work.Validation
cargo check --locked --bin rollup-node✅cargo check --all-features --workspace --locked --tests✅cargo nextest run --all-features --workspace --locked -E 'kind(test) and not test(docker)' --test-threads 4 -- --skip test_should_consolidate_to_block_15k✅ 61 passed, 5 skippeddocker buildx build --platform linux/amd64 --load .✅ builds;docker run … --help✅Related
🤖 Generated with Claude Code