From ef57244d034b714709bb566c16819d54e3d33d6b Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Fri, 17 Jan 2025 17:08:11 +0200 Subject: feat(zkvms): Add jolt host It expects certain custom funcitonality from guest --- zkvms/jolt/host/Cargo.toml | 14 ++++++++++++++ zkvms/jolt/host/src/main.rs | 23 +++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 zkvms/jolt/host/Cargo.toml create mode 100644 zkvms/jolt/host/src/main.rs (limited to 'zkvms/jolt/host') diff --git a/zkvms/jolt/host/Cargo.toml b/zkvms/jolt/host/Cargo.toml new file mode 100644 index 0000000..aae636f --- /dev/null +++ b/zkvms/jolt/host/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "host-jolt" +version = "0.1.0" +edition = "2021" + +[lib] +path = "/nix/store/q8ix3vj7dw6w57zhjc9wa38vicymql0g-jolt-unstable-2024-12-18/src/lib.rs" + +[dependencies] +jolt-sdk = { path = "/nix/store/q8ix3vj7dw6w57zhjc9wa38vicymql0g-jolt-unstable-2024-12-18/jolt-sdk", features = ["host"] } +jolt-core = { path = "/nix/store/q8ix3vj7dw6w57zhjc9wa38vicymql0g-jolt-unstable-2024-12-18/jolt-core" } + +guest = { path = "../guest" } +zkvms_host_io = { path = "../../../zkvms_host_io" } diff --git a/zkvms/jolt/host/src/main.rs b/zkvms/jolt/host/src/main.rs new file mode 100644 index 0000000..66d52a9 --- /dev/null +++ b/zkvms/jolt/host/src/main.rs @@ -0,0 +1,23 @@ +use zkvms_host_io::{read_args, RunType::{ Execute, Prove, Verify }}; + +type Input = (Vec>, u32, Vec>); + +pub fn main() { + let run_info = read_args(); + + let elf_path = std::env::var("ELF_PATH").expect("ELF PATH is missing"); + let (prove_guest, verify_guest) = guest::guest_closures(elf_path); + + match run_info.run_type { + Execute => unreachable!(), + Prove => { + let (output, _) = prove_guest(run_info.input); + println!("Prove output: {}", output); + }, + Verify => { + let (_, proof) = prove_guest(run_info.input); + let is_valid = verify_guest(proof); + println!("Verify is valid: {}", is_valid); + }, + } +} -- cgit v1.2.3