Skip to content

Commit 92cad41

Browse files
committed
refactor(stm): Share the srs cache across all test for given degree
1 parent 4083acf commit 92cad41

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

mithril-stm/src/proof_system/ivc_halo2_snark/prover_setup.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,17 @@ impl IvcSnarkProverSetup {
185185
let parameters_bytes = parameters.to_bytes()?;
186186
let depth_bytes = merkle_tree_depth.to_le_bytes();
187187
let seed_bytes = UNSAFE_SRS_SEED.to_le_bytes();
188-
let cache = FileMutex::for_shared_cache(
188+
189+
// The unsafe SRS depends only on its degree and seed, never on the circuit parameters, so it
190+
// is cached independently of them and shared by every parameter set that needs the same degree
191+
// (`TrustedSetupProvider::with_unsafe_srs` itself nests its file by degree under this directory).
192+
let srs_cache = FileMutex::for_shared_cache("unsafe-srs", &[&seed_bytes]);
193+
let srs_directory = srs_cache.directory().to_path_buf();
194+
let _srs_cache_lock = srs_cache.lock()?;
195+
let trusted_setup_provider =
196+
TrustedSetupProvider::with_unsafe_srs(&srs_directory, unsafe_srs_degree);
197+
198+
let key_cache = FileMutex::for_shared_cache(
189199
"ivc-setup",
190200
&[
191201
NON_RECURSIVE_CIRCUIT_VERIFICATION_KEY_FOR_PRODUCTION,
@@ -195,12 +205,10 @@ impl IvcSnarkProverSetup {
195205
&seed_bytes,
196206
],
197207
);
198-
let cache_directory = cache.directory().to_path_buf();
208+
let cache_directory = key_cache.directory().to_path_buf();
199209
// Serialize cold-start keygen across the parallel slow-test processes.
200-
let _key_cache_lock = cache.lock()?;
210+
let _key_cache_lock = key_cache.lock()?;
201211

202-
let trusted_setup_provider =
203-
TrustedSetupProvider::with_unsafe_srs(&cache_directory, unsafe_srs_degree);
204212
let certificate_provider = KeyProvider::new(
205213
cache_directory.join("certificate"),
206214
"non-recursive",

0 commit comments

Comments
 (0)