Hi there,
Sorry to bother but I have been having troubles going through the tutorial with other example apps. The mm_pure_arith works for me but when I try the same steps on hello_world and ramput_micro, it outputs errors when I try to run the prover to prove things.
For hello_world, it shows
Building Prover ...
Makefile:1: A top-level warning
compiling common objs
g++ -m64 -std=c++11 -DCURVE_BN128 -DBN_SUPPORT_SNARK -DBINARY_OUTPUT -DMONTGOMERY_OUTPUT -DNO_PROCPS -DUSE_ASM -DDB_NUM_ADDRESSES=1024 -DDB_HASH_NUM_BITS=1216 -DRAM_CELL_NUM_BITS=32 -DFAST_RAM_WORD_WIDTH=64 -DFAST_RAM_ADDRESS_WIDTH=32 -DFOLDER_TMP=\"/tmp/yuxia/tmp_state\" -DNAME=\"hello_world\" -I./include -I. -I/home/yuxia/pepper_deps/include -I../thirdparty/libsnark -I../thirdparty/libsnark/depends/libff -I../thirdparty/libsnark/depends/libfqfft pepper_prover.cpp -o bin/pepper_prover_hello_world obj/common/sha1.o obj/common/sha256.o obj/common/utility.o obj/common/measurement.o obj/common/mpnvector.o obj/common/mpnclass.o obj/common/mpnops.o obj/common/math.o obj/common/memory.o obj/common/waksman_router.o obj/storage/hasher.o obj/storage/ram_impl.o obj/storage/kyoto_block_store.o obj/storage/leveldb_block_store.o obj/storage/configurable_block_store.o obj/storage/null_hash.o obj/storage/ggh_hash.o obj/storage/exo.o obj/storage/db_util.o obj/storage/external_sort.o obj/storage/db_block_store.o obj/include/db.o obj/include/binary_tree.o obj/include/binary_tree_int_int.o obj/include/binary_tree_int_hash_t.o obj/include/fix_t.o obj/include/avl_tree.o obj/libv/computation_p.o obj/libv/exogenous_checker.o -L/home/yuxia/pepper_deps/lib -L../thirdparty/libsnark/build/libsnark -L../thirdparty/libsnark/build/depends/libff/libff -L../thirdparty/libsnark/build/depends -lsnark -lff -lzm -lgmp -lgmpxx -lpapi -lrt -lleveldb -lkyotocabinet -Wl,-rpath,/home/yuxia/pepper_deps/lib/
NUMBER OF CONSTRAINTS: 3
Generating Inputs ...
Generating inputs, will write to ./prover_verifier_shared/hello_world.inputs
Proving ...
NUMBER OF CONSTRAINTS: 3
reading proving key from file...
Reset time counters for profiling
(enter) Call to r1cs_gg_ppzksnark_prover [ ] (0.0000s x0.99 from start)
(enter) Compute the polynomial H [ ] (0.0000s x0.97 from start)
(enter) Call to r1cs_to_qap_witness_map [ ] (0.0000s x0.99 from start)
(enter) Compute evaluation of polynomials A, B on set S [ ] (0.0001s x1.00 from start)
(leave) Compute evaluation of polynomials A, B on set S [0.0000s x1.04] (0.0001s x1.00 from start)
(enter) Compute coefficients of polynomial A [ ] (0.0001s x1.00 from start)
(leave) Compute coefficients of polynomial A [0.0001s x1.00] (0.0002s x1.00 from start)
(enter) Compute coefficients of polynomial B [ ] (0.0002s x1.00 from start)
(leave) Compute coefficients of polynomial B [0.0000s x1.01] (0.0002s x1.00 from start)
(enter) Compute ZK-patch [ ] (0.0002s x1.00 from start)
(leave) Compute ZK-patch [0.0000s x1.08] (0.0002s x1.00 from start)
(enter) Compute evaluation of polynomial A on set T [ ] (0.0003s x1.00 from start)
(leave) Compute evaluation of polynomial A on set T [0.0000s x1.01] (0.0003s x1.00 from start)
(enter) Compute evaluation of polynomial B on set T [ ] (0.0003s x1.00 from start)
(leave) Compute evaluation of polynomial B on set T [0.0000s x1.01] (0.0003s x1.00 from start)
(enter) Compute evaluation of polynomial H on set T [ ] (0.0003s x1.00 from start)
(enter) Compute evaluation of polynomial C on set S [ ] (0.0003s x1.00 from start)
(leave) Compute evaluation of polynomial C on set S [0.0000s x1.06] (0.0003s x1.00 from start)
(enter) Compute coefficients of polynomial C [ ] (0.0004s x1.00 from start)
(leave) Compute coefficients of polynomial C [0.0000s x1.01] (0.0004s x1.00 from start)
(enter) Compute evaluation of polynomial C on set T [ ] (0.0004s x1.00 from start)
(leave) Compute evaluation of polynomial C on set T [0.0000s x1.01] (0.0004s x1.00 from start)
(enter) Divide by Z on set T [ ] (0.0004s x1.00 from start)
(leave) Divide by Z on set T [0.0001s x1.00] (0.0005s x1.00 from start)
(leave) Compute evaluation of polynomial H on set T [0.0002s x1.00] (0.0005s x1.00 from start)
(enter) Compute coefficients of polynomial H [ ] (0.0005s x1.00 from start)
(leave) Compute coefficients of polynomial H [0.0000s x1.01] (0.0005s x1.00 from start)
(enter) Compute sum of H and ZK-patch [ ] (0.0005s x1.00 from start)
(leave) Compute sum of H and ZK-patch [0.0000s x1.08] (0.0005s x1.00 from start)
(leave) Call to r1cs_to_qap_witness_map [0.0005s x1.00] (0.0006s x1.00 from start)
pepper_prover_hello_world: ../thirdparty/libsnark/libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/r1cs_gg_ppzksnark.tcc:406: libsnark::r1cs_gg_ppzksnark_proof libsnark::r1cs_gg_ppzksnark_prover(const libsnark::r1cs_gg_ppzksnark_proving_key&, libsnark::r1cs_gg_ppzksnark_primary_input&, libsnark::r1cs_gg_ppzksnark_auxiliary_input&) [with ppT = libff::bn128_pp; libsnark::r1cs_gg_ppzksnark_primary_input = std::vector<libff::Fp_model<4, ((const libff::bigint<4>&)(& libff::bn128_modulus_r))>, std::allocator<libff::Fp_model<4, ((const libff::bigint<4>&)(& libff::bn128_modulus_r))> > >; typename EC_ppT::Fp_type = libff::Fp_model<4, ((const libff::bigint<4>&)(& libff::bn128_modulus_r))>; libsnark::r1cs_gg_ppzksnark_auxiliary_input = std::vector<libff::Fp_model<4, ((const libff::bigint<4>&)(& libff::bn128_modulus_r))>, std::allocator<libff::Fp_model<4, ((const libff::bigint<4>&)(& libff::bn128_modulus_r))> > >]: Assertion `!qap_wit.coefficients_for_H[qap_wit.degree()-2].is_zero()' failed.
Aborted (core dumped)
Hi there, Sorry to bother but I have been having troubles going through the tutorial with other example apps. The mm_pure_arith works for me but when I try the same steps on hello_world and ramput_micro, it outputs errors when I try to run the prover to prove things.
For hello_world, it shows
And for the ramput_micro, it shows
The inputs are the generated by the default input generator.
It seems the QAP witness does not satisfy the constraints..?