diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-01-17 17:08:11 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-01-17 17:08:11 +0200 |
| commit | ef57244d034b714709bb566c16819d54e3d33d6b (patch) | |
| tree | 2463dfbcb3658b79405de81d0260a7e553818750 /zkvms/jolt/host | |
| parent | 6874b8cbd027da0e1c06eb36b218bd6868660358 (diff) | |
| download | zkVMs-benchmarks-ef57244d034b714709bb566c16819d54e3d33d6b.tar zkVMs-benchmarks-ef57244d034b714709bb566c16819d54e3d33d6b.tar.gz zkVMs-benchmarks-ef57244d034b714709bb566c16819d54e3d33d6b.zip | |
feat(zkvms): Add jolt host
It expects certain custom funcitonality from guest
Diffstat (limited to 'zkvms/jolt/host')
| -rw-r--r-- | zkvms/jolt/host/Cargo.toml | 14 | ||||
| -rw-r--r-- | zkvms/jolt/host/src/main.rs | 23 |
2 files changed, 37 insertions, 0 deletions
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<Vec<bool>>, u32, Vec<Vec<u32>>); + +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); + }, + } +} |
