pub struct Coordinator<SC: StarkProtocolConfig, PB: ProverBackend, PD, TS> {
pub backend: PB,
pub device: PD,
/* private fields */
}Fields§
§backend: PB§device: PDImplementations§
Source§impl<SC: StarkProtocolConfig, PB: ProverBackend, PD, TS> Coordinator<SC, PB, PD, TS>
impl<SC: StarkProtocolConfig, PB: ProverBackend, PD, TS> Coordinator<SC, PB, PD, TS>
Trait Implementations§
Source§impl<SC, PB, PD, TS> Prover for Coordinator<SC, PB, PD, TS>where
SC: StarkProtocolConfig,
PB: ProverBackend<Val = SC::F, Challenge = SC::EF, Commitment = SC::Digest>,
PD: ProverDevice<PB, TS>,
PD::Artifacts: Into<PD::OpeningPoints>,
PD::PartialProof: Into<(GkrProof<SC>, BatchConstraintProof<SC>)>,
PD::OpeningProof: Into<(StackingProof<SC>, WhirProof<SC>)>,
TS: FiatShamirTranscript<SC>,
impl<SC, PB, PD, TS> Prover for Coordinator<SC, PB, PD, TS>where
SC: StarkProtocolConfig,
PB: ProverBackend<Val = SC::F, Challenge = SC::EF, Commitment = SC::Digest>,
PD: ProverDevice<PB, TS>,
PD::Artifacts: Into<PD::OpeningPoints>,
PD::PartialProof: Into<(GkrProof<SC>, BatchConstraintProof<SC>)>,
PD::OpeningProof: Into<(StackingProof<SC>, WhirProof<SC>)>,
TS: FiatShamirTranscript<SC>,
Source§fn prove<'a>(
&'a mut self,
mpk: &'a DeviceMultiStarkProvingKey<PB>,
unsorted_ctx: ProvingContext<PB>,
) -> Result<Self::Proof, Self::Error>
fn prove<'a>( &'a mut self, mpk: &'a DeviceMultiStarkProvingKey<PB>, unsorted_ctx: ProvingContext<PB>, ) -> Result<Self::Proof, Self::Error>
Specialized prove for InteractiveAirs. Handles trace generation of the permutation traces. Assumes the main traces have been generated and committed already.
The DeviceMultiStarkProvingKey should already be filtered to only include the relevant AIR’s proving keys.
type Proof = Proof<SC>
type Error = <PD as ProverDevice<PB, TS>>::Error
type ProvingKeyView<'a> = &'a DeviceMultiStarkProvingKey<PB> where Self: 'a
type ProvingContext<'a> = ProvingContext<PB> where Self: 'a
Auto Trait Implementations§
impl<SC, PB, PD, TS> Freeze for Coordinator<SC, PB, PD, TS>
impl<SC, PB, PD, TS> RefUnwindSafe for Coordinator<SC, PB, PD, TS>
impl<SC, PB, PD, TS> Send for Coordinator<SC, PB, PD, TS>
impl<SC, PB, PD, TS> Sync for Coordinator<SC, PB, PD, TS>
impl<SC, PB, PD, TS> Unpin for Coordinator<SC, PB, PD, TS>
impl<SC, PB, PD, TS> UnsafeUnpin for Coordinator<SC, PB, PD, TS>
impl<SC, PB, PD, TS> UnwindSafe for Coordinator<SC, PB, PD, TS>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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