Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
39a3ba5
wip
veljkovranic Mar 17, 2026
51be750
still wip
veljkovranic Mar 18, 2026
2751a84
wip
veljkovranic Mar 18, 2026
a333cc5
native consumed
veljkovranic Mar 19, 2026
9b768d5
wip
veljkovranic Mar 19, 2026
783b284
wip
veljkovranic Mar 20, 2026
65bfa9e
wip
veljkovranic Mar 20, 2026
cbdba18
wip
veljkovranic Mar 23, 2026
c149cb0
processed transcript
veljkovranic Mar 25, 2026
5c7e412
hints parsed
veljkovranic Mar 26, 2026
3b4d4e9
wip
veljkovranic Mar 27, 2026
59c8792
merkle full
veljkovranic Mar 30, 2026
bb22008
add matrix to circuit
veljkovranic Mar 30, 2026
678db1a
pow not working
veljkovranic Mar 31, 2026
4d01260
pow
veljkovranic Mar 31, 2026
9a04c6f
final checks in place
veljkovranic Mar 31, 2026
c972df7
cleanup
veljkovranic Apr 1, 2026
6829c07
verify claims refactor
veljkovranic Apr 1, 2026
392fb43
claims check
veljkovranic Apr 1, 2026
aaee25c
cleanup
veljkovranic Apr 2, 2026
27ae025
nicer merkle trees
veljkovranic Apr 2, 2026
2003984
minor refactors
veljkovranic Apr 2, 2026
fcdb607
cleanup
veljkovranic Apr 2, 2026
8badb7b
Merge branch 'main' into recursive_verifier_updates
veljkovranic Apr 2, 2026
486ce3a
towards zkwhir3
veljkovranic Apr 3, 2026
d3c69cf
zkwhir3 adaptation
veljkovranic Apr 6, 2026
3009956
CI fixes
veljkovranic Apr 7, 2026
65a67ce
merge
veljkovranic Apr 8, 2026
d4df974
go cli
veljkovranic Apr 8, 2026
010c871
go cli
veljkovranic Apr 8, 2026
24367dc
Merge branch 'main' into recursive_verifier_updates
veljkovranic Apr 8, 2026
0c243cc
ntt
veljkovranic Apr 8, 2026
116c767
fmt
veljkovranic Apr 8, 2026
2a608d5
re enable e2e CI job
veljkovranic Apr 9, 2026
9180c82
Merge branch 'main' into recursive_verifier_updates
veljkovranic Apr 9, 2026
b5a3029
Update Cargo.toml
veljkovranic Apr 9, 2026
566aa1e
remove duplicate generator
veljkovranic Apr 9, 2026
f15dede
fix bit reordering bug
veljkovranic Apr 16, 2026
ed5852e
merge main
veljkovranic May 5, 2026
ebf6cd3
public hash is the only public value
veljkovranic May 5, 2026
98cc5cf
missing check in circuit
veljkovranic May 6, 2026
cce2d1e
Merge commit 'cc391c8cc72766cc47f8243402e7f51e16c6d7cd' into pr351-fix
veljkovranic May 11, 2026
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
107 changes: 70 additions & 37 deletions .github/workflows/end-to-end.yml.disabled
Original file line number Diff line number Diff line change
Expand Up @@ -100,40 +100,73 @@ jobs:
cargo run --release --bin provekit-cli generate-gnark-inputs \
./benchmark-inputs/t_attest-verifier.pkv \
./benchmark-inputs/t_attest-proof.np


# 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


# Cache the Groth16 PK/VK for the recursive verifier across runs.
# The keys depend on the recursive-verifier source (which determines the
# circuit shape) and the t_attest R1CS inputs. Bumping any of those
# invalidates the cache and the keys are regenerated on the next run.
- name: Cache Groth16 PK/VK
id: cache-gnark-keys
uses: actions/cache@v4
with:
path: recursive-verifier/.gnark-keys
key: gnark-keys-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('recursive-verifier/**/*.go', 'recursive-verifier/go.sum', 'noir-examples/noir-passport/merkle_age_check/r1cs.json', 'noir-examples/noir-passport/merkle_age_check/params_for_recursive_verifier') }}

- name: Resolve cached PK/VK paths
id: gnark-keys
working-directory: recursive-verifier
run: |
mkdir -p .gnark-keys
pk_file="$(ls -1 .gnark-keys/pk_*.bin 2>/dev/null | head -n1 || true)"
vk_file="$(ls -1 .gnark-keys/vk_*.bin 2>/dev/null | head -n1 || true)"
if [ -n "$pk_file" ] && [ -n "$vk_file" ]; then
echo "pk_arg=--pk $pk_file" >> "$GITHUB_OUTPUT"
echo "vk_arg=--vk $vk_file" >> "$GITHUB_OUTPUT"
echo "Reusing cached PK ($pk_file) and VK ($vk_file)"
else
echo "pk_arg=" >> "$GITHUB_OUTPUT"
echo "vk_arg=" >> "$GITHUB_OUTPUT"
echo "No cached PK/VK found, will generate and save new ones"
fi

- 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. On a cache miss, --saveKeys writes PK/VK to
# .gnark-keys so the post-job cache step persists them for next run.
./gnark-verifier \
--config "../noir-examples/noir-passport/merkle_age_check/params_for_recursive_verifier" \
--r1cs "../noir-examples/noir-passport/merkle_age_check/r1cs.json" \
--saveKeys .gnark-keys \
${{ steps.gnark-keys.outputs.pk_arg }} \
${{ steps.gnark-keys.outputs.vk_arg }}

# Stop monitoring
kill $MONITOR_PID
Loading
Loading