# Runs an ethereum mainnet sync test. name: eth-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: sync / 100k 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 reth run: | cargo install --features asm-keccak,jemalloc --path bin/reth - name: Run sync run: | reth node \ --debug.tip 0x91c90676cab257a59cd956d7cb0bceb9b1a71d79755c23c7277a0697ccfaf8c4 \ --debug.max-block 100000 \ --debug.terminate - name: Verify the target block hash run: | reth db get static-file headers 100000 \ | grep 0x91c90676cab257a59cd956d7cb0bceb9b1a71d79755c23c7277a0697ccfaf8c4 - name: Run stage unwind for 100 blocks run: | reth stage unwind num-blocks 100 - name: Run stage unwind to block hash run: | reth stage unwind to-block 0x52e0509d33a988ef807058e2980099ee3070187f7333aae12b64d4d675f34c5a