VerifierTraceGen

Trait VerifierTraceGen 

Source
pub trait VerifierTraceGen<PB: ProverBackend, SC: StarkProtocolConfig<F = F>, DC: Clone + Send + Sync> {
    // Required methods
    fn new(
        child_mvk: Arc<MultiStarkVerifyingKey<BabyBearPoseidon2Config>>,
        config: VerifierConfig,
    ) -> Self;
    fn commit_child_vk<E: StarkEngine<SC = SC, PB = PB>>(
        &self,
        engine: &E,
        child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>,
    ) -> CommittedTraceData<PB>
       where DC: From<EngineDeviceCtx<E>>;
    fn cached_trace_record(
        &self,
        child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>,
    ) -> CachedTraceRecord;
    fn generate_proving_ctxs<TS: FiatShamirTranscript<BabyBearPoseidon2Config> + TranscriptHistory<F = F, State = [F; 16]>>(
        &self,
        child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>,
        cached_trace_ctx: CachedTraceCtx<PB>,
        proofs: &[Proof<BabyBearPoseidon2Config>],
        external_data: &mut VerifierExternalData<'_>,
        device_ctx: &DC,
        initial_transcript: TS,
    ) -> Option<Vec<AirProvingContext<PB>>>;

    // Provided method
    fn generate_proving_ctxs_base<TS: FiatShamirTranscript<BabyBearPoseidon2Config> + TranscriptHistory<F = F, State = [F; 16]>>(
        &self,
        child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>,
        cached_trace_ctx: CachedTraceCtx<PB>,
        proofs: &[Proof<BabyBearPoseidon2Config>],
        device_ctx: &DC,
        initial_transcript: TS,
    ) -> Vec<AirProvingContext<PB>> { ... }
}

Required Methods§

Source

fn new( child_mvk: Arc<MultiStarkVerifyingKey<BabyBearPoseidon2Config>>, config: VerifierConfig, ) -> Self

Source

fn commit_child_vk<E: StarkEngine<SC = SC, PB = PB>>( &self, engine: &E, child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>, ) -> CommittedTraceData<PB>
where DC: From<EngineDeviceCtx<E>>,

Source

fn cached_trace_record( &self, child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>, ) -> CachedTraceRecord

Source

fn generate_proving_ctxs<TS: FiatShamirTranscript<BabyBearPoseidon2Config> + TranscriptHistory<F = F, State = [F; 16]>>( &self, child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>, cached_trace_ctx: CachedTraceCtx<PB>, proofs: &[Proof<BabyBearPoseidon2Config>], external_data: &mut VerifierExternalData<'_>, device_ctx: &DC, initial_transcript: TS, ) -> Option<Vec<AirProvingContext<PB>>>

The generic TS allows using different transcript implementations for debugging purposes. The default type to use is DuplexSpongeRecorder.

Provided Methods§

Source

fn generate_proving_ctxs_base<TS: FiatShamirTranscript<BabyBearPoseidon2Config> + TranscriptHistory<F = F, State = [F; 16]>>( &self, child_vk: &MultiStarkVerifyingKey<BabyBearPoseidon2Config>, cached_trace_ctx: CachedTraceCtx<PB>, proofs: &[Proof<BabyBearPoseidon2Config>], device_ctx: &DC, initial_transcript: TS, ) -> Vec<AirProvingContext<PB>>

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<HS: GpuHashScheme, const MAX_NUM_PROOFS: usize> VerifierTraceGen<GenericGpuBackend<HS>, <HS as GpuHashScheme>::SC, GpuDeviceCtx> for VerifierSubCircuit<MAX_NUM_PROOFS>

Source§

impl<SC: StarkProtocolConfig<F = F>, const MAX_NUM_PROOFS: usize> VerifierTraceGen<CpuBackend<SC>, SC, ()> for VerifierSubCircuit<MAX_NUM_PROOFS>