arnaucube
arnaucube/go-circom-prover-verifierPublic Self-hosted repository
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