From 07c565962194606d873ca14681c51a1cba048ec3 Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Mon, 13 Jan 2025 10:45:08 +0200 Subject: feat: Generic build and install phases, which only compile instead of proving --- zkvms/risc0/default.nix | 18 ++++++++++++------ zkvms/risc0/host/src/main.rs | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) (limited to 'zkvms') diff --git a/zkvms/risc0/default.nix b/zkvms/risc0/default.nix index 42ebf8a..c491217 100644 --- a/zkvms/risc0/default.nix +++ b/zkvms/risc0/default.nix @@ -4,6 +4,7 @@ metacraft-labs, pkg-config, craneLib-default, + withZKVMPhases, }: let fs = lib.fileset; @@ -28,7 +29,7 @@ let craneLib = craneLib-default.overrideToolchain metacraft-labs.risc0; cargoArtifacts = craneLib.buildDepsOnly commonArgs; in - craneLib.buildPackage (commonArgs + craneLib.buildPackage (withZKVMPhases (commonArgs // { inherit cargoArtifacts; @@ -44,11 +45,16 @@ in ''; preBuild = '' - INPUTS="$PWD/Vertices-010.in" - export INPUTS - cd zkvms/risc0 - just prove + 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 + ''; + + hostBin = "host-risc0"; + + postInstall = '' + ln -s "${metacraft-labs.risc0}"/bin/r0vm "$out"/bin/r0vm ''; doCheck = false; - }) + })) diff --git a/zkvms/risc0/host/src/main.rs b/zkvms/risc0/host/src/main.rs index de5417c..653f11d 100644 --- a/zkvms/risc0/host/src/main.rs +++ b/zkvms/risc0/host/src/main.rs @@ -1,6 +1,6 @@ use risc0_zkvm::{default_prover, default_executor, ExecutorEnv}; -static HELLO_GUEST_ELF: &[u8] = include_bytes!("../../../../zkvms/risc0/guest/target/riscv32im-risc0-zkvm-elf/release/guest"); +static HELLO_GUEST_ELF: &[u8] = include_bytes!("./guest"); fn main() { let args: Vec = std::env::args().collect(); @@ -29,7 +29,7 @@ fn main() { let prover = default_prover(); // Produce a receipt by proving the specified ELF binary. - let receipt = prover.prove(env, HELLO_GUEST_ELF).unwrap().receipt; + let receipt = prover.prove(env, HELLO_GUEST_ELF).expect("Error occured").receipt; // Extract journal of receipt let journal: bool = receipt.journal.decode().unwrap(); -- cgit v1.2.3