Skip to content

Commit

Permalink
feat: Start using a new test harness interface without generics (#1378)
Browse files Browse the repository at this point in the history
## What ❔

* Start using the new version of the 1.4.2 test harness, that doesn't
export generics

## Why ❔

* This should improve the compilation speed.
  • Loading branch information
mm-zk committed Mar 7, 2024
1 parent 63f3ff8 commit 1e431a6
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 48 deletions.
6 changes: 3 additions & 3 deletions Cargo.lock

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

10 changes: 5 additions & 5 deletions prover/Cargo.lock

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

15 changes: 4 additions & 11 deletions prover/prover_fri/src/prover_job_processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,13 @@ use zksync_env_config::FromEnv;
use zksync_object_store::ObjectStore;
use zksync_prover_fri_types::{
circuit_definitions::{
aux_definitions::witness_oracle::VmWitnessOracle,
base_layer_proof_config,
boojum::{
cs::implementations::pow::NoPow, field::goldilocks::GoldilocksField, worker::Worker,
},
boojum::{cs::implementations::pow::NoPow, worker::Worker},
circuit_definitions::{
base_layer::{ZkSyncBaseLayerCircuit, ZkSyncBaseLayerProof},
recursion_layer::{ZkSyncRecursionLayerProof, ZkSyncRecursiveLayerCircuit},
},
recursion_layer_proof_config, ZkSyncDefaultRoundFunction,
recursion_layer_proof_config,
},
CircuitWrapper, FriProofWrapper, ProverJob, ProverServiceDataKey,
};
Expand Down Expand Up @@ -122,7 +119,7 @@ impl Prover {

fn prove_eip4844(
job_id: u32,
circuit: EIP4844Circuit<GoldilocksField, ZkSyncDefaultRoundFunction>,
circuit: EIP4844Circuit,
artifact: Arc<GoldilocksProverSetupData>,
) -> FriProofWrapper {
let worker = Worker::new();
Expand Down Expand Up @@ -195,11 +192,7 @@ impl Prover {

fn prove_base_layer(
job_id: u32,
circuit: ZkSyncBaseLayerCircuit<
GoldilocksField,
VmWitnessOracle<GoldilocksField>,
ZkSyncDefaultRoundFunction,
>,
circuit: ZkSyncBaseLayerCircuit,
_config: Arc<FriProverConfig>,
artifact: Arc<GoldilocksProverSetupData>,
) -> FriProofWrapper {
Expand Down
4 changes: 2 additions & 2 deletions prover/prover_fri/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,8 @@ pub fn verify_proof(
verify_recursion_layer_proof::<NoPow>(recursive_circuit, proof, vk),
recursive_circuit.numeric_circuit_type(),
),
CircuitWrapper::Eip4844(circuit) => (
verify_eip4844_proof::<NoPow>(circuit, proof, vk),
CircuitWrapper::Eip4844(_) => (
verify_eip4844_proof::<NoPow>(proof, vk),
ProverServiceDataKey::eip4844().circuit_id,
),
};
Expand Down
12 changes: 2 additions & 10 deletions prover/prover_fri_types/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ use std::env;

pub use circuit_definitions;
use circuit_definitions::{
aux_definitions::witness_oracle::VmWitnessOracle,
boojum::{cs::implementations::witness::WitnessVec, field::goldilocks::GoldilocksField},
circuit_definitions::{
base_layer::{ZkSyncBaseLayerCircuit, ZkSyncBaseLayerProof, ZkSyncBaseProof},
Expand All @@ -14,7 +13,6 @@ use circuit_definitions::{
zkevm_circuits::scheduler::{
aux::BaseLayerCircuitType, block_header::BlockAuxilaryOutputWitness,
},
ZkSyncDefaultRoundFunction,
};
use zksync_object_store::{serialize_using_bincode, Bucket, StoredObject};
use zksync_types::{basic_fri_types::AggregationRound, L1BatchNumber};
Expand All @@ -29,15 +27,9 @@ pub const EIP_4844_CIRCUIT_ID: u8 = 255;
#[derive(serde::Serialize, serde::Deserialize, Clone)]
#[allow(clippy::large_enum_variant)]
pub enum CircuitWrapper {
Base(
ZkSyncBaseLayerCircuit<
GoldilocksField,
VmWitnessOracle<GoldilocksField>,
ZkSyncDefaultRoundFunction,
>,
),
Base(ZkSyncBaseLayerCircuit),
Recursive(ZkSyncRecursiveLayerCircuit),
Eip4844(EIP4844Circuit<GoldilocksField, ZkSyncDefaultRoundFunction>),
Eip4844(EIP4844Circuit),
}

impl StoredObject for CircuitWrapper {
Expand Down
7 changes: 2 additions & 5 deletions prover/witness_generator/src/basic_circuits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ use zksync_prover_fri_types::{
boojum::{
field::goldilocks::{GoldilocksExt2, GoldilocksField},
gadgets::recursion::recursive_tree_hasher::CircuitGoldilocksPoseidon2Sponge,
implementations::poseidon2::Poseidon2Goldilocks,
},
zkevm_circuits::scheduler::{
block_header::BlockAuxilaryOutputWitness, input::SchedulerCircuitInstanceWitness,
Expand Down Expand Up @@ -66,10 +65,8 @@ use crate::{
},
};

type Eip4844Circuit = ZkSyncUniformCircuitInstance<
GoldilocksField,
EIP4844InstanceSynthesisFunction<GoldilocksField, Poseidon2Goldilocks>,
>;
type Eip4844Circuit =
ZkSyncUniformCircuitInstance<GoldilocksField, EIP4844InstanceSynthesisFunction>;

type Eip4844Witness = EIP4844OutputDataWitness<GoldilocksField>;

Expand Down
14 changes: 4 additions & 10 deletions prover/witness_generator/src/utils.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
use std::io::{BufWriter, Write as _};

use circuit_definitions::{
aux_definitions::witness_oracle::VmWitnessOracle,
circuit_definitions::{base_layer::ZkSyncBaseLayerCircuit, eip4844::EIP4844Circuit},
use circuit_definitions::circuit_definitions::{
base_layer::ZkSyncBaseLayerCircuit, eip4844::EIP4844Circuit,
};
use multivm::utils::get_used_bootloader_memory_bytes;
use once_cell::sync::Lazy;
Expand All @@ -20,7 +19,6 @@ use zksync_prover_fri_types::{
},
encodings::recursion_request::RecursionQueueSimulator,
zkevm_circuits::scheduler::input::SchedulerCircuitInstanceWitness,
ZkSyncDefaultRoundFunction,
},
keys::{AggregationsKey, ClosedFormInputKey, FriCircuitKey},
CircuitWrapper, FriProofWrapper, EIP_4844_CIRCUIT_ID,
Expand Down Expand Up @@ -119,11 +117,7 @@ impl StoredObject for SchedulerPartialInputWrapper {

pub async fn save_circuit(
block_number: L1BatchNumber,
circuit: ZkSyncBaseLayerCircuit<
GoldilocksField,
VmWitnessOracle<GoldilocksField>,
ZkSyncDefaultRoundFunction,
>,
circuit: ZkSyncBaseLayerCircuit,
sequence_number: usize,
object_store: &dyn ObjectStore,
) -> (u8, String) {
Expand All @@ -144,7 +138,7 @@ pub async fn save_circuit(

pub async fn save_eip_4844_circuit(
block_number: L1BatchNumber,
circuit: EIP4844Circuit<GoldilocksField, ZkSyncDefaultRoundFunction>,
circuit: EIP4844Circuit,
sequence_number: usize,
object_store: &dyn ObjectStore,
depth: u16,
Expand Down
2 changes: 0 additions & 2 deletions prover/witness_vector_generator/src/generator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,6 @@ impl WitnessVectorGenerator {
recursive_circuit.synthesis::<GoldilocksField>(&finalization_hints)
}
CircuitWrapper::Eip4844(circuit) => synthesis::<
_,
_,
_,
StCircuitResolver<GoldilocksField, <ProvingCSConfig as CSConfig>::ResolverConfig>,
>(circuit, &finalization_hints),
Expand Down

0 comments on commit 1e431a6

Please sign in to comment.