~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/zkwid

0
0
main
26 lines · 830 B Raw History
include!(concat!(env!("OUT_DIR"), "/methods.rs"));

use risc0_zkvm::Receipt;
pub use zkwid_zkvm_core::{Journal, ProveInput};

pub fn image_id() -> [u32; 8] {
    ZKWID_GUEST_ID
}

#[cfg(feature = "prove")]
pub fn prove(input: &ProveInput) -> anyhow::Result<Vec<u8>> {
    use risc0_zkvm::{ExecutorEnv, ProverOpts, default_prover};
    let mut builder = ExecutorEnv::builder();
    builder.write(input)?;
    #[cfg(feature = "cuda")]
    builder.segment_limit_po2(18);
    let env = builder.build()?;
    let info = default_prover().prove_with_opts(env, ZKWID_GUEST_ELF, &ProverOpts::succinct())?;
    Ok(bincode::serialize(&info.receipt)?)
}

pub fn verify(receipt: &[u8]) -> anyhow::Result<Journal> {
    let receipt: Receipt = bincode::deserialize(receipt)?;
    receipt.verify(image_id())?;
    Ok(receipt.journal.decode()?)
}