2023-12-15 17:38:07 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
source ./paths.sh
|
|
|
|
|
source ./cli_args.sh
|
|
|
|
|
|
|
|
|
|
# --- setup build directory ---
|
|
|
|
|
|
|
|
|
|
mkdir -p build
|
|
|
|
|
cd build
|
|
|
|
|
|
|
|
|
|
# --- generate the main component ---
|
|
|
|
|
|
|
|
|
|
${NIMCLI_DIR}/cli $CLI_ARGS -v --circom=${CIRCUIT_MAIN}.circom
|
|
|
|
|
|
|
|
|
|
# --- compile the circuit ---
|
|
|
|
|
|
2023-12-18 14:31:13 +01:00
|
|
|
time circom --r1cs --wasm --O2 -l${CIRCUIT_DIR} ${CIRCUIT_MAIN}.circom
|
2023-12-15 17:38:07 +01:00
|
|
|
|
|
|
|
|
# --- circuit specific setup ---
|
|
|
|
|
|
2023-12-18 14:31:13 +01:00
|
|
|
start=`date +%s`
|
2023-12-15 17:38:07 +01:00
|
|
|
|
2023-12-18 14:31:13 +01:00
|
|
|
NODE_OPTIONS="--max-old-space-size=8192" snarkjs groth16 setup ${CIRCUIT_MAIN}.r1cs $PTAU_PATH ${CIRCUIT_MAIN}_0000.zkey
|
2023-12-15 17:38:07 +01:00
|
|
|
echo "some_entropy_75289v3b7rcawcsyiur" | \
|
2023-12-18 14:31:13 +01:00
|
|
|
NODE_OPTIONS="--max-old-space-size=8192" snarkjs zkey contribute ${CIRCUIT_MAIN}_0000.zkey ${CIRCUIT_MAIN}_0001.zkey --name="1st Contributor Name"
|
2023-12-15 17:38:07 +01:00
|
|
|
|
|
|
|
|
rm ${CIRCUIT_MAIN}_0000.zkey
|
|
|
|
|
mv ${CIRCUIT_MAIN}_0001.zkey ${CIRCUIT_MAIN}.zkey
|
|
|
|
|
snarkjs zkey export verificationkey ${CIRCUIT_MAIN}.zkey ${CIRCUIT_MAIN}_verification_key.json
|
|
|
|
|
|
2023-12-18 14:31:13 +01:00
|
|
|
end=`date +%s`
|
|
|
|
|
echo "The circuit specific setup took `expr $end - $start` seconds."
|
|
|
|
|
|
2023-12-15 17:38:07 +01:00
|
|
|
# --- finish the setup ---
|
|
|
|
|
|
|
|
|
|
cd $ORIG
|