Skip to content

Commit 71d8f43

Browse files
committed
fix sp1 proof strategy
1 parent 81f67d5 commit 71d8f43

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

adapters/sp1/host/src/prover.rs

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
use sp1_sdk::ProverClient;
1+
use sp1_sdk::{network::FulfillmentStrategy, ProverClient};
22
#[cfg(feature = "remote-prover")]
3-
use sp1_sdk::{
4-
network::{FulfillmentStrategy, B256},
5-
SP1ProofMode,
6-
};
3+
use sp1_sdk::{network::B256, SP1ProofMode};
74
#[cfg(feature = "remote-prover")]
85
use zkaleido::ZkVmRemoteProver;
96
use zkaleido::{
@@ -52,6 +49,30 @@ impl ZkVmProver for SP1Host {
5249
std::env::set_var("SP1_PROVER", "mock");
5350
}
5451

52+
if std::env::var("SP1_PROVER").is_ok() {
53+
let prover_client = ProverClient::builder().network().build();
54+
let strategy = std::env::var("SP1_PROOF_STRATEGY")
55+
.ok()
56+
.and_then(|s| FulfillmentStrategy::from_str_name(&s.to_ascii_uppercase()))
57+
.unwrap_or(FulfillmentStrategy::Hosted);
58+
59+
let network_prover_builder = prover_client
60+
.prove(&self.proving_key, &prover_input)
61+
.strategy(strategy);
62+
63+
let network_prover = match proof_type {
64+
ProofType::Compressed => network_prover_builder.compressed(),
65+
ProofType::Core => network_prover_builder.core(),
66+
ProofType::Groth16 => network_prover_builder.groth16(),
67+
};
68+
69+
let proof_info = network_prover
70+
.run()
71+
.map_err(|e| ZkVmError::ProofGenerationError(e.to_string()))?;
72+
73+
return Ok(proof_info.into());
74+
}
75+
5576
let client = ProverClient::from_env();
5677
let mut prover = client.prove(&self.proving_key, &prover_input);
5778

0 commit comments

Comments
 (0)