pub struct StarkVerifyingKey<SC: StarkGenericConfig> {
pub preprocessed_data: Option<VerifierSinglePreprocessedData<SC>>,
pub params: StarkVerifyingParams,
pub symbolic_constraints: SymbolicConstraints<Val<SC>>,
pub quotient_degree: usize,
pub rap_phase_seq_kind: RapPhaseSeqKind,
}
Expand description
Verifying key for a single STARK (corresponding to single AIR matrix)
Fields§
§preprocessed_data: Option<VerifierSinglePreprocessedData<SC>>
Preprocessed trace data, if any
params: StarkVerifyingParams
Parameters of the STARK
symbolic_constraints: SymbolicConstraints<Val<SC>>
Symbolic constraints of the AIR in all challenge phases. This is a serialization of the constraints in the AIR.
quotient_degree: usize
The factor to multiple the trace degree by to get the degree of the quotient polynomial. Determined from the max constraint degree of the AIR constraints. This is equivalently the number of chunks the quotient polynomial is split into.
rap_phase_seq_kind: RapPhaseSeqKind
Implementations§
Source§impl<SC: StarkGenericConfig> StarkVerifyingKey<SC>
impl<SC: StarkGenericConfig> StarkVerifyingKey<SC>
pub fn num_cached_mains(&self) -> usize
pub fn has_common_main(&self) -> bool
pub fn has_interaction(&self) -> bool
Trait Implementations§
Source§impl<SC: StarkGenericConfig> Clone for StarkVerifyingKey<SC>
impl<SC: StarkGenericConfig> Clone for StarkVerifyingKey<SC>
Source§impl<'de, SC: StarkGenericConfig> Deserialize<'de> for StarkVerifyingKey<SC>where
Com<SC>: Deserialize<'de>,
impl<'de, SC: StarkGenericConfig> Deserialize<'de> for StarkVerifyingKey<SC>where
Com<SC>: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<SC: StarkGenericConfig> Serialize for StarkVerifyingKey<SC>
impl<SC: StarkGenericConfig> Serialize for StarkVerifyingKey<SC>
Auto Trait Implementations§
impl<SC> Freeze for StarkVerifyingKey<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Freeze,
impl<SC> RefUnwindSafe for StarkVerifyingKey<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: RefUnwindSafe,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: RefUnwindSafe,
impl<SC> Send for StarkVerifyingKey<SC>
impl<SC> Sync for StarkVerifyingKey<SC>
impl<SC> Unpin for StarkVerifyingKey<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Unpin,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: Unpin,
impl<SC> UnwindSafe for StarkVerifyingKey<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: UnwindSafe,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: UnwindSafe + RefUnwindSafe,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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