Struct sp1_core::stark::LocalProver
source · pub struct LocalProver<SC, A>(/* private fields */);Implementations§
source§impl<SC, A> LocalProver<SC, A>where
SC: StarkGenericConfig,
SC::Challenger: Clone,
A: MachineAir<SC::Val>,
Com<SC>: Send + Sync,
PcsProverData<SC>: Send + Sync,
ShardMainData<SC>: Serialize + DeserializeOwned,
impl<SC, A> LocalProver<SC, A>where
SC: StarkGenericConfig,
SC::Challenger: Clone,
A: MachineAir<SC::Val>,
Com<SC>: Send + Sync,
PcsProverData<SC>: Send + Sync,
ShardMainData<SC>: Serialize + DeserializeOwned,
pub fn commit_main( config: &SC, machine: &StarkMachine<SC, A>, shard: &A::Record, index: usize, ) -> ShardMainData<SC>
sourcepub fn prove_shard(
config: &SC,
pk: &StarkProvingKey<SC>,
chips: &[&MachineChip<SC, A>],
shard_data: ShardMainData<SC>,
challenger: &mut SC::Challenger,
) -> ShardProof<SC>where
Val<SC>: PrimeField32,
SC: Send + Sync,
ShardMainData<SC>: DeserializeOwned,
A: for<'a> Air<ProverConstraintFolder<'a, SC>> + Air<InteractionBuilder<Val<SC>>> + for<'a> Air<VerifierConstraintFolder<'a, SC>>,
pub fn prove_shard(
config: &SC,
pk: &StarkProvingKey<SC>,
chips: &[&MachineChip<SC, A>],
shard_data: ShardMainData<SC>,
challenger: &mut SC::Challenger,
) -> ShardProof<SC>where
Val<SC>: PrimeField32,
SC: Send + Sync,
ShardMainData<SC>: DeserializeOwned,
A: for<'a> Air<ProverConstraintFolder<'a, SC>> + Air<InteractionBuilder<Val<SC>>> + for<'a> Air<VerifierConstraintFolder<'a, SC>>,
Prove the program for the given shard and given a commitment to the main data.
pub fn commit_shards<F, EF>(
machine: &StarkMachine<SC, A>,
shards: &[A::Record],
opts: SP1CoreOpts,
) -> (Vec<Com<SC>>, Vec<ShardMainDataWrapper<SC>>)where
F: PrimeField32,
EF: ExtensionField<F>,
SC: StarkGenericConfig<Val = F, Challenge = EF> + Send + Sync,
SC::Challenger: Clone,
PcsProverData<SC>: Send + Sync,
ShardMainData<SC>: Serialize + DeserializeOwned,
Trait Implementations§
source§impl<SC, A> Prover<SC, A> for LocalProver<SC, A>where
SC::Val: PrimeField32,
SC: StarkGenericConfig + Send + Sync,
SC::Challenger: Clone,
Com<SC>: Send + Sync,
PcsProverData<SC>: Send + Sync,
OpeningProof<SC>: Send + Sync,
ShardMainData<SC>: Serialize + DeserializeOwned,
A: MachineAir<Val<SC>>,
impl<SC, A> Prover<SC, A> for LocalProver<SC, A>where
SC::Val: PrimeField32,
SC: StarkGenericConfig + Send + Sync,
SC::Challenger: Clone,
Com<SC>: Send + Sync,
PcsProverData<SC>: Send + Sync,
OpeningProof<SC>: Send + Sync,
ShardMainData<SC>: Serialize + DeserializeOwned,
A: MachineAir<Val<SC>>,
fn prove_shards(
machine: &StarkMachine<SC, A>,
pk: &StarkProvingKey<SC>,
shards: Vec<A::Record>,
challenger: &mut SC::Challenger,
opts: SP1CoreOpts,
) -> MachineProof<SC>where
A: for<'a> Air<ProverConstraintFolder<'a, SC>> + Air<InteractionBuilder<Val<SC>>> + for<'a> Air<VerifierConstraintFolder<'a, SC>>,
Auto Trait Implementations§
impl<SC, A> Freeze for LocalProver<SC, A>
impl<SC, A> RefUnwindSafe for LocalProver<SC, A>where
SC: RefUnwindSafe,
A: RefUnwindSafe,
impl<SC, A> Send for LocalProver<SC, A>
impl<SC, A> Sync for LocalProver<SC, A>
impl<SC, A> Unpin for LocalProver<SC, A>
impl<SC, A> UnwindSafe for LocalProver<SC, A>where
SC: UnwindSafe,
A: 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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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