DOCUMENTACIÓN / CONTRATO EXPERIMENTAL 0.2
Contrato experimental 0.2
Estado de ejecución
24 PASS · 0 FAIL · 0 ERROR · 0 BLOCKED. Repetición #9 correcta: 23 comprobaciones de fase 0.2 y un control, más 17 testigos iniciales y 7 comprobaciones del controlador. La ejecución #8 conserva un ERROR A04 por carrera de limpieza; la corrección está documentada y probada. Las garantías completas y el enlace con SV permanecen abiertos. La mención a candidato corresponde al estado de entrada del documento. Consultar resultados por testigo.
Fecha: 6 de septiembre de 2026. Estado de entrada: candidato implementado pendiente de ejecución. Sede: laboratorio-de-infraestructura-SV/, rama lab/infraestructura-sv-2026-09-06 del repositorio privado SV-matematica-semantica-cuaternaria.
1. Identidad, precedente y alcance
Sucesor experimental del contrato 0.1. Conserva íntegros el prototipo anterior, los registros 000–006 y el incumplimiento A05 documentado en registro 005, corte a70998393c0d8194ad9d828639f7cc46eda6d5d1. La fuente nueva reside en prototipo-v02/; sus comprobadores, en herramientas/fase02.py.
Se aplica el reparto de responsabilidades de los Pilares y restricciones de diseño, §§2, 4–7 y 10, y del acta de arquitectura de software del mismo corte; registros RETP-2026-072/073. Las elecciones concretas de bus, frontera, anfitrión e integración siguen abiertas. Esta realización no modifica ese reparto ni demuestra propiedades del núcleo.
Objeto: probar transporte subordinado, compromiso de una fila SQLite, control local independiente del bus y límites materiales acotados. No contiene sv_core, IR, álgebra, células de dominio, agentes materiales ni consejo de IA. Todas las entradas y credenciales son sintéticas. La versión 2 del mensaje no es una versión de ABI SV.
2. Componentes y autoridad
| Componente | Realización | Poder y límite |
|---|---|---|
| Cliente de datos | Proceso Rust; clave de firma de datos | Sella una petición experimental. No firma control válido. No demuestra consentimiento humano. |
| Bus | Proceso Rust con UID nobody y no-new-privs | Transporta bytes cifrados; puede alterarlos, descartarlos, repetirlos o bloquearlos. No posee claves ni estado protegido. |
| Receptor de datos | TCP local; cuatro atenciones simultáneas | Verifica sobre y firma; aplica contrato y precondiciones; compromete en SQLite. |
| Receptor de control | Socket Unix bajo directorio 0700 y socket 0600; dos atenciones | Comparte el estado del receptor; exige firma distinta. Consulta, cancela o revoca. Es local al equipo receptor. |
| Controlador de ensayo | Python y credenciales ficticias | Prepara entradas, provoca fallos y consulta SQLite independientemente del bus. Pertenece al perímetro confiable. |
El control separado es una hipótesis arquitectónica sometida a prueba, no una garantía ya adquirida. No establece gestión de claves por participante, control remoto, separación respecto de root, kernel o hipervisor, ni independencia frente a una caída total del receptor. El mismo fallo del sistema operativo o del almacenamiento puede afectar a ambos planos.
3. Mensajes y ligaduras
Request contiene exactamente version=2, target=synthetic-ledger, id no vacío de hasta 100 bytes y una operation de variante cerrada. Campos extra y duplicados se rechazan por deserialización estricta.
| Variante | Campos propios | Canal y firma |
|---|---|---|
effect | revision, effect de hasta 65.536 bytes | TCP; clave de datos |
cancel | request_id, request_digest de 32 bytes | Socket local; clave de control |
status | request_id, request_digest de 32 bytes | Socket local; clave de control |
revoke | Ninguno | Socket local; clave de control |
La huella del sujeto es SHA-256 de la serialización tipada de la petición de efecto completa. Incluye versión, destino, identidad, revisión y contenido. La firma Ed25519 cubre la petición completa con contexto exclusivo de versión 2. AES-256-GCM cifra petición y respuesta con contextos AAD diferentes; conserva el modelo criptográfico experimental y las dependencias de 0.1. Un recibo firmado se liga a la huella de la petición que responde, incluida una petición de control.
La serialización tipada del protocolo no acredita la serialización canónica SV. El cifrado usa nonces aleatorios; no se exige igualdad de bytes del transporte cifrado ni se introduce aleatoriedad en una semántica nuclear.
4. Estados observables y transacciones
| Situación | Respuesta auténtica | Efecto permitido |
|---|---|---|
| Petición de efecto válida, revisión coincidente y capacidad | COMMITTED | Una fila y avance de revisión dentro de la misma transacción |
| Mismo identificador y mismo contenido ya comprometidos | ALREADY_COMMITTED | Ninguno nuevo |
| Identificador comprometido con contenido distinto | ID_CONFLICT | Ninguno |
| Revisión distinta de la vigente | REVISION_CONFLICT | Ninguno |
| Cancelación del sujeto exacto anterior al compromiso | CANCELLED | Se conserva una marca de cancelación; su posterior entrega no ejecuta el efecto |
| Cancelación del sujeto exacto posterior al compromiso | ALREADY_COMMITTED | No revierte ni borra el efecto |
| Consulta sin efecto ni cancelación del sujeto exacto | NOT_FOUND | Ninguno; no promete que una entrega futura no ocurra |
| Revocación global de esta instalación ficticia | REVOKED | Impide nuevas admisiones de efectos; no borra los anteriores |
| Capacidad de registros agotada | LIMIT | Ninguno nuevo; reintentos de estados existentes siguen consultables |
| Transacción de escritura no obtenida durante 250 ms | BUSY, revisión ausente | No se declara cancelación ni compromiso |
| Sin recibo completo y verificado | Estado desconocido para el cliente | No equivale a éxito, cancelación, U o ausencia de efecto |
La marca de cancelación se liga al par identificador–huella, incluso si todavía no llegó la petición. Cancelar otra huella del mismo identificador no cancela el contenido legítimo. La autoridad de control puede reservar hasta 64 marcas en esta instalación; no se presume un régimen de gobierno real.
Deduplicación, comprobación de revisión y revocación, consulta de cancelación, efecto y avance de revisión se resuelven con transacción SQLite IMMEDIATE, WAL y synchronous=FULL. El compromiso de esa transacción es el punto de orden material del ensayo. Una operación posterior no invalida retrospectivamente una anterior. La revocación tiene precedencia sobre la respuesta a entregas de efecto; la consulta de control conserva visibilidad del efecto ya registrado.
Las barreras before-tx y before-commit existen únicamente en variantes de ensayo declaradas, bajo el directorio protegido. La primera ocurre después de verificar la firma; la segunda, dentro de la transacción y antes del compromiso. Expiran a los cinco segundos y no pueden activarse mediante el mensaje. Permiten observar carreras concretas; no constituyen causalidad general ni rendimiento ordinario.
5. Plazos y consumo
- Plazo de E/S: dos segundos desde la admisión de la conexión. Cada lectura y escritura recibe sólo el tiempo restante. En el bus, conectar al receptor y devolver la respuesta comparten el mismo plazo.
- Un vencimiento de E/S no cancela por sí solo un efecto. Si se perdió el recibo, procede consulta o cancelación explícita. No se promete ejecución de una orden de control que todavía no haya llegado al receptor.
- Límite por mensaje: 1 MiB. Cuatro atenciones de datos por proceso bus/receptor y dos de control. La conexión excedente se cierra sin recibo; el cliente no puede atribuirle una causa autenticada. Las colas del sistema operativo no quedan sustituidas por estos contadores.
- Máximo de 64 efectos y 64 marcas de cancelación. No hay borrado automático ni desalojo que pueda reactivar peticiones antiguas. La instalación se detiene para nuevos registros cuando alcanza el límite correspondiente.
- El bus conserva como máximo 16 peticiones y 16 respuestas de captura por arranque. El registro de observación emite un máximo de 2.048 líneas ordinarias y una indicación de límite. El corpus completo del ensayo se conserva separadamente por el controlador.
- Estas cotas no acreditan cuota de CPU, volumen físico total de SQLite/WAL, equidad bajo carga sostenida, límite universal de RAM o resistencia a saturación del sistema operativo. Esas obligaciones permanecen pendientes.
Criterios físicos de esta tanda: recibo legítimo autenticado en no más de dos segundos junto a una conexión lenta; cuatro lectores sin completar cerrados en no más de 2,5 segundos observados desde su apertura, incluyendo margen de planificación externo de 0,5 segundos. No son un SLO de producción ni una tolerancia de reproducción semántica.
6. Oráculos y aceptación
La primera tanda de 17 testigos vuelve a ejecutarse sobre 0.1. NA05-baseline exige que el nuevo criterio positivo detecte en ese binario el incumplimiento conocido; un PASS del control significa defecto detectado y conserva observed_compliance=FAIL.
Un PASS de A05-positive exige conjuntamente recibo verificado, estado COMMITTED, tiempo dentro del límite, exactamente un efecto independiente y reintento ALREADY_COMMITTED. La mera ausencia del patrón anterior no basta.
La matriz MAPA_PROTOTIPO_0_2.md vincula obligaciones y casos. Todos deben producir su resultado esperado; FAIL, ERROR, ausencia de ejecución y bloqueo no cuentan como superación. Una construcción correcta tampoco acredita seguridad. Los resultados finales se incorporan con su propio registro, sin modificar el 005.
7. Dependencias y terceros
Servicios, API remotas y conectores externos requeridos durante la ejecución del prototipo: cero. Datos viajan por TCP local; control por socket local; persistencia por SQLite incorporado. No se añade una dependencia Cargo respecto de 0.1.
Las siete dependencias directas conservadas cumplen funciones locales: aes-gcm (cifrado), ed25519-dalek (firma), rand (nonces y credenciales ficticias), sha2 (huellas), serde y serde_json (contrato estricto), rusqlite (transacción). Se fijan mediante Cargo.lock; no se confunden bibliotecas locales con servicios de terceros. La lista transitiva exacta y sus identidades residen en el archivo de bloqueo; fijarlas no constituye auditoría de su seguridad.
GitHub Actions, las descargas del compilador y el registro de paquetes son dependencias de construcción y ensayo en este entorno, no del funcionamiento del prototipo construido. Pages es la superficie documental. No se incorpora autenticación comercial, servicio de mensajería, base de datos remota, telemetría externa ni API de IA. La elección definitiva de componentes y licencias sigue pendiente para una distribución de producción.
8. Condición de salida de esta fase
La fase entrega contrato, fuentes, matriz de pruebas, ejecución identificada, evidencia preservada y proyección pública concordante. Su dictamen se limita a la realización y al adversario ensayados. Las tres garantías completas, la arquitectura definitiva, el contrato F, K2, la ABI y el cierre nuclear no se dan por resueltos por una tanda correcta.