arnaucube
arnaucube/grapevine-sonobePublic Self-hosted repository
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*/