Skip to content

[Feat] Support "proxy" arch between coordinator and prover #1701

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ repository = "https://github.com/scroll-tech/scroll"
version = "4.5.8"

[workspace.dependencies]
scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", tag = "v0.5.0rc1", package = "scroll-zkvm-prover" }
scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", tag = "v0.5.0rc1", package = "scroll-zkvm-verifier" }
scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", tag = "v0.5.0rc1" }
scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "prune/prover", package = "scroll-zkvm-prover" }
scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "prune/prover", package = "scroll-zkvm-verifier" }
scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "prune/prover" }

sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "chore/openvm-1.3", features = ["scroll"] }
sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "chore/openvm-1.3" }
Expand Down
2 changes: 1 addition & 1 deletion crates/libzkp/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ pub use verifier::{TaskType, VerifierConfig};
mod utils;

use sbv_primitives::B256;
use scroll_zkvm_types::util::vec_as_base64;
use scroll_zkvm_types::utils::vec_as_base64;
use serde::{Deserialize, Serialize};
use serde_json::value::RawValue;
use std::path::Path;
Expand Down
2 changes: 1 addition & 1 deletion crates/libzkp/src/proofs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use scroll_zkvm_types::{
proof::{EvmProof, OpenVmEvmProof, ProofEnum, RootProof},
public_inputs::{ForkName, MultiVersionPublicInputs},
types_agg::{AggregationInput, ProgramCommitment},
util::vec_as_base64,
utils::vec_as_base64,
};
use serde::{de::DeserializeOwned, Deserialize, Serialize};

Expand Down
2 changes: 1 addition & 1 deletion crates/libzkp/src/tasks/batch/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub mod base64 {
pub mod point_eval {
use c_kzg;
use sbv_primitives::{types::eips::eip4844::BLS_MODULUS, B256 as H256, U256};
use scroll_zkvm_types::util::sha256_rv32;
use scroll_zkvm_types::utils::sha256_rv32;

/// Given the blob-envelope, translate it to a fixed size EIP-4844 blob.
///
Expand Down
6 changes: 3 additions & 3 deletions crates/prover-bin/src/zk_circuits_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ impl Phase {
let dir_cache = Some(workspace_path.join("cache"));
let path_app_exe = workspace_path.join("chunk/app.vmexe");
let path_app_config = workspace_path.join("chunk/openvm.toml");
let segment_len = Some((1 << 22) - 100);
let segment_len = (1 << 22) - 100;
ProverConfig {
dir_cache,
path_app_config,
Expand All @@ -40,7 +40,7 @@ impl Phase {
let dir_cache = Some(workspace_path.join("cache"));
let path_app_exe = workspace_path.join("batch/app.vmexe");
let path_app_config = workspace_path.join("batch/openvm.toml");
let segment_len = Some((1 << 22) - 100);
let segment_len = (1 << 22) - 100;
ProverConfig {
dir_cache,
path_app_config,
Expand All @@ -53,7 +53,7 @@ impl Phase {
pub fn phase_spec_bundle(&self, workspace_path: &Path) -> ProverConfig {
let dir_cache = Some(workspace_path.join("cache"));
let path_app_config = workspace_path.join("bundle/openvm.toml");
let segment_len = Some((1 << 22) - 100);
let segment_len = (1 << 22) - 100;
ProverConfig {
dir_cache,
path_app_config,
Expand Down
16 changes: 8 additions & 8 deletions crates/prover-bin/src/zk_circuits_handler/euclidV2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ use async_trait::async_trait;
use base64::{prelude::BASE64_STANDARD, Engine};
use eyre::Result;
use scroll_proving_sdk::prover::{proving_service::ProveRequest, ProofType};
use scroll_zkvm_prover_euclid::{BatchProver, BundleProverEuclidV2, ChunkProver};
use scroll_zkvm_prover_euclid::Prover;
use scroll_zkvm_types::ProvingTask;
use tokio::sync::Mutex;
pub struct EuclidV2Handler {
chunk_prover: ChunkProver,
batch_prover: BatchProver,
bundle_prover: BundleProverEuclidV2,
chunk_prover: Prover,
batch_prover: Prover,
bundle_prover: Prover,
cached_vks: HashMap<ProofType, OnceLock<String>>,
}

Expand All @@ -27,13 +27,13 @@ impl EuclidV2Handler {
let workspace_path = &cfg.workspace_path;
let p = Phase::EuclidV2;
let workspace_path = Path::new(workspace_path);
let chunk_prover = ChunkProver::setup(p.phase_spec_chunk(workspace_path))
let chunk_prover = Prover::setup(p.phase_spec_chunk(workspace_path), false, None)
.expect("Failed to setup chunk prover");

let batch_prover = BatchProver::setup(p.phase_spec_batch(workspace_path))
let batch_prover = Prover::setup(p.phase_spec_batch(workspace_path), false, None)
.expect("Failed to setup batch prover");

let bundle_prover = BundleProverEuclidV2::setup(p.phase_spec_bundle(workspace_path))
let bundle_prover = Prover::setup(p.phase_spec_bundle(workspace_path), true, None)
.expect("Failed to setup bundle prover");

let build_vk_cache = |proof_type: ProofType| {
Expand All @@ -59,7 +59,7 @@ impl EuclidV2Handler {

/// get_prover get the inner prover, later we would replace chunk/batch/bundle_prover with
/// universal prover, before that, use bundle_prover as the represent one
pub fn get_prover(&self) -> &BundleProverEuclidV2 {
pub fn get_prover(&self) -> &Prover {
&self.bundle_prover
}

Expand Down