Auto merge of #1399 - ebfull:write-r1cs, r=ebfull

Write R1CS output to file in GenerateParams.

Not urgent. This is how the constraint system is communicated to the MPC.
This commit is contained in:
zkbot
2016-11-04 16:57:43 +00:00
3 changed files with 16 additions and 4 deletions

View File

@@ -112,14 +112,23 @@ public:
throw std::runtime_error("cannot save verifying key; key doesn't exist");
}
}
void saveR1CS(std::string path) {
auto r1cs = generate_r1cs();
void generate() {
saveToFile(path, r1cs);
}
r1cs_constraint_system<FieldT> generate_r1cs() {
protoboard<FieldT> pb;
joinsplit_gadget<FieldT, NumInputs, NumOutputs> g(pb);
g.generate_r1cs_constraints();
const r1cs_constraint_system<FieldT> constraint_system = pb.get_constraint_system();
return pb.get_constraint_system();
}
void generate() {
const r1cs_constraint_system<FieldT> constraint_system = generate_r1cs();
r1cs_ppzksnark_keypair<ppzksnark_ppT> keypair = r1cs_ppzksnark_generator<ppzksnark_ppT>(constraint_system);
pk = keypair.pk;