RootTraceGen

Trait RootTraceGen 

Source
pub trait RootTraceGen<PB: ProverBackend, DC: Clone + Send + Sync> {
    // Required methods
    fn new(deferral_enabled: bool) -> Self;
    fn generate_pre_verifier_subcircuit_ctx(
        &self,
        proof: &Proof<BabyBearPoseidon2Config>,
        user_pvs_proof: &UserPublicValuesProof<DIGEST_SIZE, PB::Val>,
        memory_dimensions: MemoryDimensions,
        device_ctx: &DC,
    ) -> SubCircuitTraceData<PB>;
    fn generate_other_proving_ctxs(
        &self,
        proof: &Proof<BabyBearPoseidon2Config>,
        memory_dimensions: MemoryDimensions,
        deferral_merkle_proofs: Option<&DeferralMerkleProofs<PB::Val>>,
        device_ctx: &DC,
    ) -> (Vec<AirProvingContext<PB>>, Vec<[PB::Val; 16]>);
}

Required Methods§

Source

fn new(deferral_enabled: bool) -> Self

Source

fn generate_pre_verifier_subcircuit_ctx( &self, proof: &Proof<BabyBearPoseidon2Config>, user_pvs_proof: &UserPublicValuesProof<DIGEST_SIZE, PB::Val>, memory_dimensions: MemoryDimensions, device_ctx: &DC, ) -> SubCircuitTraceData<PB>

Source

fn generate_other_proving_ctxs( &self, proof: &Proof<BabyBearPoseidon2Config>, memory_dimensions: MemoryDimensions, deferral_merkle_proofs: Option<&DeferralMerkleProofs<PB::Val>>, device_ctx: &DC, ) -> (Vec<AirProvingContext<PB>>, Vec<[PB::Val; 16]>)

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 RootTraceGen<GenericGpuBackend<BabyBearBn254Poseidon2HashScheme>, GpuDeviceCtx> for RootTraceGenImpl

Available on crate feature cuda only.
Source§

impl<SC: StarkProtocolConfig<F = F>> RootTraceGen<CpuBackend<SC>, ()> for RootTraceGenImpl