openvm_sdk::prover::vm

Trait AsyncSingleSegmentVmProver

Source
pub trait AsyncSingleSegmentVmProver<SC: StarkGenericConfig> {
    // Required method
    fn prove<'life0, 'async_trait>(
        &'life0 self,
        input: impl 'async_trait + Into<Streams<Val<SC>>> + Send + Sync,
    ) -> Pin<Box<dyn Future<Output = Proof<SC>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Async prover for a specific exe in a specific single-segment VM using a specific Stark config.

Required Methods§

Source

fn prove<'life0, 'async_trait>( &'life0 self, input: impl 'async_trait + Into<Streams<Val<SC>>> + Send + Sync, ) -> Pin<Box<dyn Future<Output = Proof<SC>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl AsyncSingleSegmentVmProver<StarkConfig<TwoAdicFriPcs<MontyField31<BabyBearParameters>, Radix2DitParallel<MontyField31<BabyBearParameters>>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, Bn254Fr, MultiField32PaddingFreeSponge<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#0}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#1}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#2}>, TruncatedPermutation<Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, 2, 1, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Compress::{constant#2}>, 1>, ExtensionMmcs<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, Bn254Fr, MultiField32PaddingFreeSponge<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#0}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#1}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#2}>, TruncatedPermutation<Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, 2, 1, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Compress::{constant#2}>, 1>>>, StarkLogUpPhase<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MultiField32Challenger<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Challenger::{constant#1}, 2>>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MultiField32Challenger<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Challenger::{constant#1}, 2>>> for RootVerifierLocalProver

Source§

impl<SC: StarkGenericConfig, VC: VmConfig<Val<SC>>, E: StarkFriEngine<SC>> AsyncSingleSegmentVmProver<SC> for VmLocalProver<SC, VC, E>
where VmLocalProver<SC, VC, E>: Send + Sync, Val<SC>: PrimeField32, VC::Executor: Chip<SC>, VC::Periphery: Chip<SC>,