Skip to content

Commit

Permalink
Fibonacci vadcop working again
Browse files Browse the repository at this point in the history
  • Loading branch information
RogerTaule committed Sep 17, 2024
1 parent 9afe0cd commit fce5b2f
Show file tree
Hide file tree
Showing 8 changed files with 395 additions and 90 deletions.
4 changes: 2 additions & 2 deletions common/src/proof_ctx.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use crate::{AirInstancesRepository, WitnessPilout};

#[allow(dead_code)]
pub struct ProofCtx<F> {
pub public_inputs: Arc<Vec<u8>>,
pub public_inputs: Arc<RefCell<Vec<u8>>>,
pub pilout: WitnessPilout,
pub challenges: Arc<RefCell<Vec<F>>>,
pub air_instance_repo: Arc<AirInstancesRepository<F>>, // RwLock<Vec<AirInstance<F>>>,
Expand All @@ -22,7 +22,7 @@ impl<F> ProofCtx<F> {
}

Self {
public_inputs: Arc::new(Vec::new()),
public_inputs: Arc::new(RefCell::new(Vec::new())),
pilout,
challenges: Arc::new(RefCell::new(Vec::new())),
air_instance_repo,
Expand Down
9 changes: 3 additions & 6 deletions examples/fibonacci-square/src/fibonacci.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ impl<F: PrimeField + Copy> FibonacciSquare<F> {
) -> Result<u64, Box<dyn std::error::Error>> {
log::info!("{} ··· Starting witness computation stage {}", Self::MY_NAME, 1);

let public_inputs: FibonacciSquarePublics = pctx.public_inputs.as_slice().into();

let public_inputs: FibonacciSquarePublics = pctx.public_inputs.borrow().as_slice().into();
let (module, mut a, mut b, _out) = public_inputs.inner();

let (buffer_size, offsets) =
Expand All @@ -65,10 +64,8 @@ impl<F: PrimeField + Copy> FibonacciSquare<F> {
trace[i].b = F::from_canonical_u64(b);
}

// hint!

pctx.public_inputs[24..32].copy_from_slice(&b.to_le_bytes());

pctx.public_inputs.borrow_mut()[24..32].copy_from_slice(&b.to_le_bytes());

// Not needed, for debugging!
// let mut result = F::zero();
// for (i, _) in buffer.iter().enumerate() {
Expand Down
3 changes: 2 additions & 1 deletion examples/fibonacci-square/src/fibonacci_lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use std::cell::RefCell;
use std::io::Read;
use std::{fs::File, sync::Arc};

Expand Down Expand Up @@ -52,7 +53,7 @@ impl<F: PrimeField> WitnessLibrary<F> for FibonacciWitness<F> {
FibonacciSquarePublics::default()
};

pctx.public_inputs = public_inputs.into();
pctx.public_inputs = Arc::new(RefCell::new(public_inputs.into()));

self.wcm.start_proof(pctx, ectx, sctx);
}
Expand Down
2 changes: 1 addition & 1 deletion examples/fibonacci-square/src/module.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ impl<F: PrimeField + AbstractField + Clone + Copy + Default + 'static> Module<F>
fn calculate_trace(&self, pctx: &mut ProofCtx<F>, ectx: &ExecutionCtx) {
log::info!("{} ··· Starting witness computation stage {}", Self::MY_NAME, 1);

let pi: FibonacciSquarePublics = pctx.public_inputs.as_slice().into();
let pi: FibonacciSquarePublics = pctx.public_inputs.borrow().as_slice().into();
let module = pi.module;

let (buffer_size, offsets) =
Expand Down
Loading

0 comments on commit fce5b2f

Please sign in to comment.