# NB01-F01 — criterios de cierre y dependencias pendientes

El adaptador, autenticación de bootstrap, transporte y floors tienen código y
tests locales. G04–G06 siguen parciales: no hay nodo Amoy instalado/sincronizado,
bootstrap real admitido ni prueba BFT verificada por XCIM.

| Brecha | Evidencia de esta entrega | Criterio de cierre |
|---|---|---|
| Admisión del receiver | Quórum/pin/roles/scope/epoch/vigencias y separación issuer/admin; siete schemas. | Receiver/operator identificados, pins admin reales, política aceptada fuera del email, firma de bootstrap real y procedimiento de rotación/recovery/migración revisados. |
| Red y checkpoint | Genesis block Bor separado de hash de archivos; floors/canonical hashes; trusted_until obligatorio. | Genesis/config/red Heimdall y checkpoints auténticos contrastados por fuentes independientes, bootstrap de consenso/state sync/weak subjectivity y parent Sepolia documentados. Ningún hash sintético o de explorer se instala como autoridad. |
| Provenance/runtime | Comparación de hashes de archivos y versiones RPC; commits/source review fijados. | Binarios/configs/snapshots verificados e instalación reproducible; demostrar que procesos usan esos archivos, validan ejecución/consenso y se conectan entre sí sin endpoints sustitutos. Licencias/supply chain y revisión externa. |
| Canales | Pin TLS antes de HTTP, loopback y allowlist de lecturas, sin redirects/proxy/gzip. | Gateway real autenticado y aislado, topología local/proceso/endpoints comprobada; TLS upstream o sockets con controles equivalentes. Versiones/pins y recuperación sin TOFU. |
| Finalidad y estado | API milestones a altura H, relaciones H/M/F/Q/B, parentHash, estado EIP-1898 y barreras implementadas sobre mocks. | Mismo flujo contra Bor/Heimdall sincronizados en Amoy; demostrar altura REST, finalized, ancestry, canonicalidad/code/getters y fallos/reorg reales. No sólo response flags ni comparación de números. |
| Floors durables | SQLite/CAS/quarantine/restart probados, sin reset automático. | ACL/backup/antirrollback del host y supervisor, recuperación autenticada/latch tras fallo de persistencia y ensayos de pérdida/corrupción/disco/reinicio. Integración atómica con floors AS y SMTP/MX; SQLite solo no da antirollback físico. |
| Presupuestos/frescura | Máximos 2s/10s, bytes/calls/ancestry/headers/cache implementados y tests TLS/limits. | Medir cargas, poda, latencias, clocks y fallos reales; no positivo tardío. Ensayo propuesto de siete días con p99/máximos/fallos/costes/versiones y revocación/cero-eventos. |
| Integración y revisión | API de NodeView diferenciada del fixture AN01; sin PASS. | Verificador AN vivo de binding/C4/autoridad/permiso/P1/DKIM, decisiones y replay al commit SMTP; segundo implementador/operadores y revisión seguridad/privacidad. |

## Cobertura ejecutada

- 62 casos de bootstrap/wire: dos positivos y 60 adversariales. Respuestas Bor/
  Heimdall y hashes de cadena son sintéticos, no observaciones Amoy.
- 12 estructurales de schemas. El common sólo define tipos; signed-bootstrap
  valida envelope y el checker valida el payload decodificado.
- Ocho checks de store: ausencia, CAS, regresión/conflicto, política distinta,
  cuarentena/reapertura y prohibición de sobrescribir inicialización.
- 18 checks de transporte: ronda completa contra mock TLS real, certificado
  incorrecto antes de HTTP, redirects/429, IDs/errores/JSON duplicado, límites
  de cuerpo/calls/bytes/deadline, timeout y métodos de envío/admin prohibidos.

Estas suites son del mismo proyecto. No acreditan consenso independiente,
finalidad Amoy ni interoperabilidad entre operadores. No se cuentan como cierre
de los 20 AN-T01–AN-T20 end-to-end. Avanzan localmente T08–T18 (bootstrap/red,
read consistency, ancestry, transporte, floors y freshness); T20 sigue externo.
AS01 97+37, AN01 34 EVM +2 context/65 artefactos/19 estructurales y P1 135 se
mantienen separados y sus ZIP históricos se preservan.

## Próxima activación concreta

Revisar el bootstrap candidato → provisionar receiver/admin/host y procesos
con hashes reales → aceptar checkpoints/expired trust policy → firmar/admitir
bootstrap y contexto AN → inicializar floors una sola vez → captura Amoy de
sólo lectura y sus fallos → integración/verificación/operación/review externas.
La plantilla con nulls no permite saltar ninguno de esos pasos.
