feat: workflow to sync 10k blocks #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Runs sync tests. | |
# This workflow is modified from Reth: https://github.com/paradigmxyz/reth/blob/main/.github/workflows/sync.yml | |
name: sync test | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * 1' | |
push: | |
tags: | |
- v* | |
pull_request: | |
env: | |
CARGO_TERM_COLOR: always | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
sync: | |
name: sync (${{ matrix.chain.bin }}) | |
runs-on: ubuntu-22.04-32core | |
env: | |
RUST_LOG: info,sync=error | |
RUST_BACKTRACE: 1 | |
timeout-minutes: 60 | |
strategy: | |
matrix: | |
chain: | |
- build: install | |
bin: world-chain-builder | |
features: jemalloc | |
chain: base | |
tip: "0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7" | |
block: 10000 | |
unwind-target: "0x118a6e922a8c6cab221fc5adfe5056d2b72d58c6580e9c5629de55299e2cf8de" | |
# TODO: Add World Chain Mainnet | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: taiki-e/install-action@just | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- name: Build ${{ matrix.chain.bin }} | |
run: just ${{ matrix.chain.build }} --features ${{ matrix.chain.features }} | |
- name: Run sync | |
run: | | |
~/.cargo/bin/${{ matrix.chain.bin }} node \ | |
--chain ${{ matrix.chain.chain }} \ | |
--debug.tip ${{ matrix.chain.tip }} \ | |
--debug.max-block ${{ matrix.chain.block }} \ | |
--debug.terminate \ | |
--builder.pbh_entrypoint 0x7a2088a1bFc9d81c55368AE168C2C02570cB814F \ | |
--builder.signature_aggregator 0x09635F643e140090A9A8Dcd712eD6285858ceBef | |
- name: Verify the target block hash | |
run: | | |
${{ matrix.chain.bin }} db --chain ${{ matrix.chain.chain }} get static-file headers ${{ matrix.chain.block }} \ | |
| grep ${{ matrix.chain.tip }} | |
- name: Run stage unwind for 100 blocks | |
run: | | |
${{ matrix.chain.bin }} stage --chain ${{ matrix.chain.chain }} unwind num-blocks 100 | |
- name: Run stage unwind to block hash | |
run: | | |
${{ matrix.chain.bin }} stage --chain ${{ matrix.chain.chain }} unwind to-block ${{ matrix.chain.unwind-target }} |