Skip to content

Commit a40f494

Browse files
authored
test: add L1 consolidation test (#193)
* test: add L1 consolidation test * feat: add sync-at-startup CLI arg * fix: lints * test: switch toolchain to stable * fix: remove serde feature
1 parent ef66f41 commit a40f494

File tree

3 files changed

+42
-3
lines changed

3 files changed

+42
-3
lines changed

.github/workflows/test.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,39 @@ jobs:
5252
5353
- name: Run integration tests
5454
run: cargo nextest run --all-features --workspace --locked --no-tests=pass -E 'kind(test)'
55+
56+
sync:
57+
runs-on: ubuntu-latest
58+
timeout-minutes: 15
59+
env:
60+
RUST_BACKTRACE: 1
61+
steps:
62+
- uses: actions/checkout@v4
63+
- uses: rui314/setup-mold@v1
64+
- uses: dtolnay/rust-toolchain@stable
65+
- uses: Swatinem/rust-cache@v2
66+
with:
67+
cache-on-failure: true
68+
- uses: foundry-rs/foundry-toolchain@v1
69+
- name: Start rollup node
70+
env:
71+
ALCHEMY_KEY: ${{ secrets.ALCHEMY_KEY }}
72+
run: |
73+
cargo run --bin rollup-node --release -- \
74+
node --chain scroll-sepolia --datadir=./l2reth --disable-discovery \
75+
--http --http.addr=0.0.0.0 --http.port=8545 --http.api eth \
76+
--trusted-peers enode://29cee709c400533ae038a875b9ca975c8abef9eade956dcf3585e940acd5c0ae916968f514bd37d1278775aad1b7db30f7032a70202a87fd7365bd8de3c9f5fc@44.242.39.33:30303 \
77+
--log.stdout.format log-fmt -vvv \
78+
--l1.url "https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_KEY" --l1.cups 500 \
79+
--beacon.url https://eth-beacon-chain.drpc.org/rest/ --beacon.cups 100 --engine.en-sync-trigger 10000000000 \
80+
--engine.sync-at-startup=false --engine.always-process-payload-attributes-on-canonical-head &
81+
- name: Get hash for block 50000
82+
run: |
83+
echo "Waiting for block 50000..."
84+
while ! cast block 50000 --rpc-url http://localhost:8545 2>/dev/null | grep -q hash; do
85+
sleep 10
86+
done
87+
echo "Block 50000 found!"
88+
89+
EXPECTED_HASH="0x8333d8cd1274d49dcf9b130971d1b485a01f2a2604e73ea7caf9d721fbdf5859"
90+
cast block 50000 --rpc-url http://localhost:8545 | grep -q "$EXPECTED_HASH"

crates/node/src/args.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ impl ScrollRollupNodeConfig {
194194
chain_spec.clone(),
195195
Some(l2_provider),
196196
fcs,
197-
!self.test && !chain_spec.is_dev_chain(),
197+
self.engine_driver_args.sync_at_startup && !self.test && !chain_spec.is_dev_chain(),
198198
self.engine_driver_args.en_sync_trigger,
199199
Duration::from_millis(self.sequencer_args.payload_building_duration),
200200
);
@@ -307,6 +307,9 @@ pub struct EngineDriverArgs {
307307
/// at which the engine driver triggers optimistic sync.
308308
#[arg(long = "engine.en-sync-trigger", default_value_t = constants::BLOCK_GAP_TRIGGER)]
309309
pub en_sync_trigger: u64,
310+
/// Whether the engine driver should try to sync at start up.
311+
#[arg(long = "engine.sync-at-startup", num_args=0..=1, default_value_t = true)]
312+
pub sync_at_startup: bool,
310313
}
311314

312315
/// The network arguments.

crates/node/src/test_utils.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ pub fn default_test_scroll_rollup_node_config() -> ScrollRollupNodeConfig {
136136
},
137137
database_args: DatabaseArgs { path: Some(PathBuf::from("sqlite::memory:")) },
138138
l1_provider_args: L1ProviderArgs::default(),
139-
engine_driver_args: EngineDriverArgs { en_sync_trigger: 100 },
139+
engine_driver_args: EngineDriverArgs { en_sync_trigger: 100, sync_at_startup: true },
140140
sequencer_args: SequencerArgs { payload_building_duration: 1000, ..Default::default() },
141141
beacon_provider_args: BeaconProviderArgs::default(),
142142
signer_args: Default::default(),
@@ -153,7 +153,7 @@ pub fn default_sequencer_test_scroll_rollup_node_config() -> ScrollRollupNodeCon
153153
},
154154
database_args: DatabaseArgs { path: Some(PathBuf::from("sqlite::memory:")) },
155155
l1_provider_args: L1ProviderArgs::default(),
156-
engine_driver_args: EngineDriverArgs { en_sync_trigger: 100 },
156+
engine_driver_args: EngineDriverArgs { en_sync_trigger: 100, sync_at_startup: true },
157157
sequencer_args: SequencerArgs {
158158
sequencer_enabled: true,
159159
block_time: 50,

0 commit comments

Comments
 (0)