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§
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
Sourcefn 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>>>
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§
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.