Persist the SNARK test caches across CI runs
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- github-actions, rust
- Área
- build-system, ci-cd, cryptography, testing
Línea de trabajo
Primero comprueba la dependencia de #3433; después, lee el trabajo de prueba en .github/workflows/test-rust.yml y los lectores de caché en circuits/key_provider.rs y circuits/trusted_setup.rs. Compara las rutas de caché duplicadas en proof_system/ivc_halo2_snark/prover_setup.rs y circuits/halo2_ivc/tests/common/generators/setup.rs. Se considera terminado cuando un CI con caché caliente restaura de forma segura, las entradas obsoletas se autocorrigen, solo las ejecuciones completas de la suite lenta guardan cachés podadas y el issue informa de la mejora medida.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 155
- Forks
- 52
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 37
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de IntersectMBO/mithril
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
IntersectMBO/mithril#1605 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
spike :satellite:
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
IntersectMBO/mithril#3701 ·
Los mantenedores suelen responder en 2 días
-
Publish a DNSLink record of the immutable archives IPNS name in the Mithril networks DNS zonesPosiblemente ocupada @jpraynaud la tomó hace 2 días. Abiertofeature :rocket:
IntersectMBO/mithril#3700 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
feature :rocket:
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
IntersectMBO/mithril#3699 ·
Los mantenedores suelen responder en 2 días
-
feature :rocket:
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
IntersectMBO/mithril#3698 ·
Los mantenedores suelen responder en 2 días
Todos los issues de IntersectMBO/mithril
Issues similares
-
[Bug]: opencode_go chat route drops reasoning_effort (even 'none'), while the same endpoint honors it via custom_llm_provider=openaiPosiblemente ocupada @arvindkumar-ship-it la tomó hoy. Abiertollm translation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
BerriAI/litellm#51871 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
comp-formats
Dificultad 2/5 Medio día Aptitud para principiantes 64/100
ClickHouse/ClickHouse#131694 ·
Los mantenedores suelen responder en 1 día
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
C-Bug S-Needs-Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
bevyengine/bevy#26558 ·
Los mantenedores suelen responder en 2 días