diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-01-13 13:07:24 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-01-13 13:07:24 +0200 |
| commit | 2162246e898305124a64d99f6b1c532a6c1fdb34 (patch) | |
| tree | 5cae4b13f3c63e2917129c3380829d545694f240 /zkvms | |
| parent | 90824374ab69f8ec2386903b07bb7a3678d9a762 (diff) | |
| download | zkVMs-benchmarks-2162246e898305124a64d99f6b1c532a6c1fdb34.tar zkVMs-benchmarks-2162246e898305124a64d99f6b1c532a6c1fdb34.tar.gz zkVMs-benchmarks-2162246e898305124a64d99f6b1c532a6c1fdb34.zip | |
feat(risc0): Implement (bring back) verification
Diffstat (limited to 'zkvms')
| -rw-r--r-- | zkvms/risc0/default.nix | 4 | ||||
| -rw-r--r-- | zkvms/risc0/host/Cargo.toml | 3 | ||||
| -rw-r--r-- | zkvms/risc0/host/src/main.rs | 15 |
3 files changed, 19 insertions, 3 deletions
diff --git a/zkvms/risc0/default.nix b/zkvms/risc0/default.nix index f9df4ae..7f1a5d2 100644 --- a/zkvms/risc0/default.nix +++ b/zkvms/risc0/default.nix @@ -45,6 +45,10 @@ in cd zkvms/risc0/guest cargo build --release --target riscv32im-risc0-zkvm-elf ln -s ../../../../zkvms/risc0/guest/target/riscv32im-risc0-zkvm-elf/release/guest ../host/src/guest + + # Used for verification + # https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/build/src/lib.rs#L192-L195 + export GUEST_ID="$(${metacraft-labs.risc0}/bin/r0vm --elf ../host/src/guest --id)" ''; hostBin = "host-risc0"; diff --git a/zkvms/risc0/host/Cargo.toml b/zkvms/risc0/host/Cargo.toml index de41bbc..5074af1 100644 --- a/zkvms/risc0/host/Cargo.toml +++ b/zkvms/risc0/host/Cargo.toml @@ -5,5 +5,8 @@ edition = "2021" [dependencies] risc0-zkvm = { path = "/nix/store/l1rxg23rrrdwi9cf6rc82mqavklvqc18-risc0-unstable-2024-12-21/risc0/zkvm" } +risc0-zkp = { path = "/nix/store/l1rxg23rrrdwi9cf6rc82mqavklvqc18-risc0-unstable-2024-12-21/risc0/zkp" } +# https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/zkp/Cargo.toml#L23 +hex = { version = "0.4.3", default-features = false, features = ["alloc"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] } serde = "1.0" diff --git a/zkvms/risc0/host/src/main.rs b/zkvms/risc0/host/src/main.rs index 653f11d..ec1eca3 100644 --- a/zkvms/risc0/host/src/main.rs +++ b/zkvms/risc0/host/src/main.rs @@ -1,6 +1,11 @@ use risc0_zkvm::{default_prover, default_executor, ExecutorEnv}; +use risc0_zkp::core::digest::Digest; +use hex::FromHex; +// https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/build/src/lib.rs#L280-L284 static HELLO_GUEST_ELF: &[u8] = include_bytes!("./guest"); +// https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/build/src/lib.rs#L255 +static HELLO_GUEST_ID: &str = env!("GUEST_ID"); fn main() { let args: Vec<String> = std::env::args().collect(); @@ -37,13 +42,17 @@ fn main() { println!("Output from journal: {:?}", journal); }, "verify" => { + // https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/build/src/lib.rs#L197-L199 + let guest_id: Digest = Digest::from_hex(HELLO_GUEST_ID).expect(""); + // https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/build/src/lib.rs#L278 + let prover = default_prover(); let receipt = prover.prove(env, HELLO_GUEST_ELF).unwrap().receipt; - // receipt.verify(HELLO_GUEST_ID).unwrap(); + receipt.verify(guest_id).unwrap(); - // let journal: bool = receipt.journal.decode().unwrap(); - // println!("Output from verify: {:?}", journal); + let journal: bool = receipt.journal.decode().unwrap(); + println!("Output from verify: {:?}", journal); }, _ => println!("No arguments provided! Expected execute, prove or verify!"), } |
