pub struct Coordinator<SC: StarkGenericConfig, PB, PD> {
pub backend: PB,
pub device: PD,
/* private fields */
}
Expand description
Host-to-device coordinator for full prover implementation.
The generics are:
SC
: Stark configuration for proving key (from host)PB
: Prover backend typesPD
: Prover device methods
Fields§
§backend: PB
§device: PD
Implementations§
Source§impl<SC: StarkGenericConfig, PB, PD> Coordinator<SC, PB, PD>
impl<SC: StarkGenericConfig, PB, PD> Coordinator<SC, PB, PD>
pub fn new(backend: PB, device: PD, challenger: SC::Challenger) -> Self
Trait Implementations§
Source§impl<SC, PB, PD> Prover for Coordinator<SC, PB, PD>where
SC: StarkGenericConfig,
PB: ProverBackend<Val = Val<SC>, Challenge = SC::Challenge, Commitment = Com<SC>, Challenger = SC::Challenger>,
PD: ProverDevice<PB>,
impl<SC, PB, PD> Prover for Coordinator<SC, PB, PD>where
SC: StarkGenericConfig,
PB: ProverBackend<Val = Val<SC>, Challenge = SC::Challenge, Commitment = Com<SC>, Challenger = SC::Challenger>,
PD: ProverDevice<PB>,
Source§fn prove<'a>(
&'a mut self,
mpk: Self::ProvingKeyView<'a>,
ctx: Self::ProvingContext<'a>,
) -> Self::Proof
fn prove<'a>( &'a mut self, mpk: Self::ProvingKeyView<'a>, ctx: Self::ProvingContext<'a>, ) -> Self::Proof
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 = HalProof<PB>
type ProvingKeyView<'a> = &'a DeviceMultiStarkProvingKey<'a, PB> where Self: 'a
type ProvingContext<'a> = ProvingContext<'a, PB> where Self: 'a
Auto Trait Implementations§
impl<SC, PB, PD> Freeze for Coordinator<SC, PB, PD>
impl<SC, PB, PD> RefUnwindSafe for Coordinator<SC, PB, PD>where
PB: RefUnwindSafe,
PD: RefUnwindSafe,
<SC as StarkGenericConfig>::Challenger: RefUnwindSafe,
SC: RefUnwindSafe,
impl<SC, PB, PD> Send for Coordinator<SC, PB, PD>
impl<SC, PB, PD> Sync for Coordinator<SC, PB, PD>
impl<SC, PB, PD> Unpin for Coordinator<SC, PB, PD>
impl<SC, PB, PD> UnwindSafe for Coordinator<SC, PB, PD>where
PB: UnwindSafe,
PD: UnwindSafe,
<SC as StarkGenericConfig>::Challenger: UnwindSafe,
SC: UnwindSafe,
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