# Runs a base mainnet sync test. name: op-sync-test on: pull_request: merge_group: push: branches: [ main ] env: CARGO_TERM_COLOR: always concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: sync: name: op sync / 10k blocks # Only run sync tests in merge groups if: github.event_name == 'merge_group' runs-on: group: Reth env: RUST_LOG: info,sync=error RUST_BACKTRACE: 1 timeout-minutes: 60 steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Build op-reth run: | cargo install --features asm-keccak,jemalloc,optimism --bin op-reth --path bin/reth - name: Run sync # https://basescan.org/block/10000 run: | op-reth node \ --chain base \ --debug.tip 0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7 \ --debug.max-block 10000 \ --debug.terminate - name: Verify the target block hash run: | op-reth db --chain base get static-file headers 10000 \ | grep 0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7 - name: Run stage unwind for 100 blocks run: | op-reth stage --chain base unwind num-blocks 100 - name: Run stage unwind to block hash run: | op-reth stage --chain base unwind to-block 0x118a6e922a8c6cab221fc5adfe5056d2b72d58c6580e9c5629de55299e2cf8de