Archive: System v4 - Estado al 2024-12-24
This commit is contained in:
122
v4-archive/feldman/README.md
Normal file
122
v4-archive/feldman/README.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# FELDMAN
|
||||
|
||||

|
||||
|
||||
|
||||
**Registro consolidado - Sistema TZZR**
|
||||
|
||||
## Rol
|
||||
|
||||
Contable del sistema. Valida y archiva registros en bloques inmutables.
|
||||
|
||||
## Posición en el Flujo
|
||||
|
||||
```
|
||||
MASON ─────────────────┬──► FELDMAN
|
||||
│ │
|
||||
ALFRED/JARED (OK) ─────┘ │
|
||||
▼
|
||||
┌─────────────────────┐
|
||||
│ COLA (24h) │
|
||||
│ ○ ○ ○ ○ ○ │
|
||||
└─────────┬───────────┘
|
||||
│
|
||||
cada 24h
|
||||
│
|
||||
▼
|
||||
┌─────────────────────┐
|
||||
│ BLOQUE INMUTABLE │
|
||||
│ #1 → #2 → #3 → ... │
|
||||
└─────────────────────┘
|
||||
```
|
||||
|
||||
## Fases
|
||||
|
||||
### 1. Cola (24h)
|
||||
- Registros esperando consolidación
|
||||
- Usuario puede devolver a MASON
|
||||
- Configurable
|
||||
|
||||
### 2. Bloques
|
||||
- Registros inmutables
|
||||
- Hash encadenado
|
||||
- Preparado para blockchain
|
||||
|
||||
## Estructura de Bloque
|
||||
|
||||
```json
|
||||
{
|
||||
"numero": 127,
|
||||
"id": "sha256-bloque",
|
||||
"hash_anterior": "def456...",
|
||||
"merkle_root": "789abc...",
|
||||
"validado_at": "2025-12-22T00:00:00Z",
|
||||
"registros": [...],
|
||||
"cantidad": 45
|
||||
}
|
||||
```
|
||||
|
||||
## Estructura del Contenedor en FELDMAN
|
||||
|
||||
Cuando un registro se consolida, FELDMAN anade la seccion `bloque` al contenedor (ver [esquema completo](https://git.tzzr.me/tzzr/contratos-comunes/src/branch/main/architecture/06-contenedor-schema.md)):
|
||||
|
||||
```json
|
||||
{
|
||||
"bloque": {
|
||||
"id": "sha256-bloque",
|
||||
"numero": 127,
|
||||
"registro_hash": "sha256-este-registro",
|
||||
"merkle_proof": ["sha256-1", "sha256-2", "sha256-3"]
|
||||
},
|
||||
|
||||
"estado": {
|
||||
"actual": "en_feldman_bloque",
|
||||
"historial": [
|
||||
{"paso": "clara", "entrada": "...", "salida": "..."},
|
||||
{"paso": "mason", "entrada": "...", "salida": "..."},
|
||||
{"paso": "feldman_cola", "entrada": "...", "salida": "..."},
|
||||
{"paso": "feldman_bloque", "entrada": "...", "procesado_por": "feldman-service"}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Campos del bloque
|
||||
|
||||
| Campo | Tipo | Descripcion |
|
||||
|-------|------|-------------|
|
||||
| `id` | SHA-256 | Hash del bloque completo |
|
||||
| `numero` | Int | Numero secuencial del bloque |
|
||||
| `registro_hash` | SHA-256 | Hash de este registro especifico |
|
||||
| `merkle_proof` | Array | Prueba de inclusion en el arbol Merkle |
|
||||
|
||||
### Verificacion
|
||||
|
||||
Con `merkle_proof` se puede verificar que un registro pertenece a un bloque sin tener acceso a todos los registros del bloque.
|
||||
|
||||
```
|
||||
merkle_root
|
||||
│
|
||||
┌───────┴───────┐
|
||||
│ │
|
||||
hash_ab hash_cd
|
||||
│ │
|
||||
┌────┴────┐ ┌────┴────┐
|
||||
│ │ │ │
|
||||
reg_a reg_b reg_c reg_d
|
||||
```
|
||||
|
||||
### Inmutabilidad
|
||||
|
||||
- Una vez consolidado, el registro es **inmutable**
|
||||
- `estado.actual` cambia a `en_feldman_bloque`
|
||||
- La seccion `bloque` se anade y nunca cambia
|
||||
- El hash del registro se incluye en el arbol Merkle
|
||||
|
||||
## Arquitectura
|
||||
|
||||
Ver documentación completa en [contratos-comunes/architecture](https://git.tzzr.me/tzzr/contratos-comunes/src/branch/main/architecture/04-feldman.md)
|
||||
|
||||
---
|
||||
|
||||
*Componente del sistema TZZR*
|
||||
Reference in New Issue
Block a user