diff options
Diffstat (limited to 'zkvms/zkm/host')
| -rw-r--r-- | zkvms/zkm/host/Cargo.toml | 2 | ||||
| -rw-r--r-- | zkvms/zkm/host/src/main.rs | 16 |
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. |
