grapevine-sonobe/src/nova.rs
src/nova.rsRaw
1use ark_bn254::{constraints::GVar, Fr, G1Projective as Projective};
2use ark_crypto_primitives::{
3 crh::{
4 poseidon::constraints::{CRHGadget, CRHParametersVar},
5 poseidon::CRH,
6 CRHScheme, CRHSchemeGadget,
7 },
8 sponge::{poseidon::PoseidonConfig, Absorb},
9};
10use ark_ff::PrimeField;
11use ark_grumpkin::{constraints::GVar as Gvar2, Projective as Projective2};
12use ark_r1cs_std::{alloc::AllocVar, fields::fp::FpVar, fields::FieldVar};
13use ark_relations::r1cs::{ConstraintSystemRef, SynthesisError};
14use ark_std::Zero;
15use core::marker::PhantomData;
16use sonobe::{
17 commitment::{pedersen::Pedersen, CommitmentScheme},
18 folding::nova::{get_r1cs, ProverParams, VerifierParams},
19 frontend::{circom::CircomFCircuit, FCircuit},
20 transcript::poseidon::poseidon_test_config,
21};
22use std::time::Instant;
23
24use crate::params::test_nova_setup;
25
26/* WIP
27#[cfg(test)]
28mod test {
29 use super::*;
30 use std::path::PathBuf;
31 use std::time::Instant;
32 #[test]
33 fn test_generate_params() {
34 let r1cs_path = PathBuf::from("./circom/artifacts/circuit.r1cs");
35 let wasm_path = PathBuf::from("./circom/artifacts/circuit.wasm");
36 let f_circuit = CircomFCircuit::<Fr>::new((r1cs_path, wasm_path, 4, 6 + 4)); // 4=ivc_input.lenght, 6+4=external_inputs
37
38 let pre = Instant::now();
39 let (prover_params, verifier_params) = test_nova_setup::<GrapevineFCircuit<Fr>>(f_circuit);
40 // let prover_params_str = serde_json::to_string(&prover_params).unwrap();
41 // let verifier_params_str = serde_json::to_string(&verifier_params).unwrap();
42
43 println!("Time to generate params: {:?}", pre.elapsed());
44 }
45}
46*/