No recovery path when a T1/T2 batch never reaches reveal quorum — GI stuck forever (BL-30)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- solidity
- Área
- blockchain
Línea de trabajo
Read Developer/BACK_LOG.md BL-30 and the T1/T2 finalization and GI lifecycle logic in DINTaskCoordinator.sol; the issue identifies the relevant functions and lines. First map how failed reveal quorum blocks finalization, slashing, and endGI, then design the abort or batch-skip decision points described here. Done means a reviewed recovery design that accounts for authorization, timing, and reward and slashing state.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
finalizeT1Aggregation/finalizeT2Aggregation (DINTaskCoordinator.sol) iterate every batch in the GI in a single transaction and revert the entire call if any one batch has too few reveals:
if (winningCID == bytes32(0)) revert TC_NoSubmissions();
if (submissionCount < T1_AGGREGATORS_PER_BATCH / 2 + 1)
revert TC_InsufficientSubmissions();
(finalizeT1Aggregation L979-980, finalizeT2Aggregation L1127-1128, verified against develop @ 740a613)
There is no per-batch retry, no owner override to skip a stuck batch, and no abort path for the GI as a whole: endGI requires GIstate == AggregatorsSlashed and startGI requires GIended/GenesisModelCreated — both unconditional, no bypass. I checked the full contract for any abort/skip/force/emergency function; none exists.
Reachability
This isn't an edge case — with the demo default of 3 aggregators per T1 batch and majority = 2, any 2 of 3 assigned aggregators simply not revealing (going offline, missing the window, or deliberately withholding — no collusion needed, no cost beyond the existing S1/S2 slash, which doesn't stop the GI) permanently bricks that batch, and therefore the whole GI, forever. DINTaskCoordinator/DINTaskAuditor are not upgradeable, so there is no patch-around once deployed. The model's reward pool and its validators' registration slots (see #223) stay locked with it.
Impact
This gap is already blocking other work, not just a standalone concern: BL-26's residual notes explicitly deferred a contract-side re-anchor cap on the batch-assignment seed "because a capped GI would be stuck forever" with no way to recover.
Suggested approach
Needs a GI-abort design (flagging the decision points, not prescribing an answer):
- Who may trigger it — model owner only? DIN-Representative as an emergency backstop?
- When — only after some minimum time/deadline past the batch's reveal window opening, so an impatient owner can't abort a GI that would've resolved fine?
- Where the reward pool and in-flight slashing state go on abort — forfeited? refunded pro-rata? rolled to the next GI?
- Whether it's a full abort (
GIendedearly) or a narrower "skip this batch, exclude it from T2" path
References
Developer/BACK_LOG.mdBL-30- PR #191 review (BL-26, the deferred re-anchor-cap decision this blocks)
- PR #204 review (
DINTaskCoordinator.md§10 No. 6)
- Lenguaje dominante
- Python
- Estrellas
- 4
- Forks
- 7
- Merge medio
- 3 d 58 min
- PR fusionados (30 d)
- 39
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 InfiniteZeroFoundation/DevNet
-
dincli: `task model-owner register-request --manifestCID` fails because the registry contract isn't initialisedPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
InfiniteZeroFoundation/DevNet#295 ·
Los mantenedores suelen responder en 1 día
-
ROADMAP.md: refresh "What is still open for P3" (several items were fixed in October)Posiblemente ocupada @umermjd11 la tomó hace 1 día. Abiertodocumentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
InfiniteZeroFoundation/DevNet#285 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
InfiniteZeroFoundation/DevNet#277 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
InfiniteZeroFoundation/DevNet#266 ·
Los mantenedores suelen responder en 1 día
-
Approved documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
InfiniteZeroFoundation/DevNet#248 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de InfiniteZeroFoundation/DevNet
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/agent-lightning#661 ·
Los mantenedores suelen responder en 2 días
-
area/profiles comp/cli P3 type/feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
NousResearch/hermes-agent#146372 ·
Los mantenedores suelen responder en 1 día
-
[BUG] OpenAI-compatible embedding model alias breaks embedder constructionPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
[oblt-aw][autodoc] Document obs-aw-automerge contract and fix automerge doc inconsistenciesPosiblemente ocupada @github-actions la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
GeoSeries scale and skew tests fail with pytest 9.2.0Posiblemente ocupada @jiayuasu la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día