Persist the SNARK test caches across CI runs
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 38/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- github-actions, rust
- Ambito
- build-system, ci-cd, cryptography, testing
Direzione di ricerca
Controlla prima la dipendenza da #3433, poi leggi il test job in .github/workflows/test-rust.yml e i lettori della cache in circuits/key_provider.rs e circuits/trusted_setup.rs. Confronta i percorsi duplicati della cache in proof_system/ivc_halo2_snark/prover_setup.rs e circuits/halo2_ivc/tests/common/generators/setup.rs. Il lavoro è completato quando una CI con cache calda ripristina in modo sicuro, le voci obsolete si autoriparano, solo le esecuzioni complete della suite lenta salvano cache potate e l’issue riporta il guadagno misurato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Why
Neither the keygen cache nor the SRS is persisted across CI runs (the toolchain-and-cache action only saves dependency artifacts through Swatinem/rust-cache), so every nightly and every slow PR leg starts cold.
What
Add an actions/cache layer for target/mithril-circuit-test-cache with a three-layer invalidation design: content-keyed directories for semantic staleness, a versions-scoped cache key for serialization format drift, and self-healing readers as backstop.
How
Paths are relative to mithril-stm/src/ unless they start with .github/.
- Add an
actions/cache/restorestep fortarget/mithril-circuit-test-cachein the test job of.github/workflows/test-rust.yml(next to thetoolchain-and-cachecomposite step), with an exact key folding a manual generation token and a hash of themidnight-*entries ofCargo.lock - Scope every
restore-keysprefix to that versions hash so amidnight-proofsupgrade (serialization format drift) can never restore stale bytes - Save with
actions/cache/saveonly from the runs that execute the full slow suite (theinclude-slow-tests: trueinvocation fromnightly-dispatcher.yml); PR runs stay restore-only - Make the readers self-healing: on deserialization failure,
KeyProvider::cache_stateandread_optional(circuits/key_provider.rs) andTrustedSetupProvider::get_trusted_setup_parameters(circuits/trusted_setup.rs) should delete the offending file and regenerate instead of failing the test - Prune fingerprint directories not touched by the current run before saving, so retired fingerprints do not accumulate in the archive
- Make one recursive verifying-key cache canonical for both the circuit tests and
IvcSnarkProverSetup::build_for_test_degree, with the prover path storing only the additional proving key: todayproof_system/ivc_halo2_snark/prover_setup.rsandcircuits/halo2_ivc/tests/common/generators/setup.rshold the same key under two protocols, becauseKeyProvider::verification_keytreats a missing proving key as a miss and regenerates the pair - Assess the gain (expected: removes the cold start from warm CI runs) and report it in the issue
Depends on #3433.
- Lingua principale
- Rust
- Stelle
- 155
- Fork
- 52
- Merge medio
- 2g 17h
- PR unite (30g)
- 37
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di IntersectMBO/mithril
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
IntersectMBO/mithril#1605 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
spike :satellite:
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
IntersectMBO/mithril#3701 ·
I maintainer di solito rispondono entro 2 giorni
-
Publish a DNSLink record of the immutable archives IPNS name in the Mithril networks DNS zonesForse già presa @jpraynaud l’ha presa 2 giorni fa. Apertafeature :rocket:
IntersectMBO/mithril#3700 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
feature :rocket:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
IntersectMBO/mithril#3699 ·
I maintainer di solito rispondono entro 2 giorni
-
feature :rocket:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
IntersectMBO/mithril#3698 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di IntersectMBO/mithril
Issue simili
-
comp-formats
Difficoltà 2/5 Mezza giornata Idoneità per principianti 64/100
ClickHouse/ClickHouse#131694 ·
I maintainer di solito rispondono entro 1 giorno
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Copperpour/Copperpour#500 ·
I maintainer di solito rispondono entro 1 giorno
-
state:triage-needed
Difficoltà 1/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno