From 4bcfd4759183d7b5b61c5f3f4b3e9fd4653c5f50 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Wed, 5 Nov 2025 16:43:09 -0300 Subject: [PATCH 1/2] Improve zkVM execution and proving time logs --- crates/l2/prover/src/backend/risc0.rs | 9 +++++++-- crates/l2/prover/src/backend/sp1.rs | 15 ++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/crates/l2/prover/src/backend/risc0.rs b/crates/l2/prover/src/backend/risc0.rs index 5c7cbc7cf7c..3e9c7897074 100644 --- a/crates/l2/prover/src/backend/risc0.rs +++ b/crates/l2/prover/src/backend/risc0.rs @@ -43,7 +43,8 @@ pub fn execute(input: ProgramInput) -> Result<(), Box> { let _session_info = executor.execute(env, ZKVM_RISC0_PROGRAM_ELF)?; let elapsed = now.elapsed(); - info!("Successfully generated session info in {:.2?}", elapsed); + info!("Successfully executed RISC0 program in {elapsed:.2?}"); + Ok(()) } @@ -65,9 +66,13 @@ pub fn prove( ProofFormat::Compressed => ProverOpts::succinct(), ProofFormat::Groth16 => ProverOpts::groth16(), }; + + let now = Instant::now(); let prove_info = prover.prove_with_opts(env, ZKVM_RISC0_PROGRAM_ELF, &prover_opts)?; + let elapsed = now.elapsed(); + + info!("Successfully proved RISC0 program in {elapsed:.2?}"); - info!("Successfully generated execution receipt."); Ok(prove_info.receipt) } diff --git a/crates/l2/prover/src/backend/sp1.rs b/crates/l2/prover/src/backend/sp1.rs index 88097dd7b28..21402a79d0a 100644 --- a/crates/l2/prover/src/backend/sp1.rs +++ b/crates/l2/prover/src/backend/sp1.rs @@ -2,13 +2,13 @@ use ethrex_l2_common::{ calldata::Value, prover::{BatchProof, ProofBytes, ProofCalldata, ProofFormat, ProverType}, }; -use guest_program::{ZKVM_SP1_PROGRAM_ELF, input::ProgramInput}; +use guest_program::{input::ProgramInput, ZKVM_SP1_PROGRAM_ELF}; use rkyv::rancor::Error; use sp1_prover::components::CpuProverComponents; -#[cfg(not(feature = "gpu"))] -use sp1_sdk::CpuProver; #[cfg(feature = "gpu")] use sp1_sdk::cuda::builder::CudaProverBuilder; +#[cfg(not(feature = "gpu"))] +use sp1_sdk::CpuProver; use sp1_sdk::{ HashableKey, Prover, SP1ProofMode, SP1ProofWithPublicValues, SP1ProvingKey, SP1Stdin, SP1VerifyingKey, @@ -88,7 +88,8 @@ pub fn execute(input: ProgramInput) -> Result<(), Box> { setup.client.execute(ZKVM_SP1_PROGRAM_ELF, &stdin)?; let elapsed = now.elapsed(); - info!("Successfully executed SP1 program in {:.2?}", elapsed); + info!("Successfully executed SP1 program in {elapsed:.2?}"); + Ok(()) } @@ -107,9 +108,13 @@ pub fn prove( ProofFormat::Compressed => SP1ProofMode::Compressed, ProofFormat::Groth16 => SP1ProofMode::Groth16, }; + + let now = Instant::now(); let proof = setup.client.prove(&setup.pk, &stdin, format)?; + let elapsed = now.elapsed(); + + info!("Successfully proved SP1 program in {elapsed:.2?}"); - info!("Successfully generated SP1Proof."); Ok(ProveOutput::new(proof, setup.vk.clone())) } From c85f4aa00297664141969497021500165184ba4f Mon Sep 17 00:00:00 2001 From: ilitteri Date: Wed, 5 Nov 2025 17:46:28 -0300 Subject: [PATCH 2/2] cargo fmt --- crates/l2/prover/src/backend/sp1.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/l2/prover/src/backend/sp1.rs b/crates/l2/prover/src/backend/sp1.rs index 21402a79d0a..b336ffb9139 100644 --- a/crates/l2/prover/src/backend/sp1.rs +++ b/crates/l2/prover/src/backend/sp1.rs @@ -2,13 +2,13 @@ use ethrex_l2_common::{ calldata::Value, prover::{BatchProof, ProofBytes, ProofCalldata, ProofFormat, ProverType}, }; -use guest_program::{input::ProgramInput, ZKVM_SP1_PROGRAM_ELF}; +use guest_program::{ZKVM_SP1_PROGRAM_ELF, input::ProgramInput}; use rkyv::rancor::Error; use sp1_prover::components::CpuProverComponents; -#[cfg(feature = "gpu")] -use sp1_sdk::cuda::builder::CudaProverBuilder; #[cfg(not(feature = "gpu"))] use sp1_sdk::CpuProver; +#[cfg(feature = "gpu")] +use sp1_sdk::cuda::builder::CudaProverBuilder; use sp1_sdk::{ HashableKey, Prover, SP1ProofMode, SP1ProofWithPublicValues, SP1ProvingKey, SP1Stdin, SP1VerifyingKey,