33use ark_ff:: { One , UniformRand , Zero } ;
44use ark_poly:: { univariate:: DensePolynomial , Evaluations } ;
55use criterion:: { black_box, criterion_group, criterion_main, BatchSize , Criterion } ;
6- use kimchi:: { circuits:: domains:: EvaluationDomains , groupmap:: GroupMap } ;
6+ use kimchi:: {
7+ circuits:: domains:: EvaluationDomains , groupmap:: GroupMap , precomputed_srs:: get_srs_test,
8+ } ;
79use mina_curves:: pasta:: { Fp , Vesta } ;
810use once_cell:: sync:: Lazy ;
9- use poly_commitment:: { commitment:: CommitmentCurve , ipa :: SRS , SRS as _} ;
11+ use poly_commitment:: { commitment:: CommitmentCurve , SRS as _} ;
1012use rand:: rngs:: OsRng ;
1113use saffron:: {
12- env,
1314 read_proof:: { prove, verify} ,
1415 ScalarField , SRS_SIZE ,
1516} ;
1617
17- // Set up static resources to avoid re-computation during benchmarks
18- static SRS : Lazy < SRS < Vesta > > = Lazy :: new ( || {
19- if let Ok ( srs) = std:: env:: var ( "SRS_FILEPATH" ) {
20- env:: get_srs_from_cache ( srs)
21- } else {
22- SRS :: create ( SRS_SIZE )
23- }
24- } ) ;
25-
2618static DOMAIN : Lazy < EvaluationDomains < ScalarField > > =
2719 Lazy :: new ( || EvaluationDomains :: < ScalarField > :: create ( SRS_SIZE ) . unwrap ( ) ) ;
2820
@@ -37,10 +29,12 @@ fn generate_test_data(
3729 // Generate data with specified size
3830 let data: Vec < ScalarField > = ( 0 ..size) . map ( |_| Fp :: rand ( & mut rng) ) . collect ( ) ;
3931
32+ let srs = get_srs_test ( ) ;
33+
4034 // Create data commitment
4135 let data_poly: DensePolynomial < ScalarField > =
4236 Evaluations :: from_vec_and_domain ( data. clone ( ) , DOMAIN . d1 ) . interpolate ( ) ;
43- let data_comm: Vesta = SRS . commit_non_hiding ( & data_poly, 1 ) . chunks [ 0 ] ;
37+ let data_comm: Vesta = srs . commit_non_hiding ( & data_poly, 1 ) . chunks [ 0 ] ;
4438
4539 // Generate query (about 10% of positions will be queried)
4640 let query: Vec < ScalarField > = ( 0 ..size)
@@ -62,14 +56,16 @@ fn generate_test_data(
6256fn bench_read_proof_prove ( c : & mut Criterion ) {
6357 let ( data, query, answer, data_comm) = generate_test_data ( SRS_SIZE ) ;
6458
59+ let srs = get_srs_test ( ) ;
60+
6561 let description = format ! ( "prove size {}" , SRS_SIZE ) ;
6662 c. bench_function ( description. as_str ( ) , |b| {
6763 b. iter_batched (
6864 || OsRng ,
6965 |mut rng| {
7066 black_box ( prove (
7167 * DOMAIN ,
72- & SRS ,
68+ & srs ,
7369 & GROUP_MAP ,
7470 & mut rng,
7571 data. as_slice ( ) ,
@@ -86,11 +82,13 @@ fn bench_read_proof_prove(c: &mut Criterion) {
8682fn bench_read_proof_verify ( c : & mut Criterion ) {
8783 let ( data, query, answer, data_comm) = generate_test_data ( SRS_SIZE ) ;
8884
85+ let srs = get_srs_test ( ) ;
86+
8987 // Create proof first
9088 let mut rng = OsRng ;
9189 let proof = prove (
9290 * DOMAIN ,
93- & SRS ,
91+ & srs ,
9492 & GROUP_MAP ,
9593 & mut rng,
9694 data. as_slice ( ) ,
@@ -105,7 +103,7 @@ fn bench_read_proof_verify(c: &mut Criterion) {
105103 || OsRng ,
106104 |mut rng| {
107105 black_box ( verify (
108- * DOMAIN , & SRS , & GROUP_MAP , & mut rng, & data_comm, & proof,
106+ * DOMAIN , & srs , & GROUP_MAP , & mut rng, & data_comm, & proof,
109107 ) )
110108 } ,
111109 BatchSize :: SmallInput ,
0 commit comments