go-circom-prover-verifier/testdata/compile-circuits.sh
testdata/compile-circuits.shRaw
1#!/bin/sh
2
3npm install
4
5compile_and_ts_and_witness() {
6 echo $(date +"%T") "circom circuit.circom --r1cs --wasm --sym"
7 itime="$(date -u +%s)"
8 ../node_modules/.bin/circom circuit.circom --r1cs --wasm --sym
9 ftime="$(date -u +%s)"
10 echo " ($(($(date -u +%s)-$itime))s)"
11
12 echo $(date +"%T") "snarkjs info -r circuit.r1cs"
13 ../node_modules/.bin/snarkjs info -r circuit.r1cs
14
15 echo $(date +"%T") "snarkjs setup"
16 itime="$(date -u +%s)"
17 ../node_modules/.bin/snarkjs setup
18 echo " ($(($(date -u +%s)-$itime))s)"
19 echo $(date +"%T") "trusted setup generated"
20
21 sed -i 's/null/["0","0","0"]/g' proving_key.json
22
23 echo "calculating witness"
24 ../node_modules/.bin/snarkjs calculatewitness --wasm circuit.wasm --input inputs.json --witness witness.json
25
26 echo $(date +"%T") "snarkjs generateverifier"
27 itime="$(date -u +%s)"
28 ../node_modules/.bin/snarkjs generateverifier
29 echo " ($(($(date -u +%s)-$itime))s)"
30 echo $(date +"%T") "generateverifier generated"
31}
32
33echo "compile & trustesetup for circuit1k"
34cd circuit1k
35compile_and_ts_and_witness
36echo "compile & trustesetup for circuit5k"
37cd ../circuit5k
38compile_and_ts_and_witness
39# echo "compile & trustesetup for circuit10k"
40# cd ../circuit10k
41# compile_and_ts_and_witness
42# echo "compile & trustesetup for circuit20k"
43# cd ../circuit20k
44# compile_and_ts_and_witness
45
46cd ../
47
48echo "convert witness & pk of circuit1k to bin & go bin"
49node node_modules/wasmsnark/tools/buildwitness.js -i circuit1k/witness.json -o circuit1k/witness.bin
50node node_modules/wasmsnark/tools/buildpkey.js -i circuit1k/proving_key.json -o circuit1k/proving_key.bin
51go run ../cli/cli.go -convert -pk circuit1k/proving_key.json -pkbin circuit1k/proving_key.go.bin
52
53echo "convert witness & pk of circuit5k to bin & go bin"
54node node_modules/wasmsnark/tools/buildwitness.js -i circuit5k/witness.json -o circuit5k/witness.bin
55node node_modules/wasmsnark/tools/buildpkey.js -i circuit5k/proving_key.json -o circuit5k/proving_key.bin
56go run ../cli/cli.go -convert -pk circuit5k/proving_key.json -pkbin circuit5k/proving_key.go.bin
57
58# echo "convert witness & pk of circuit10k to bin & go bin"
59# node node_modules/wasmsnark/tools/buildwitness.js -i circuit10k/witness.json -o circuit10k/witness.bin
60# node node_modules/wasmsnark/tools/buildpkey.js -i circuit10k/proving_key.json -o circuit10k/proving_key.bin
61# go run ../cli/cli.go -convert -pk circuit10k/proving_key.json -pkbin circuit10k/proving_key.go.bin
62#
63# echo "convert witness & pk of circuit20k to bin & go bin"
64# node node_modules/wasmsnark/tools/buildwitness.js -i circuit20k/witness.json -o circuit20k/witness.bin
65# node node_modules/wasmsnark/tools/buildpkey.js -i circuit20k/proving_key.json -o circuit20k/proving_key.bin
66# go run ../cli/cli.go -convert -pk circuit20k/proving_key.json -pkbin circuit20k/proving_key.go.bin
67