pub trait ProverServer: Sealed {
Show 22 methods
// Required methods
fn prove_with_ctx(
&self,
env: ExecutorEnv<'_>,
ctx: &VerifierContext,
elf: &[u8],
) -> Result<ProveInfo>;
fn prove_session(
&self,
ctx: &VerifierContext,
session: &Session,
) -> Result<ProveInfo>;
fn segment_preflight(&self, segment: &Segment) -> Result<PreflightResults>;
fn prove_segment_core(
&self,
ctx: &VerifierContext,
preflight_results: PreflightResults,
) -> Result<SegmentReceipt>;
fn prove_keccak(
&self,
request: &ProveKeccakRequest,
) -> Result<SuccinctReceipt<Unknown>>;
fn lift(
&self,
receipt: &SegmentReceipt,
) -> Result<SuccinctReceipt<ReceiptClaim>>;
fn join(
&self,
a: &SuccinctReceipt<ReceiptClaim>,
b: &SuccinctReceipt<ReceiptClaim>,
) -> Result<SuccinctReceipt<ReceiptClaim>>;
fn union(
&self,
a: &SuccinctReceipt<Unknown>,
b: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<UnionClaim>>;
fn resolve(
&self,
conditional: &SuccinctReceipt<ReceiptClaim>,
assumption: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<ReceiptClaim>>;
fn lift_povw(
&self,
receipt: &SegmentReceipt,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>;
fn join_povw(
&self,
a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
b: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>;
fn join_unwrap_povw(
&self,
a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
b: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
) -> Result<SuccinctReceipt<ReceiptClaim>>;
fn resolve_povw(
&self,
conditional: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
assumption: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>;
fn resolve_unwrap_povw(
&self,
conditional: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
assumption: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<ReceiptClaim>>;
fn unwrap_povw(
&self,
a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
) -> Result<SuccinctReceipt<ReceiptClaim>>;
fn identity_p254(
&self,
a: &SuccinctReceipt<ReceiptClaim>,
) -> Result<SuccinctReceipt<ReceiptClaim>>;
// Provided methods
fn prove(&self, env: ExecutorEnv<'_>, elf: &[u8]) -> Result<ProveInfo> { ... }
fn prove_segment(
&self,
ctx: &VerifierContext,
segment: &Segment,
) -> Result<SegmentReceipt> { ... }
fn composite_to_succinct(
&self,
receipt: &CompositeReceipt,
) -> Result<SuccinctReceipt<ReceiptClaim>> { ... }
fn composite_to_succinct_povw(
&self,
receipt: &CompositeReceipt,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>> { ... }
fn succinct_to_groth16(
&self,
receipt: &SuccinctReceipt<ReceiptClaim>,
) -> Result<Groth16Receipt<ReceiptClaim>> { ... }
fn compress(&self, opts: &ProverOpts, receipt: &Receipt) -> Result<Receipt> { ... }
}
prove
and non-target_os="zkvm"
only.Expand description
Required Methods§
Sourcefn prove_with_ctx(
&self,
env: ExecutorEnv<'_>,
ctx: &VerifierContext,
elf: &[u8],
) -> Result<ProveInfo>
fn prove_with_ctx( &self, env: ExecutorEnv<'_>, ctx: &VerifierContext, elf: &[u8], ) -> Result<ProveInfo>
Prove the specified ELF binary using the specified VerifierContext.
Sourcefn prove_session(
&self,
ctx: &VerifierContext,
session: &Session,
) -> Result<ProveInfo>
fn prove_session( &self, ctx: &VerifierContext, session: &Session, ) -> Result<ProveInfo>
Prove the specified Session.
Sourcefn segment_preflight(&self, segment: &Segment) -> Result<PreflightResults>
fn segment_preflight(&self, segment: &Segment) -> Result<PreflightResults>
Run preflight on the specified Segment.
Sourcefn prove_segment_core(
&self,
ctx: &VerifierContext,
preflight_results: PreflightResults,
) -> Result<SegmentReceipt>
fn prove_segment_core( &self, ctx: &VerifierContext, preflight_results: PreflightResults, ) -> Result<SegmentReceipt>
Prove the specified Segment which has had preflight run on it.
Sourcefn prove_keccak(
&self,
request: &ProveKeccakRequest,
) -> Result<SuccinctReceipt<Unknown>>
fn prove_keccak( &self, request: &ProveKeccakRequest, ) -> Result<SuccinctReceipt<Unknown>>
Prove the specified keccak request
Sourcefn lift(
&self,
receipt: &SegmentReceipt,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn lift( &self, receipt: &SegmentReceipt, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Lift a SegmentReceipt into a SuccinctReceipt
Sourcefn join(
&self,
a: &SuccinctReceipt<ReceiptClaim>,
b: &SuccinctReceipt<ReceiptClaim>,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn join( &self, a: &SuccinctReceipt<ReceiptClaim>, b: &SuccinctReceipt<ReceiptClaim>, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Join two SuccinctReceipt into a SuccinctReceipt
Sourcefn union(
&self,
a: &SuccinctReceipt<Unknown>,
b: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<UnionClaim>>
fn union( &self, a: &SuccinctReceipt<Unknown>, b: &SuccinctReceipt<Unknown>, ) -> Result<SuccinctReceipt<UnionClaim>>
Unite two SuccinctReceipt into a SuccinctReceipt
Sourcefn resolve(
&self,
conditional: &SuccinctReceipt<ReceiptClaim>,
assumption: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn resolve( &self, conditional: &SuccinctReceipt<ReceiptClaim>, assumption: &SuccinctReceipt<Unknown>, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Resolve an assumption from a conditional SuccinctReceipt by providing a SuccinctReceipt proving the validity of the assumption.
Sourcefn lift_povw(
&self,
receipt: &SegmentReceipt,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
fn lift_povw( &self, receipt: &SegmentReceipt, ) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
Lift a SegmentReceipt into a SuccinctReceipt with a proof of verifiable work (PoVW) claim.
Sourcefn join_povw(
&self,
a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
b: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
fn join_povw( &self, a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>, b: &SuccinctReceipt<WorkClaim<ReceiptClaim>>, ) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
Join two SuccinctReceipt with proof of verifiable work (PoVW) claims into a SuccinctReceipt a PoVW claim.
Sourcefn join_unwrap_povw(
&self,
a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
b: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn join_unwrap_povw( &self, a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>, b: &SuccinctReceipt<WorkClaim<ReceiptClaim>>, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Join two SuccinctReceipt with proof of verifiable work (PoVW) claims into a SuccinctReceipt, and unwrap the result (see ProverServer::unwrap_povw).
Sourcefn resolve_povw(
&self,
conditional: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
assumption: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
fn resolve_povw( &self, conditional: &SuccinctReceipt<WorkClaim<ReceiptClaim>>, assumption: &SuccinctReceipt<Unknown>, ) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
Resolve an assumption from a conditional SuccinctReceipt with a proof of verifiable work (PoVW) claim by providing a SuccinctReceipt proving the validity of the assumption.
Sourcefn resolve_unwrap_povw(
&self,
conditional: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
assumption: &SuccinctReceipt<Unknown>,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn resolve_unwrap_povw( &self, conditional: &SuccinctReceipt<WorkClaim<ReceiptClaim>>, assumption: &SuccinctReceipt<Unknown>, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Resolve an assumption from a conditional SuccinctReceipt with a proof of verifiable work (PoVW) claim by providing a SuccinctReceipt proving the validity of the assumption, and unwrap the result (see ProverServer::unwrap_povw).
Sourcefn unwrap_povw(
&self,
a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn unwrap_povw( &self, a: &SuccinctReceipt<WorkClaim<ReceiptClaim>>, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Remove the proof of verifiable work (PoVW) information from a SuccinctReceipt to produce a SuccinctReceipt over the underlying claim.
Sourcefn identity_p254(
&self,
a: &SuccinctReceipt<ReceiptClaim>,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn identity_p254( &self, a: &SuccinctReceipt<ReceiptClaim>, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Convert a SuccinctReceipt with a Poseidon hash function that uses a 254-bit field
Provided Methods§
Sourcefn prove(&self, env: ExecutorEnv<'_>, elf: &[u8]) -> Result<ProveInfo>
fn prove(&self, env: ExecutorEnv<'_>, elf: &[u8]) -> Result<ProveInfo>
Prove the specified ELF binary.
Sourcefn prove_segment(
&self,
ctx: &VerifierContext,
segment: &Segment,
) -> Result<SegmentReceipt>
fn prove_segment( &self, ctx: &VerifierContext, segment: &Segment, ) -> Result<SegmentReceipt>
Prove the specified Segment.
Sourcefn composite_to_succinct(
&self,
receipt: &CompositeReceipt,
) -> Result<SuccinctReceipt<ReceiptClaim>>
fn composite_to_succinct( &self, receipt: &CompositeReceipt, ) -> Result<SuccinctReceipt<ReceiptClaim>>
Compress a CompositeReceipt into a single SuccinctReceipt.
A CompositeReceipt may contain an arbitrary number of receipts assembled into segments and assumptions. Together, these receipts collectively prove a top-level ReceiptClaim. This function compresses all of the constituent receipts of a CompositeReceipt into a single SuccinctReceipt that proves the same top-level claim. It accomplishes this by iterative application of the recursion programs including lift, join, and resolve.
Sourcefn composite_to_succinct_povw(
&self,
receipt: &CompositeReceipt,
) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
fn composite_to_succinct_povw( &self, receipt: &CompositeReceipt, ) -> Result<SuccinctReceipt<WorkClaim<ReceiptClaim>>>
Convert a composite receipt to a succinct work claim receipt.
Sourcefn succinct_to_groth16(
&self,
receipt: &SuccinctReceipt<ReceiptClaim>,
) -> Result<Groth16Receipt<ReceiptClaim>>
fn succinct_to_groth16( &self, receipt: &SuccinctReceipt<ReceiptClaim>, ) -> Result<Groth16Receipt<ReceiptClaim>>
Compress a SuccinctReceipt into a Groth16Receipt.
Sourcefn compress(&self, opts: &ProverOpts, receipt: &Receipt) -> Result<Receipt>
fn compress(&self, opts: &ProverOpts, receipt: &Receipt) -> Result<Receipt>
Compress a receipt into one with a smaller representation.
The requested target representation is determined by the ReceiptKind specified on the provided ProverOpts. If the receipt is already at least as compressed as the requested kind, this is a no-op.