pub struct FriVerifier<MC: MerkleChannel> { /* private fields */ }Implementations§
Source§impl<MC: MerkleChannel> FriVerifier<MC>
impl<MC: MerkleChannel> FriVerifier<MC>
Sourcepub fn commit(
channel: &mut MC::C,
config: FriConfig,
proof: FriProof<MC::H>,
column_bound: CirclePolyDegreeBound,
) -> Result<Self, FriVerificationError>
pub fn commit( channel: &mut MC::C, config: FriConfig, proof: FriProof<MC::H>, column_bound: CirclePolyDegreeBound, ) -> Result<Self, FriVerificationError>
Verifies the commitment stage of FRI.
column_bound should be the committed circle polynomial degree bound.
§Errors
An Err will be returned if:
- The proof contains an invalid number of FRI layers.
- The degree of the last layer polynomial is too high.
Sourcepub fn decommit(
self,
first_layer_query_evals: Vec<SecureField>,
) -> Result<(), FriVerificationError>
pub fn decommit( self, first_layer_query_evals: Vec<SecureField>, ) -> Result<(), FriVerificationError>
Verifies the decommitment stage of FRI.
The query evals need to be provided in the same order as their commitment.
§Panics
Panics if:
- The queries were not yet sampled.
- The queries were sampled on the wrong domain size.
- There aren’t the same number of decommitted values as degree bounds.
Sourcepub fn sample_query_positions(&mut self, channel: &mut MC::C) -> Vec<usize>
pub fn sample_query_positions(&mut self, channel: &mut MC::C) -> Vec<usize>
Samples and returns query positions mapped by column log size.
Auto Trait Implementations§
impl<MC> Freeze for FriVerifier<MC>
impl<MC> RefUnwindSafe for FriVerifier<MC>
impl<MC> Send for FriVerifier<MC>
impl<MC> Sync for FriVerifier<MC>
impl<MC> Unpin for FriVerifier<MC>
impl<MC> UnsafeUnpin for FriVerifier<MC>
impl<MC> UnwindSafe for FriVerifier<MC>
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