Change entropy to be the last command line arg, add test.sh file that demontstrates phase2 usage

This commit is contained in:
poma 2020-01-08 19:41:09 +07:00
parent e8b14ddb00
commit 7dd44484e2
No known key found for this signature in database
GPG Key ID: BA20CB01FE165657
2 changed files with 44 additions and 3 deletions

@ -16,12 +16,12 @@ use std::fs::OpenOptions;
fn main() { fn main() {
let args: Vec<String> = std::env::args().collect(); let args: Vec<String> = std::env::args().collect();
if args.len() != 4 { if args.len() != 4 {
println!("Usage: \n<in_params.params> <in_str_entropy> <out_params.params>"); println!("Usage: \n<in_params.params> <out_params.params> <in_str_entropy>");
std::process::exit(exitcode::USAGE); std::process::exit(exitcode::USAGE);
} }
let in_params_filename = &args[1]; let in_params_filename = &args[1];
let entropy = &args[2]; let out_params_filename = &args[2];
let out_params_filename = &args[3]; let entropy = &args[3];
let disallow_points_at_infinity = false; let disallow_points_at_infinity = false;

41
phase2/test.sh Executable file

@ -0,0 +1,41 @@
#!/bin/sh
rm -f pk.json vk.json transformed_vk.json transformed_pk.* proof.json
set -e
# move results of powers of tau here
cp ../powersoftau/phase1radix* .
# compile circuit
npx circom circuit.circom -o circuit.json && npx snarkjs info -c circuit.json
# npx snarkjs info -c circuit.json
# initialize ceremony
cargo run --release --bin new circuit.json circom1.params
cargo run --release --bin contribute circom1.params circom2.params asdajdzixcjlzxjczxlkcjzxlkcj
cargo run --release --bin verify_contribution circuit.json circom1.params circom2.params
cargo run --release --bin contribute circom2.params circom3.params dsfjkshdfakjhsdf
cargo run --release --bin verify_contribution circuit.json circom2.params circom3.params
cargo run --release --bin contribute circom3.params circom4.params askldfjklasdf
cargo run --release --bin verify_contribution circuit.json circom3.params circom4.params
# generate resulting keys
cargo run --release --bin export_keys circom4.params vk.json pk.json
# create dummy keys in circom format
npx snarkjs setup --protocol groth
# patch dummy keys with actual keys params
node patch_vk.js
# generate binary version of proving key
node node_modules/websnark/tools/buildpkey.js -i transformed_pk.json -o transformed_pk.bin
# try to generate and verify proof
snarkjs calculatewitness
node node_modules/websnark/tools/buildwitness.js -i witness.json -o witness.bin
snarkjs proof # to get public inputs json only
./cli.js
snarkjs verify --vk transformed_vk.json --proof proof.json