-
Notifications
You must be signed in to change notification settings - Fork 226
Arithmic/streaming #638
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Arithmic/streaming #638
Conversation
… design_oracle
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: s/Oracle/WitnessStream/g
jolt-core/src/jolt/vm/output.log
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete or add to .gitignore
jolt-core/src/r1cs/builder.rs
Outdated
|
||
// pub fn streaming_compute_spartan_Az_Bz_Cz( | ||
// &self, | ||
// flattened_polynomials: &[&[F]], // N variables of (S steps) | ||
// ) -> SpartanInterleavedPolynomial<F> { | ||
// SpartanInterleavedPolynomial::new( | ||
// &self.uniform_builder.constraints, | ||
// &self.offset_equality_constraints, | ||
// flattened_polynomials, | ||
// self.padded_rows_per_step(), | ||
// ) | ||
// } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete
jolt-core/src/poly/eq_poly.rs
Outdated
pub struct StreamingEqPolynomial<F> { | ||
r: Vec<F>, | ||
num_vars: usize, | ||
ratios: Vec<F>, | ||
idx: usize, | ||
prev_eval: F, | ||
scaling_factor: Option<F>, | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we consider square root space acceptable, let's use a technique similar to SplitEqPolynomial
instead of this log-space variant.
|
||
let mut witness_eval_for_final_eval = vec![vec![F::zero(); 2]; num_polys]; | ||
let num_shards = (1 << num_rounds) / shard_length; | ||
for i in 0..num_rounds { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit:
for i in 0..num_rounds { | |
for round in 0..num_rounds { |
jolt-core/src/jolt/vm/mod.rs
Outdated
|
||
// pub type StreamingJoltPolynomials<F: JoltField> = JoltStuff<StreamingPolynomial<JoltTraceStep<JoltInstructionSet>, F>>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: delete
fix stream prove cubic
…tream/spartan_optimisation
This PR implements "oracles" to stream the jolt polynomials and Az, Bz, Cz (for uniform Spartan used in Jolt). It also has an implementation of a streaming sum-check prover