Requisitos de infraestructura
Este documento especifica la infraestructura de nodo que debe desplegar un Network Access Provider (NAP) para participar en la ISBE Main Network. Se definen dos configuraciones: Ideal y Mínima. Ambas son configuraciones válidas de producción; la elección depende del nivel comercial del NAP, sus requisitos operativos y el hardware disponible.
1. Principios de arquitectura
- Todos los nodos se ejecutan como pods sobre k3s (Kubernetes) en un único servidor físico por red.
- Cada pod ejecuta un proceso Hyperledger Besu. Los roles se asignan por pod mediante flags de configuración de Besu.
- El stack cliente de ISBE (
node-manager, middleware, proxy) se ejecuta como pods adicionales en el mismo servidor y debe usarse sin modificar. - El Filtering Proxy embebido en
isbe-client proxyaplica el borrado lógico GDPR sobre todos los datos que entran a la cadena. No debe ser bypaseado. - El puerto 30303 TCP/UDP debe ser públicamente accesible desde internet únicamente en el nodo validador y el bootnode.
2. Comparativa de configuraciones
| Ideal | Mínima | |
|---|---|---|
| Pods | 4 (validador · bootnode · execution · archive) | 2 (validador+bootnode · execution) |
| Validador | Pod dedicado | Pod combinado |
| Boot node | Pod dedicado | Pod combinado |
| Execution | Pod dedicado | Pod dedicado |
| Archive | Pod dedicado | No incluido |
| RAM | 32 GB | 24 GB |
| CPU | 4–6 cores | 4 cores |
| Disco | 750 Gi NVMe | 320 Gi NVMe |
| Red | 1 Gbps | 1 Gbps |
| Historial completo de la cadena | Sí — nodo archive | No |
| Resiliencia operativa | Aislamiento completo por rol | Validador y boot comparten proceso |
| Recomendado para | Niveles Professional / Enterprise | Niveles Anchor / Standard, despliegue inicial |
3. Configuración Ideal
4 pods dedicados — validador · bootnode · execution · archive.
Cada rol de nodo se ejecuta en su propio pod Besu dedicado, proporcionando aislamiento operativo completo. El nodo archive almacena el historial completo de la cadena, habilitando trazabilidad total y capacidad de auditoría regulatoria. Recomendado para NAPs de nivel Professional y Enterprise.
3.1 Composición de nodos y memoria
| Pod / Nodo | RAM | Disco | Obligación / Notas |
|---|---|---|---|
| Validador | 4 Gi | 80 Gi | Obligatorio — participa en el consenso QBFT |
| Boot node | 4 Gi | 80 Gi | Obligatorio — descubrimiento de peers P2P, puerto 30303 externo |
| Execution | 4 Gi | 80 Gi | Obligatorio — endpoint RPC y API para clientes |
| Archive | 8 Gi | 200 Gi | Recomendado — historial completo de la cadena |
| SO + k3s | ~6 Gi | 100 Gi | — |
| Stack cliente ISBE | ~1.3 Gi | — | node-manager · middleware · proxy |
| Total RAM | ~27 Gi → provisionar 32 GB |
3.2 Resumen del servidor
| Recurso | Especificación |
|---|---|
| RAM — total | 32 GB |
| CPU | 4–6 cores |
| Disco — nodos | 80 Gi × 3 nodos + 200 Gi archive = 440 Gi |
| Disco — SO + otros | 100 Gi |
| Disco — total provisionado | 750 Gi NVMe |
| Red | 1 Gbps — puerto 30303 TCP/UDP públicamente accesible en validador y boot node |
| Imagen Besu | hyperledger/besu:26.1.0 |
4. Configuración Mínima
2 pods — validador+bootnode (combinado) · execution.
Los roles de validador y boot node se combinan en un único pod Besu. Esto reduce la huella del servidor manteniendo la participación completa en el consenso QBFT y el descubrimiento P2P. No incluye nodo archive. Adecuada para NAPs de nivel Anchor y Standard, y para despliegues iniciales en producción.
El pod combinado ejecuta un único proceso Besu con los roles VALIDATOR y BOOTNODE activos mediante flags de configuración. El puerto 30303 TCP/UDP debe ser accesible externamente en este pod. La asignación de 6 Gi de RAM contempla el estado combinado de ambos roles.
4.1 Composición de nodos y memoria
| Pod / Nodo | RAM | Disco | Obligación / Notas |
|---|---|---|---|
| Validador + Boot node (combinado) | 6 Gi | 80 Gi | Obligatorio — consenso QBFT + descubrimiento P2P, puerto 30303 externo |
| Execution | 4 Gi | 80 Gi | Obligatorio — endpoint RPC y API para clientes |
| SO + k3s | ~6 Gi | 100 Gi | — |
| Stack cliente ISBE | ~1.3 Gi | — | node-manager · middleware · proxy |
| Total RAM | ~17 Gi → provisionar 24 GB |
4.2 Resumen del servidor
| Recurso | Especificación |
|---|---|
| RAM — total | 24 GB |
| CPU | 4 cores |
| Disco — nodos | 80 Gi × 2 nodos = 160 Gi |
| Disco — SO + otros | 100 Gi |
| Disco — total provisionado | 320 Gi NVMe |
| Red | 1 Gbps — puerto 30303 TCP/UDP públicamente accesible en validador y boot node |
| Imagen Besu | hyperledger/besu:26.1.0 |
5. Servicios de la plataforma
Stack cliente ISBE — idéntico en ambas configuraciones.
Los siguientes tres componentes los proporciona ISBE y se ejecutan como pods adicionales en el mismo servidor. Deben desplegarse sin modificar. Su perfil de recursos es idéntico tanto en la configuración Ideal como en la Mínima.
| Componente | Límite RAM | RAM (observada) | CPU (observada) | Accesible externamente |
|---|---|---|---|---|
| node-manager | 256 Mi | 72 Mi | 4m | No |
| isbe-client middleware | 512 Mi | 61 Mi | 8m | Sí |
| isbe-client proxy | 512 Mi | 5 Mi | 1m | Sí |
El isbe-client proxy implementa el Filtering Proxy, que impide que datos personales estén disponibles on-chain (cumplimiento GDPR por diseño). Cualquier bypass o modificación no autorizada constituye un incumplimiento de los términos de servicio del NAP.
6. Requisitos de red
Matriz de puertos — configuración Ideal.
Los puertos marcados como Externo deben ser públicamente accesibles desde internet. Los puertos marcados como Interno son de alcance exclusivo del clúster. La configuración Mínima omite la fila del nodo archive (puerto 8546).
| Componente | Puerto | Protocolo | Exposición | Propósito |
|---|---|---|---|---|
| Validador · Boot node | 30303 | TCP | Externo | Peering P2P |
| Validador · Boot node | 30303 | UDP | Externo | Descubrimiento P2P |
| Todos los nodos Besu | 8545 | HTTP | Interno | JSON-RPC |
| Nodo archive | 8546 | WS | Interno | WebSocket RPC |
| Todos los nodos Besu | 9545 | HTTP | Interno | Métricas Prometheus |
| node-manager | 8000 | HTTP | Interno | API REST |
| node-manager | 9100 | HTTP | Interno | Endpoint de métricas |
| isbe-client middleware | 8000 | HTTP | Externo | API de cliente |
| isbe-client proxy | 8545 | HTTP | Externo | Proxy RPC (Filtering Proxy) |
El puerto 30303 TCP+UDP debe ser públicamente accesible desde internet en el nodo validador y el boot node (o en el pod combinado validador+bootnode en la configuración Mínima). Es necesario para el peering P2P entre clústeres. Los nodos execution y archive no requieren exposición externa en este puerto.
7. Stack de software
Versiones requeridas — ambas configuraciones.
| Componente | Especificación |
|---|---|
| Hyperledger Besu | hyperledger/besu:26.1.0 — no actualizar sin validación de ISBE |
| Orquestación | k3s (Kubernetes ligero) — gestionado por el paquete de despliegue del cliente ISBE |
| Cliente ISBE | Proporcionado por ISBE. Incluye node-manager, isbe-client middleware e isbe-client proxy. Debe usarse sin modificar. |
| Sistema operativo | Linux — a elección del NAP; debe ser compatible con k3s y la imagen de Besu indicada arriba. Se recomienda una distribución moderna con soporte activo (Ubuntu 22.04+ LTS, Debian 12+, Rocky/AlmaLinux 9+). |
8. Información necesaria antes del despliegue
El NAP debe definir, antes de iniciar el despliegue:
- Nombre del nodo/servidor:
<Nombre_nodo> - IP pública:
<IP_NODO>(la que se expondrá en el puerto 30303) - Ruta donde residirá el data-path de cada pod
- Responsable técnico del despliegue
- Entorno ISBE destino: dev / pre / pro
Estos datos se emplean posteriormente en la configuración del despliegue k3s y en el proceso de solicitud de permisionado.
9. Buenas prácticas previas al despliegue
- Usar un servidor dedicado exclusivamente a la infraestructura del nodo (no mezclar con otras cargas).
- Configurar backups periódicos de los volúmenes de datos de cada pod.
- Deshabilitar el acceso SSH por contraseña; usar exclusivamente claves públicas.
- Mantener k3s, las imágenes de Besu y el stack cliente ISBE actualizados según las versiones validadas por ISBE.
- Evitar montajes de disco lentos para el data-path (nunca NFS): usar NVMe local.
10. Resumen
| Categoría | Ideal | Mínima |
|---|---|---|
| Pods | 4 | 2 |
| RAM | 32 GB | 24 GB |
| CPU | 4–6 cores | 4 cores |
| Disco | 750 Gi NVMe | 320 Gi NVMe |
| Red | 30303/tcp+udp abierto hacia Internet (validador/boot) | 30303/tcp+udp abierto hacia Internet (pod combinado) |
| Software | Besu 26.1.0 sobre k3s + stack cliente ISBE sin modificar | Besu 26.1.0 sobre k3s + stack cliente ISBE sin modificar |