Skip to content

Commit 505988e

Browse files
committed
fix sp1 proof strategy
1 parent 81f67d5 commit 505988e

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

adapters/sp1/host/src/prover.rs

Lines changed: 30 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,34 @@ impl ZkVmProver for SP1Host {
5249
std::env::set_var("SP1_PROVER", "mock");
5350
}
5451

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

0 commit comments

Comments
 (0)