Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,9 @@ rustflags = ["-C", "target-feature=+simd128,+relaxed-simd"]
[target.wasm32-wasip1]
runner = "wasmtime run --dir . "
rustflags = ["-C", "target-feature=+simd128,+relaxed-simd"]

# LLVM miscompilation workaround for Linux aarch64.
# Bug requires: opt-level=3 + codegen-units=1 + 256-bit field arithmetic + generics
# See: https://github.com/worldfnd/provekit/issues/304
[target.aarch64-unknown-linux-gnu]
rustflags = ["-C", "opt-level=2"]
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Setup Rust toolchain, cache and cargo-codspeed binary
uses: moonrepo/setup-rust@v1
with:
channel: nightly-2025-04-05
channel: nightly-2025-10-20
cache-base: main
cache-target: release
bins: cargo-codspeed
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
- name: Setup rust toolchain, cache and cargo-codspeed binary
uses: moonrepo/setup-rust@v1
with:
channel: nightly-2025-04-05
channel: nightly-2025-10-20
cache: false # We don't actually use any build files, no need to restore cache
bins: cargo-codspeed

Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ jobs:
build_and_test:
name: Build and test
runs-on: ubuntu-24.04-arm
env:
# Overrides .cargo/config.toml [target.aarch64-unknown-linux-gnu].rustflags
# entirely (Cargo treats RUSTFLAGS env and config rustflags as mutually
# exclusive). Safe: this job does debug builds only (opt-level=0).
# Do NOT add --release without addressing this interaction. See #304.
RUSTFLAGS: "-C debug-assertions=yes"
steps:
- uses: actions/checkout@v4
- name: Setup rust toolchain, cache and bins
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/circuit_keys.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Setup Rust toolchain, cache and bins
uses: moonrepo/setup-rust@v1
with:
channel: nightly-2025-04-05
channel: nightly-2025-10-20
cache-base: main
components: rustfmt, clippy

Expand Down
82 changes: 46 additions & 36 deletions .github/workflows/end-to-end.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@ jobs:
- name: Setup Rust toolchain, cache and bins
uses: moonrepo/setup-rust@v1
with:
channel: nightly-2025-04-05
channel: nightly-2025-10-20
cache-base: main
components: rustfmt, clippy

- name: Clean stale artifacts
run: cargo clean
- name: Build all Rust targets
run: cargo build --all-targets --all-features --verbose
run: cargo build --all-targets --all-features --release --verbose

- uses: noir-lang/noirup@v0.1.2
with:
Expand All @@ -52,6 +54,12 @@ jobs:
echo "Compiled $circuit"
done

- name: Clean stale benchmark artifacts
working-directory: noir-examples/noir-passport/merkle_age_check
run: |
rm -f ./benchmark-inputs/*.pkp ./benchmark-inputs/*.pkv ./benchmark-inputs/*.np
echo "Cleaned stale benchmark artifacts"

- name: Prepare circuits
working-directory: noir-examples/noir-passport/merkle_age_check
run: |
Expand Down Expand Up @@ -93,37 +101,39 @@ jobs:
./benchmark-inputs/t_attest-prover.pkp \
./benchmark-inputs/t_attest-proof.np

- name: Run Gnark verifier
working-directory: recursive-verifier
run: |
go build -o gnark-verifier cmd/cli/main.go

# Set up cleanup trap
cleanup() {
if [ ! -z "$MONITOR_PID" ]; then
kill $MONITOR_PID 2>/dev/null || true
fi
}
trap cleanup EXIT

# Start monitoring in background
(
while true; do
echo "=== $(date) ==="
echo "Memory:"
free -h
echo "Disk:"
df -h
echo "Processes:"
ps aux --sort=-%mem | head -5
echo "=================="
sleep 10 # Check every 10 seconds
done
) &
MONITOR_PID=$!

# Run the main process
./gnark-verifier --config "../noir-examples/noir-passport/merkle_age_check/params_for_recursive_verifier" --r1cs "../noir-examples/noir-passport/merkle_age_check/r1cs.json"

# Stop monitoring
kill $MONITOR_PID

# Disabled gnark, check https://github.com/worldfnd/provekit/issues/302
# - name: Run Gnark verifier
# working-directory: recursive-verifier
# run: |
# go build -o gnark-verifier cmd/cli/main.go

# # Set up cleanup trap
# cleanup() {
# if [ ! -z "$MONITOR_PID" ]; then
# kill $MONITOR_PID 2>/dev/null || true
# fi
# }
# trap cleanup EXIT

# # Start monitoring in background
# (
# while true; do
# echo "=== $(date) ==="
# echo "Memory:"
# free -h
# echo "Disk:"
# df -h
# echo "Processes:"
# ps aux --sort=-%mem | head -5
# echo "=================="
# sleep 10 # Check every 10 seconds
# done
# ) &
# MONITOR_PID=$!

# # Run the main process
# ./gnark-verifier --config "../noir-examples/noir-passport/merkle_age_check/params_for_recursive_verifier" --r1cs "../noir-examples/noir-passport/merkle_age_check/r1cs.json"

# # Stop monitoring
# kill $MONITOR_PID
2 changes: 1 addition & 1 deletion provekit/common/src/whir_r1cs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,6 @@ pub struct WhirR1CSProof {
/// Transcript interaction pattern for debug-mode validation.
/// Populated by the prover; absent from serialized proofs on disk.
#[cfg(debug_assertions)]
#[serde(default, skip_serializing)]
#[serde(skip)]
pub pattern: Vec<Interaction>,
}
Loading