diff --git a/examples/fri.rs b/examples/fri.rs index 68f1449adce867c774586d177bd41e1fbc4f35d5..9f7fd7e2883d9ae73d865a84bd472cfeed097ce1 100644 --- a/examples/fri.rs +++ b/examples/fri.rs @@ -8,24 +8,32 @@ use rs_merkle::Hasher; use fri::algorithms::Blake3; use komodo::error::KomodoError; -fn run<F: PrimeField, H: Hasher, P>() -> Result<(), KomodoError> +fn run<const N: usize, F: PrimeField, H: Hasher, P>( + bytes: &[u8], + k: usize, + n: usize, + bf: usize, + rpo: usize, + q: usize, +) -> Result<(), KomodoError> where P: DenseUVPolynomial<F>, for<'a, 'b> &'a P: Div<&'b P, Output = P>, <H as rs_merkle::Hasher>::Hash: AsRef<[u8]>, { - // the code parameters and the data to manipulate - let (k, n) = (4, 16); - let bytes = include_bytes!("../assets/dragoon_133x133.png").to_vec(); - eprintln!("loaded {} bytes of data", bytes.len()); - let shards = komodo::fri::encode::<F>(&bytes, k, n); - let blocks = komodo::fri::prove::<2, F, H, P>(shards, 1, 1, 50).unwrap(); - komodo::fri::verify::<2, F, H, P>(blocks[0].clone(), n, 50).unwrap(); + let blocks = komodo::fri::prove::<N, F, H, P>(shards, bf, rpo, q).unwrap(); + + for block in blocks { + komodo::fri::verify::<N, F, H, P>(block, n, q).unwrap(); + } Ok(()) } fn main() { - run::<Fr, Blake3, DensePolynomial<Fr>>().unwrap(); + let bytes = include_bytes!("../assets/dragoon_133x133.png").to_vec(); + eprintln!("loaded {} bytes of data", bytes.len()); + + run::<2, Fr, Blake3, DensePolynomial<Fr>>(&bytes, 4, 16, 1, 1, 50).unwrap(); }