mirror of
https://github.com/yi-sun/zk-attestor.git
synced 2026-01-09 05:28:03 -05:00
73 lines
2.8 KiB
Bash
Executable File
73 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
PHASE1=circuits/pot24_final.ptau
|
|
BUILD_DIR=build
|
|
CIRCUIT_NAME=test
|
|
|
|
if [ -f "$PHASE1" ]; then
|
|
echo "Found Phase 1 ptau file"
|
|
else
|
|
echo "No Phase 1 ptau file found. Exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$BUILD_DIR" ]; then
|
|
echo "No build directory found. Creating build directory..."
|
|
mkdir "$BUILD_DIR"
|
|
fi
|
|
|
|
echo $PWD
|
|
|
|
echo "****COMPILING CIRCUIT****"
|
|
start=`date +%s`
|
|
#circom circuits/"$CIRCUIT_NAME".circom --wasm --output "$BUILD_DIR"
|
|
circom circuits/"$CIRCUIT_NAME".circom --r1cs --wasm --sym --c --wat --output "$BUILD_DIR"
|
|
#circom test/circuits/"$CIRCUIT_NAME".circom --r1cs --wasm --sym --c --wat --output "$BUILD_DIR"
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|
|
|
|
echo "****GENERATING WITNESS FOR SAMPLE INPUT****"
|
|
start=`date +%s`
|
|
node "$BUILD_DIR"/"$CIRCUIT_NAME"_js/generate_witness.js "$BUILD_DIR"/"$CIRCUIT_NAME"_js/"$CIRCUIT_NAME".wasm test/input_branch.json "$BUILD_DIR"/witness.wtns
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|
|
|
|
echo "****GENERATING ZKEY 0****"
|
|
start=`date +%s`
|
|
NODE_OPTIONS="--max-old-space-size=56000" npx snarkjs groth16 setup "$BUILD_DIR"/"$CIRCUIT_NAME".r1cs "$PHASE1" "$BUILD_DIR"/"$CIRCUIT_NAME"_0.zkey
|
|
#NODE_OPTIONS="--max-old-space-size=56000" npx snarkjs plonk setup -verbose "$BUILD_DIR"/"$CIRCUIT_NAME".r1cs "$PHASE1" "$BUILD_DIR"/"$CIRCUIT_NAME".zkey
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|
|
|
|
echo "****GENERATING FINAL ZKEY****"
|
|
start=`date +%s`
|
|
NODE_OPTIONS="--max-old-space-size=56000" npx snarkjs zkey beacon "$BUILD_DIR"/"$CIRCUIT_NAME"_0.zkey "$BUILD_DIR"/"$CIRCUIT_NAME".zkey 0102030405060708090a0b0c0d0e0f101112231415161718221a1b1c1d1e1f 10 -n="Final Beacon phase2"
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|
|
|
|
echo "****VERIFYING FINAL ZKEY****"
|
|
start=`date +%s`
|
|
#NODE_OPTIONS="--max-old-space-size=56000" npx snarkjs zkey verify -verbose "$BUILD_DIR"/"$CIRCUIT_NAME".r1cs "$PHASE1" "$BUILD_DIR"/"$CIRCUIT_NAME".zkey
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|
|
|
|
echo "****EXPORTING VKEY****"
|
|
start=`date +%s`
|
|
npx snarkjs zkey export verificationkey "$BUILD_DIR"/"$CIRCUIT_NAME".zkey "$BUILD_DIR"/vkey.json
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|
|
|
|
echo "****GENERATING PROOF FOR SAMPLE INPUT****"
|
|
start=`date +%s`
|
|
npx snarkjs groth16 prove "$BUILD_DIR"/"$CIRCUIT_NAME".zkey "$BUILD_DIR"/witness.wtns "$BUILD_DIR"/proof.json "$BUILD_DIR"/public.json
|
|
#npx snarkjs plonk prove "$BUILD_DIR"/"$CIRCUIT_NAME".zkey "$BUILD_DIR"/witness.wtns "$BUILD_DIR"/proof.json "$BUILD_DIR"/public.json
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|
|
|
|
echo "****VERIFYING PROOF FOR SAMPLE INPUT****"
|
|
start=`date +%s`
|
|
npx snarkjs groth16 verify "$BUILD_DIR"/vkey.json "$BUILD_DIR"/public.json "$BUILD_DIR"/proof.json
|
|
#npx snarkjs plonk verify "$BUILD_DIR"/vkey.json "$BUILD_DIR"/public.json "$BUILD_DIR"/proof.json
|
|
end=`date +%s`
|
|
echo "DONE ($((end-start))s)"
|