Trait risc0_zkvm::prove::Prover

source ·
pub trait Prover {
    // Required methods
    fn prove(
        &self,
        env: ExecutorEnv<'_>,
        ctx: &VerifierContext,
        image: MemoryImage
    ) -> Result<Receipt>;
    fn prove_session(
        &self,
        ctx: &VerifierContext,
        session: &Session
    ) -> Result<Receipt>;
    fn prove_segment(
        &self,
        ctx: &VerifierContext,
        segment: &Segment
    ) -> Result<SegmentReceipt>;
    fn get_peak_memory_usage(&self) -> usize;
    fn get_name(&self) -> String;

    // Provided methods
    fn prove_elf(&self, env: ExecutorEnv<'_>, elf: &[u8]) -> Result<Receipt> { ... }
    fn prove_elf_with_ctx(
        &self,
        env: ExecutorEnv<'_>,
        ctx: &VerifierContext,
        elf: &[u8]
    ) -> Result<Receipt> { ... }
}
Expand description

A Prover can execute a given MemoryImage and produce a Receipt that can be used to verify correct computation.

Required Methods§

source

fn prove( &self, env: ExecutorEnv<'_>, ctx: &VerifierContext, image: MemoryImage ) -> Result<Receipt>

Prove the specified MemoryImage.

source

fn prove_session( &self, ctx: &VerifierContext, session: &Session ) -> Result<Receipt>

Prove the specified Session.

source

fn prove_segment( &self, ctx: &VerifierContext, segment: &Segment ) -> Result<SegmentReceipt>

Prove the specified Segment.

source

fn get_peak_memory_usage(&self) -> usize

Return the peak memory usage that this Prover has experienced.

source

fn get_name(&self) -> String

Return a name for this Prover.

Provided Methods§

source

fn prove_elf(&self, env: ExecutorEnv<'_>, elf: &[u8]) -> Result<Receipt>

Prove the specified ELF binary.

source

fn prove_elf_with_ctx( &self, env: ExecutorEnv<'_>, ctx: &VerifierContext, elf: &[u8] ) -> Result<Receipt>

Prove the specified MemoryImage with the specified VerifierContext.

Implementors§