diff --git a/crates/node/src/add_ons/remote_block_source.rs b/crates/node/src/add_ons/remote_block_source.rs index a6adbfe0..e76eb03f 100644 --- a/crates/node/src/add_ons/remote_block_source.rs +++ b/crates/node/src/add_ons/remote_block_source.rs @@ -190,6 +190,11 @@ where continue; } + if !self.config.build { + tracing::debug!(target: "scroll::remote_source", "Imported block is valid, but build is disabled, skipping build"); + continue; + } + // Trigger block building on top of the imported block self.orchestrator_handle.build_block(); diff --git a/crates/node/src/args.rs b/crates/node/src/args.rs index 62483907..77aca190 100644 --- a/crates/node/src/args.rs +++ b/crates/node/src/args.rs @@ -976,6 +976,10 @@ pub struct RemoteBlockSourceArgs { value_name = "POLL_INTERVAL_MS" )] pub poll_interval_ms: u64, + + /// Whether to build blocks using the remote source. + #[arg(long = "remote-source.build")] + pub build: bool, } /// Returns the total difficulty constant for the given chain. @@ -1097,6 +1101,7 @@ mod tests { enabled: true, url: None, poll_interval_ms: 100, + build: false, }, require_l1_data_fee_buffer: false, }; diff --git a/crates/node/src/test_utils/fixture.rs b/crates/node/src/test_utils/fixture.rs index 58d2eb4c..ea7f1abe 100644 --- a/crates/node/src/test_utils/fixture.rs +++ b/crates/node/src/test_utils/fixture.rs @@ -726,6 +726,7 @@ impl TestFixtureBuilder { let mut remote_config = self.config.clone(); remote_config.sequencer_args.sequencer_enabled = true; // needs to build blocks remote_config.sequencer_args.auto_start = false; + remote_config.remote_block_source_args.build = true; remote_config.remote_block_source_args.enabled = true; remote_config.remote_block_source_args.url = Some(sequencer_url); // Use a fast poll interval for tests diff --git a/crates/node/src/test_utils/reboot.rs b/crates/node/src/test_utils/reboot.rs index cb9591aa..5f472322 100644 --- a/crates/node/src/test_utils/reboot.rs +++ b/crates/node/src/test_utils/reboot.rs @@ -112,6 +112,7 @@ impl TestFixture { let mut remote_config = self.config.clone(); remote_config.sequencer_args.sequencer_enabled = true; remote_config.sequencer_args.auto_start = false; + remote_config.remote_block_source_args.build = true; remote_config.remote_block_source_args.enabled = true; remote_config.remote_block_source_args.url = Some(sequencer_url); remote_config.remote_block_source_args.poll_interval_ms = 100; diff --git a/tests/launch_rollup_node_remote_source.bash b/tests/launch_rollup_node_remote_source.bash index df2ede66..4ecda31d 100755 --- a/tests/launch_rollup_node_remote_source.bash +++ b/tests/launch_rollup_node_remote_source.bash @@ -30,5 +30,6 @@ exec rollup-node node --chain /l2reth/l2reth-genesis-e2e.json --datadir=/l2reth --remote-source.enabled \ --remote-source.url http://rollup-node-sequencer:8545 \ --remote-source.poll-interval-ms 100 \ + --remote-source.build \ --l1.url http://l1-node:8545 \ --blob.mock