Skip to content

Commit

Permalink
Make aggregation-tests work.
Browse files Browse the repository at this point in the history
  • Loading branch information
silathdiir committed Jul 12, 2023
1 parent 682c46d commit 2c22756
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 81 deletions.
22 changes: 11 additions & 11 deletions Cargo.lock

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

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ members = [
]

[patch."https://github.com/privacy-scaling-explorations/halo2.git"]
halo2_proofs = { git = "https://github.com/scroll-tech/halo2.git", branch = "feat/disable_selector_compression" }
halo2_proofs = { git = "https://github.com/scroll-tech/halo2.git", branch = "develop" }
[patch."https://github.com/privacy-scaling-explorations/poseidon.git"]
poseidon = { git = "https://github.com/scroll-tech/poseidon.git", branch = "scroll-dev-0220" }
[patch."https://github.com/privacy-scaling-explorations/halo2wrong.git"]
Expand Down
10 changes: 5 additions & 5 deletions prover/src/aggregator/prover.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ impl Prover {
pub fn gen_agg_proof(
&mut self,
chunk_traces: Vec<Vec<BlockTrace>>,
output_dir: Option<&str>,
_output_dir: Option<&str>,
) -> Result<Proof> {
// Convert chunk traces to witness blocks.
let witness_blocks = chunk_traces
Expand All @@ -97,7 +97,7 @@ impl Prover {
.collect::<Result<Vec<_>>>()?;

// Generate compression wide snarks (layer-1).
set_var("VERIFY_CONFIG", "./configs/agg_layer1.config");
set_var("COMPRESSION_CONFIG", "./configs/agg_layer1.config");
let layer1_snarks = chunk_snarks
.into_iter()
.map(|snark| {
Expand All @@ -107,7 +107,7 @@ impl Prover {
.collect::<Result<Vec<_>>>()?;

// Generate compression thin snarks (layer-2).
set_var("VERIFY_CONFIG", "./configs/agg_layer2.config");
set_var("COMPRESSION_CONFIG", "./configs/agg_layer2.config");
let layer2_snarks: Vec<_> = layer1_snarks
.into_iter()
.map(|snark| {
Expand All @@ -117,7 +117,7 @@ impl Prover {
.collect::<Result<Vec<_>>>()?;

// Generate aggregation snark (layer-3).
set_var("VERIFY_CONFIG", "./configs/agg_layer3.config");
set_var("AGGREGATION_CONFIG", "./configs/agg_layer3.config");
let rng = gen_rng();
let layer3_snark = self.gen_agg_snark(
"agg_layer3",
Expand All @@ -128,7 +128,7 @@ impl Prover {
)?;

// Generate final compression snarks (layer-4).
set_var("VERIFY_CONFIG", "./configs/agg_layer4.config");
set_var("COMPRESSION_CONFIG", "./configs/agg_layer4.config");
let rng = gen_rng();
let layer4_snark =
self.gen_comp_snark("agg_layer4", false, *AGG_LAYER4_DEGREE, rng, layer3_snark)?;
Expand Down
2 changes: 1 addition & 1 deletion prover/src/aggregator/prover/chunk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ impl Prover {
None => {
let res = self.gen_chunk_snark::<SuperCircuit>(&witness_block);
if let (Some(_), Ok(snark)) = (output_dir, &res) {
write_snark(&file_path, &snark);
write_snark(&file_path, snark);
}

res
Expand Down
4 changes: 2 additions & 2 deletions prover/src/aggregator/prover/padding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ use anyhow::Result;
use snark_verifier_sdk::{gen_snark_shplonk, Snark};

impl Prover {
pub fn gen_padding_chunk_snark(&mut self, last_real_chunk_hash: &ChunkHash) -> Result<Snark> {
pub fn gen_padding_snark(&mut self, last_real_chunk_hash: &ChunkHash) -> Result<Snark> {
let chunk_hash = ChunkHash::dummy_chunk_hash(last_real_chunk_hash);
let circuit = DummyChunkHashCircuit::new(chunk_hash);

let (params, pk) = self.params_and_pk("padding_chunk", &circuit, *INNER_DEGREE)?;
let (params, pk) = self.params_and_pk("padding", &circuit, *INNER_DEGREE)?;
let snark = gen_snark_shplonk(params, pk, circuit, &mut gen_rng(), None::<String>);

Ok(snark)
Expand Down
75 changes: 38 additions & 37 deletions prover/src/test_util/aggregator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,37 +11,16 @@ use snark_verifier_sdk::Snark;
use std::{env::set_var, path::PathBuf};
use zkevm_circuits::evm_circuit::witness::Block;

pub fn load_or_gen_agg_snark(
output_dir: &str,
id: &str,
degree: u32,
prover: &mut Prover,
real_chunk_hashes: &[ChunkHash],
real_and_padding_snarks: &[Snark],
) -> Snark {
set_var("AGGREGATION_CONFIG", format!("./configs/{id}.config"));
let file_path = format!("{output_dir}/{id}_snark.json");

load_snark(&file_path).unwrap().unwrap_or_else(|| {
let rng = gen_rng();
let snark = prover
.gen_agg_snark(id, degree, rng, real_chunk_hashes, real_and_padding_snarks)
.unwrap();
write_snark(&file_path, &snark);

snark
})
}

pub fn gen_comp_evm_proof(
output_dir: &str,
cfg: &str,
id: &str,
is_fresh: bool,
degree: u32,
prover: &mut Prover,
prev_snark: Snark,
) -> Proof {
set_var("COMPRESSION_CONFIG", format!("./configs/{id}.config"));
set_var("COMPRESSION_CONFIG", format!("./configs/{cfg}.config"));

let rng = gen_rng();
let proof = prover
Expand All @@ -52,59 +31,81 @@ pub fn gen_comp_evm_proof(
proof
}

pub fn load_or_gen_comp_snark(
pub fn load_or_gen_agg_snark(
output_dir: &str,
cfg: &str,
id: &str,
is_fresh: bool,
degree: u32,
prover: &mut Prover,
prev_snark: Snark,
real_chunk_hashes: &[ChunkHash],
real_and_padding_snarks: &[Snark],
) -> Snark {
set_var("COMPRESSION_CONFIG", format!("./configs/{id}.config"));
let file_path = format!("{output_dir}/{id}_snark.json");
set_var("AGGREGATION_CONFIG", format!("./configs/{cfg}.config"));
let file_path = format!("{output_dir}/agg_snark_{id}.json");

load_snark(&file_path).unwrap().unwrap_or_else(|| {
let rng = gen_rng();
let snark = prover
.gen_comp_snark(id, is_fresh, degree, rng, prev_snark)
.gen_agg_snark(id, degree, rng, real_chunk_hashes, real_and_padding_snarks)
.unwrap();
write_snark(&file_path, &snark);

snark
})
}

pub fn load_or_gen_padding_chunk_snark(
pub fn load_or_gen_chunk_snark(
output_dir: &str,
id: &str,
prover: &mut Prover,
last_real_chunk_hash: &ChunkHash,
witness_block: Block<Fr>,
) -> Snark {
let file_path = format!("{output_dir}/{id}_chunk_snark.json");
let file_path = format!("{output_dir}/chunk_snark_{id}.json");

load_snark(&file_path).unwrap().unwrap_or_else(|| {
let snark = prover
.gen_padding_chunk_snark(last_real_chunk_hash)
.gen_chunk_snark::<SuperCircuit>(&witness_block)
.unwrap();
write_snark(&file_path, &snark);

snark
})
}
pub fn load_or_gen_real_chunk_snark(
pub fn load_or_gen_comp_snark(
output_dir: &str,
cfg: &str,
id: &str,
is_fresh: bool,
degree: u32,
prover: &mut Prover,
witness_block: Block<Fr>,
prev_snark: Snark,
) -> Snark {
let file_path = format!("{output_dir}/{id}_chunk_snark.json");
set_var("COMPRESSION_CONFIG", format!("./configs/{cfg}.config"));
let file_path = format!("{output_dir}/comp_snark_{id}.json");

load_snark(&file_path).unwrap().unwrap_or_else(|| {
let rng = gen_rng();
let snark = prover
.gen_chunk_snark::<SuperCircuit>(&witness_block)
.gen_comp_snark(id, is_fresh, degree, rng, prev_snark)
.unwrap();
write_snark(&file_path, &snark);

snark
})
}

pub fn load_or_gen_padding_snark(
output_dir: &str,
id: &str,
prover: &mut Prover,
last_real_chunk_hash: &ChunkHash,
) -> Snark {
let file_path = format!("{output_dir}/padding_snark_{id}.json");

load_snark(&file_path).unwrap().unwrap_or_else(|| {
let snark = prover.gen_padding_snark(last_real_chunk_hash).unwrap();
write_snark(&file_path, &snark);

snark
})
}
Loading

0 comments on commit 2c22756

Please sign in to comment.