Skip to content

Commit 65825bb

Browse files
dghelmclaude
andcommitted
feat: adapt source and tests to reth 1.11.1 API changes
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>
1 parent 287c17f commit 65825bb

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

crates/node/src/args.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ impl ScrollRollupNodeConfig {
281281
// Fetch the database from the hydrated config.
282282
let db = self.database.clone().expect("should hydrate config before build");
283283
let db_maintenance = DatabaseMaintenance::new(db.clone());
284-
ctx.task_executor.spawn_critical_task("db_maintenance", db_maintenance.run());
284+
ctx.task_executor.spawn_task(db_maintenance.run());
285285

286286
// Run the database migrations
287287
if let Some(named) = chain_spec.chain().named() {
@@ -383,8 +383,7 @@ impl ScrollRollupNodeConfig {
383383
td_constant(chain_spec.chain().named()),
384384
authorized_signer,
385385
);
386-
ctx.task_executor
387-
.spawn_critical_task("scroll_network_manager", scroll_network_manager.run());
386+
ctx.task_executor.spawn_task(scroll_network_manager.run());
388387

389388
tracing::info!(target: "scroll::node::args", fcs = ?fcs, payload_building_duration = ?self.sequencer_args.payload_building_duration, "Starting engine driver");
390389
let engine = Engine::new(Arc::new(engine_api), fcs);

crates/node/src/test_utils/mod.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ where
168168
.set_dev(is_dev)
169169
.with_txpool(TxPoolArgs {
170170
no_local_transactions_propagation,
171+
// Raise the per-account slot limit far above the reth default (16) so tests can
172+
// queue many transactions from a single wallet without hitting the pool cap.
171173
max_account_slots: 16_384,
172174
..Default::default()
173175
});
@@ -216,7 +218,12 @@ where
216218

217219
let span = span!(Level::INFO, "node", node_index);
218220
let _enter = span.enter();
219-
let task_executor = TaskExecutor::default();
221+
// Use the lightweight test runtime (2-thread tokio/rayon pools) rather than
222+
// TaskExecutor::default(), which builds full CPU-sized pools per node. setup_engine
223+
// creates one executor per node and the integration suite runs several multi-node
224+
// fixtures in parallel, so default pools would allocate hundreds of threads on
225+
// high-core CI runners.
226+
let task_executor = TaskExecutor::test();
220227
let testing_node = NodeBuilder::new(node_config.clone())
221228
.with_database(db.clone())
222229
.with_launch_context(task_executor.clone());

0 commit comments

Comments
 (0)