-
Notifications
You must be signed in to change notification settings - Fork 2
Public proof agg #116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Public proof agg #116
Changes from all commits
e2ab626
52eef4c
67e9aca
4ef3f49
fd73fb0
c6fadf8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,113 @@ | ||
| --- | ||
| name: Chain Exercise Suite | ||
|
|
||
| # Runs `quantus exercise` against a freshly built fast-governance dev node. | ||
| # Nightly + manual for now: building the node from the chain repo dominates | ||
| # the runtime, and QPoW block times make a full run take tens of minutes. | ||
| on: | ||
| schedule: | ||
| - cron: "0 2 * * *" # nightly at 02:00 UTC | ||
| workflow_dispatch: | ||
| inputs: | ||
| chain_ref: | ||
| description: "Git ref of Quantus-Network/chain to build the node from" | ||
| required: false | ||
| default: "main" | ||
| fuzz_iterations: | ||
| description: "Number of seeded fuzz iterations" | ||
| required: false | ||
| default: "25" | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| env: | ||
| CARGO_INCREMENTAL: 0 | ||
| CARGO_TERM_COLOR: always | ||
| CARGO_NET_RETRY: 10 | ||
| CARGO_NET_TIMEOUT: 60 | ||
|
|
||
| jobs: | ||
| exercise: | ||
| name: 🏋️ Exercise Suite (fast-governance dev node) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 180 | ||
| steps: | ||
| - name: Checkout quantus-cli | ||
| uses: actions/checkout@v5 | ||
|
|
||
| - name: Checkout chain | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| repository: Quantus-Network/chain | ||
| ref: ${{ github.event.inputs.chain_ref || 'main' }} | ||
| path: chain | ||
|
|
||
| - uses: ./.github/actions/ubuntu | ||
|
|
||
| - name: Cache cargo registry & CLI target | ||
| uses: actions/cache@v5 | ||
| with: | ||
| path: | | ||
| ~/.cargo/registry | ||
| ~/.cargo/git | ||
| target | ||
| key: ${{ runner.os }}-cargo-exercise-cli-${{ hashFiles('Cargo.lock', 'rust-toolchain.toml') }} | ||
| restore-keys: | | ||
| ${{ runner.os }}-cargo-exercise-cli- | ||
|
|
||
| - name: Cache chain target | ||
| uses: actions/cache@v5 | ||
| with: | ||
| path: chain/target | ||
| key: ${{ runner.os }}-cargo-exercise-node-${{ hashFiles('chain/Cargo.lock') }} | ||
| restore-keys: | | ||
| ${{ runner.os }}-cargo-exercise-node- | ||
|
|
||
| - name: Build quantus-node (fast-governance) | ||
| working-directory: chain | ||
| run: cargo build --release -p quantus-node --features quantus-runtime/fast-governance | ||
|
|
||
| - name: Build quantus-cli | ||
| run: SKIP_CIRCUIT_BUILD=1 cargo build --release --locked | ||
|
|
||
| - name: Start dev node | ||
| run: | | ||
| nohup chain/target/release/quantus-node --dev \ | ||
| --base-path /tmp/quantus-exercise-dev \ | ||
| > /tmp/quantus-node.log 2>&1 & | ||
| echo "NODE_PID=$!" >> "$GITHUB_ENV" | ||
| # Wait for RPC to answer (mining warm-up can take a while). | ||
| for i in $(seq 1 60); do | ||
| if curl -sf -H 'Content-Type: application/json' \ | ||
| -d '{"jsonrpc":"2.0","id":1,"method":"system_health","params":[]}' \ | ||
| http://127.0.0.1:9944 > /dev/null; then | ||
| echo "RPC up after ${i}s" | ||
| exit 0 | ||
| fi | ||
| sleep 1 | ||
| done | ||
| echo "node RPC never came up" >&2 | ||
| tail -50 /tmp/quantus-node.log >&2 | ||
| exit 1 | ||
|
|
||
| - name: Run exercise suite | ||
| run: | | ||
| ./target/release/quantus exercise \ | ||
| --json \ | ||
| --fuzz-iterations "${{ github.event.inputs.fuzz_iterations || '25' }}" \ | ||
| | tee exercise-report.txt | ||
|
|
||
| - name: Upload report and node log | ||
| if: always() | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: exercise-report | ||
| path: | | ||
| exercise-report.txt | ||
| /tmp/quantus-node.log | ||
| if-no-files-found: ignore | ||
|
|
||
| - name: Stop dev node | ||
| if: always() | ||
| run: kill "$NODE_PID" 2>/dev/null || true | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -121,3 +121,13 @@ opt-level = 3 | |
|
|
||
| [profile.release.build-override] | ||
| opt-level = 3 | ||
|
|
||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. CLI version not bumpedMedium Severity The crate version stays at Additional Locations (2)Triggered by learned rule: Bump CLI version when proof system parameters or circuit crate versions change Reviewed by Cursor Bugbot for commit c6fadf8. Configure here. |
||
| # TEMPORARY: local circuits repo until the private/public batch rename ships as 3.1.0. | ||
| [patch.crates-io] | ||
| qp-wormhole-aggregator = { path = "../qp-zk-circuits/wormhole/aggregator" } | ||
| qp-wormhole-circuit = { path = "../qp-zk-circuits/wormhole/circuit" } | ||
| qp-wormhole-circuit-builder = { path = "../qp-zk-circuits/wormhole/circuit-builder" } | ||
| qp-wormhole-inputs = { path = "../qp-zk-circuits/wormhole/inputs" } | ||
| qp-wormhole-prover = { path = "../qp-zk-circuits/wormhole/prover" } | ||
| qp-wormhole-verifier = { path = "../qp-zk-circuits/wormhole/verifier" } | ||
| qp-zk-circuits-common = { path = "../qp-zk-circuits/common" } | ||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exercise CI missing circuits checkout
High Severity
The new Chain Exercise workflow checks out only
quantus-cliandchain, then runscargo build --release --locked. The same commit adds[patch.crates-io]entries pointing at../qp-zk-circuits/..., which is not present on the runner, so dependency resolution fails before the suite can run.Additional Locations (1)
Cargo.toml#L124-L133Reviewed by Cursor Bugbot for commit c6fadf8. Configure here.