pub struct MultiStarkKeygenBuilder<'a, SC: StarkGenericConfig> {
pub config: &'a SC,
/* private fields */
}
Expand description
Stateful builder to create multi-stark proving and verifying keys for system of multiple RAPs with multiple multi-matrix commitments
Fields§
§config: &'a SC
Implementations§
Source§impl<'a, SC: StarkGenericConfig> MultiStarkKeygenBuilder<'a, SC>
impl<'a, SC: StarkGenericConfig> MultiStarkKeygenBuilder<'a, SC>
pub fn new(config: &'a SC) -> Self
Sourcepub fn set_max_constraint_degree(&mut self, max_constraint_degree: usize)
pub fn set_max_constraint_degree(&mut self, max_constraint_degree: usize)
The builder will try to keep the max constraint degree across all AIRs below this value. If it is given AIRs that exceed this value, it will still include them.
Currently this is only used for interaction chunking in FRI logup.
Sourcepub fn add_air(&mut self, air: Arc<dyn AnyRap<SC>>) -> usize
pub fn add_air(&mut self, air: Arc<dyn AnyRap<SC>>) -> usize
Default way to add a single Interactive AIR.
Returns air_id
Sourcepub fn generate_pk(self) -> MultiStarkProvingKey<SC>
pub fn generate_pk(self) -> MultiStarkProvingKey<SC>
Consume the builder and generate proving key. The verifying key can be obtained from the proving key.
Auto Trait Implementations§
impl<'a, SC> Freeze for MultiStarkKeygenBuilder<'a, SC>
impl<'a, SC> !RefUnwindSafe for MultiStarkKeygenBuilder<'a, SC>
impl<'a, SC> Send for MultiStarkKeygenBuilder<'a, SC>where
SC: Sync,
impl<'a, SC> Sync for MultiStarkKeygenBuilder<'a, SC>where
SC: Sync,
impl<'a, SC> Unpin for MultiStarkKeygenBuilder<'a, SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Unpin,
impl<'a, SC> !UnwindSafe for MultiStarkKeygenBuilder<'a, SC>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more