Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Revisit DKG timeout strategy and add test coverage

Abierto
#465 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
rust

Línea de trabajo

Empieza rastreando el manejo general de --timeout de la ejecución de DKG y el timeout de parsigex por intercambio, incluida la ruta DkgError::Timeout. Añade cobertura para un peer bloqueado o ausente y para una ejecución saludable con muchos validadores. Se considera terminado cuando ambas rutas son fiables y los presupuestos de timeout son coherentes sin abortos falsos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

The DKG timeout works differently from Charon. Charon splits the timeout per phase (conf.Timeout / 6); Pluto uses one overall timeout for the whole run, because our sync service runs across all phases and can't be cut per-phase (we tried — it killed healthy runs).

Two gaps come from this. A stuck peer is only caught after the full timeout (~60s) instead of one phase (~10s). And with many validators (untested) a healthy run takes longer and could hit the timeout and be killed by mistake — made worse by parsigex already using the full conf.timeout per exchange.

Works today: stuck peer aborts cleanly, and a small healthy cluster finishes fine. Not covered: many-validator runs, and there's no automated test for the timeout.

Benefit (The "Why")

A DKG should never hang forever on a stuck peer, but it also must never kill a healthy ceremony by mistake. Closing these gaps makes the timeout reliable for real clusters (many validators), gives faster failure detection, and protects it with an automated test.

Acceptance Criteria
  • A healthy DKG with many validators completes without a false timeout under the default --timeout.
  • The relationship between the overall timeout and the per-exchange parsigex timeout is consistent (one budget is not silently exceeded by the other).
  • A stuck/absent peer still aborts cleanly with DkgError::Timeout.
  • An automated test covers the overall timeout (stuck peer aborts) and the healthy path (no false timeout).
Lenguaje dominante
Rust
Estrellas
8
Forks
5
Merge medio
4 d 18 h
PR fusionados (30 d)
4

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de NethermindEth/pluto

Todos los issues de NethermindEth/pluto

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.