aboutsummaryrefslogtreecommitdiff
path: root/zkvms/zkm/host
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-03-21 13:01:52 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-04-04 11:03:00 +0300
commitc7a0a23f5c6dfacc933526d02e8da59384898758 (patch)
treeeb1793a1067a839040b05db23936b5ff42b7a046 /zkvms/zkm/host
parent2c82f0faf8371c9da8c9c16f69eb935addd5c76b (diff)
downloadzkVMs-benchmarks-c7a0a23f5c6dfacc933526d02e8da59384898758.tar
zkVMs-benchmarks-c7a0a23f5c6dfacc933526d02e8da59384898758.tar.gz
zkVMs-benchmarks-c7a0a23f5c6dfacc933526d02e8da59384898758.zip
feat(zkvms/zkm): Remove SDK override, Go lib build, update SDK usage
Update SDK usage, according to their new methods. ZKM moved their Go library to the zkVM repo. Their updated SDK also don't require the patch.
Diffstat (limited to 'zkvms/zkm/host')
-rw-r--r--zkvms/zkm/host/Cargo.toml2
-rw-r--r--zkvms/zkm/host/src/main.rs16
2 files changed, 10 insertions, 8 deletions
diff --git a/zkvms/zkm/host/Cargo.toml b/zkvms/zkm/host/Cargo.toml
index 0b45ccb..dce7bd6 100644
--- a/zkvms/zkm/host/Cargo.toml
+++ b/zkvms/zkm/host/Cargo.toml
@@ -5,6 +5,7 @@ edition = "2021"
[dependencies]
zkm-sdk = { git = "https://github.com/zkMIPS/zkm-project-template", features = ["snark"] }
+zkm-recursion = { git = "https://github.com/zkMIPS/zkm", branch = "main", default-features = false }
bincode = "1.3.3"
tokio = { version = "1.21.0", features = ["macros", "rt-multi-thread", "signal"] }
anyhow = "1.0.75"
@@ -14,3 +15,4 @@ zkvms_host_io = { path = "../../../zkvms_host_io" }
[patch."https://github.com/zkMIPS/zkm"]
zkm-emulator = { path = "/nix/store/71c0b7qyjy9zbaa5gkz5qcxpz46i0h0r-zkm-unstable-2025-03-11/emulator" }
zkm-prover = { path = "/nix/store/71c0b7qyjy9zbaa5gkz5qcxpz46i0h0r-zkm-unstable-2025-03-11/prover" }
+zkm-recursion = { path = "/nix/store/71c0b7qyjy9zbaa5gkz5qcxpz46i0h0r-zkm-unstable-2025-03-11/recursion" }
diff --git a/zkvms/zkm/host/src/main.rs b/zkvms/zkm/host/src/main.rs
index db1a5cb..f608746 100644
--- a/zkvms/zkm/host/src/main.rs
+++ b/zkvms/zkm/host/src/main.rs
@@ -12,13 +12,9 @@ use zkvms_host_io::{
};
async fn setup(
- prover_client: &mut ProverClient,
- prover_input: &mut ProverInput,
client_cfg: &mut ClientCfg,
) {
- let generation = prover_client
- .setup_and_generate_sol_verifier(&client_cfg.zkm_prover, &client_cfg.vk_path, &prover_input)
- .await;
+ let generation = zkm_recursion::groth16_setup(&client_cfg.vk_path);
if let Err(e) = generation {
panic!("Failed setup! Error: {e}");
@@ -55,7 +51,7 @@ async fn prove(
let prover_result = get_proof(prover_client, prover_input).await;
prover_client
- .process_proof_results(&prover_result, &prover_input, &proof_results_path, "local")
+ .process_proof_results(&prover_result, &prover_input, &proof_results_path)
.expect("process proof results error");
}
@@ -73,7 +69,11 @@ async fn main() -> Result<()> {
let proof_results_path = run_info.env_or("PROOF_RESULTS_PATH", "/tmp/contracts");
let vk_path = run_info.env_or("VERIFYING_KEY_PATH", "/tmp/input");
- let mut client_config = ClientCfg::new("local".to_string(), vk_path.to_owned());
+ let mut client_config = ClientCfg {
+ zkm_prover_type: "local".to_string(),
+ vk_path: vk_path.to_owned(),
+ ..Default::default()
+ };
let mut prover_client = ProverClient::new(&client_config).await;
@@ -96,7 +96,7 @@ async fn main() -> Result<()> {
};
let start = Instant::now();
- setup(&mut prover_client, &mut prover_input, &mut client_config).await;
+ setup(&mut client_config).await;
match run_info.run_type {
// only excute the guest program without generating the proof.