- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
3.5 KiB
3.5 KiB
Inmutabilidad
Versión: 1.0
Estado: Definición
Principio
┌─────────────────────────────────────────────────────────────────┐
│ │
│ Los datos de entrada y salida nunca se modifican. │
│ La trazabilidad siempre es posible. │
│ │
└─────────────────────────────────────────────────────────────────┘
Componentes Inmutables
| Componente | Mutabilidad | Eliminación |
|---|---|---|
| Secretaría (Clara/Margaret) | Inmutable | Prohibida |
| Contable (Feldman) | Inmutable | Prohibida |
Componentes Editables
| Componente | Mutabilidad | Eliminación |
|---|---|---|
| Producción (Alfred/Jared) | Editable | Permitida |
| Administración (Mason) | Editable | Siempre (tras consolidar) |
Cadena de Hashes
Encadenamiento
Bloque 1 Bloque 2 Bloque 3
┌────────────┐ ┌────────────┐ ┌────────────┐
│h_bloque: A │──────►│hash_prev: A│──────►│hash_prev: B│
│content: X │ │h_bloque: B │ │h_bloque: C │
│ │ │content: Y │ │content: Z │
└────────────┘ └────────────┘ └────────────┘
Verificación
def verificar_cadena_completa():
bloques = obtener_todos_bloques_ordenados()
for i, bloque in enumerate(bloques):
# Verificar hash de contenido
if not verificar_integridad(bloque):
return False, f"Integridad fallida en bloque {i}"
# Verificar encadenamiento
if i > 0:
if bloque.hash_previo != bloques[i-1].h_bloque:
return False, f"Encadenamiento roto en bloque {i}"
return True, "Cadena válida"
Reglas de Validación
| Regla | Nombre | Descripción |
|---|---|---|
| M-001 | Hash único | h_bloque no existe previamente |
| M-002 | Encadenamiento | hash_previo apunta a bloque existente |
| M-003 | Integridad | hash_contenido = SHA-256(contenido) |
Trazabilidad
Cualquier registro en Feldman puede rastrearse hasta Secretaría:
Bloque (Feldman)
│
└── h_entrada ──► Contenedor (Secretaría)
│
├── timestamp
├── origen
├── usuario
└── archivos_hashes ──► R2
Auditoría
Sentinel verifica periódicamente:
| Modo | Frecuencia | Verificación |
|---|---|---|
| LIGHT | 5 min | Últimos bloques |
| DEEP | 1 hora | Cadena completa |
Blockchain Ready
La estructura de bloques encadenados está preparada para:
- Publicación en blockchain (Polygon)
- Merkle tree para verificación
- Smart contracts para sellado
Estado: Preparado pero no implementado.