Arquitectura de Red ULedgerNET
Descripción General
ULedgerNET implementa una red peer-to-peer descentralizada utilizando un stack de red P2P modular. Esto proporciona descubrimiento robusto de peers, comunicación segura y propagación eficiente de mensajes.
Stack de Red
Descubrimiento de Peers
Tabla Hash Distribuida (DHT)
ULedgerNET utiliza una Tabla Hash Distribuida para el descubrimiento de peers:
Flujo de Descubrimiento
Sistema de Mensajería
Pub/Sub (Gossip Protocol)
El mecanismo principal para difundir mensajes a través de la red:
Propagación de Mensajes
Streams Directos
Para comunicación punto a punto (por ejemplo, sincronización de datos, solicitudes de timestamp):
Estructura de Mensajes de Red
Formato de Mensaje
Tipos de Mensajes
| Tipo | Dirección | Propósito |
|---|---|---|
MSG_PUBLISH | Difusión | Mensajes generales pub/sub |
MSG_REQUEST_DATA | Directo | Solicitar datos específicos |
MSG_RESPOND_DATA | Directo | Respuesta a solicitud de datos |
MSG_REQUEST_TIMESTAMP | Directo | Obtener timestamp del peer |
MSG_RESPOND_TIMESTAMP | Directo | Devolver timestamp actual |
MSG_REQUEST_TOPICS | Directo | Intercambiar suscripciones de topics |
MSG_RESPOND_TOPICS | Directo | Devolver topics suscritos |
Protocolo de Timestamping
Acuerdo de Timestamp Distribuido
ULedgerNET utiliza timestamps de peers para establecer el orden de transacciones:
Parámetros de Tiempo
| Parámetro | Valor | Descripción |
|---|---|---|
| Max Peers | 5 | Máximo de peers consultados para timestamps |
| Timeout | 10s | Tiempo de espera para solicitud de timestamp |
| Max Median Diff | 5s | Diferencia de tiempo máxima permitida |
Sincronización de Nodos
Proceso de Reconciliación
Cuando un nuevo nodo se une o se recupera de una partición:
Tipos de Solicitudes de Sincronización
Gestión de Peers
Almacén de Peers
Ciclo de Vida de un Peer
Manejo de Conexiones
Flujo de Nueva Conexión
Manejo de Desconexión
Seguridad de Red
Seguridad de Transporte
| Característica | Implementación |
|---|---|
| Cifrado | TLS 1.3 / Noise Protocol |
| Autenticación | ID de peer derivado de clave pública |
| Identidad | Claves de red Ed25519 |
Seguridad de Protocolo
| Característica | Implementación |
|---|---|
| Firma de Mensajes | Todos los mensajes de blockchain firmados |
| Protección contra Replay | IDs de solicitud únicos |
| Prevención de Spam | Validación de mensajes en la capa de protocolo |
Configuración
Configuración P2P
{
"p2pConfig": {
"port": 4001,
"bootstrapPeers": [
"/ip4/x.x.x.x/tcp/4001/p2p/QmXXX...",
"/dnsaddr/bootstrap.uledger.io/p2p/QmYYY..."
],
"dhtServer": true,
"enableRelay": false
}
}
Parámetros de Configuración
| Parámetro | Descripción | Valor por Defecto |
|---|---|---|
port | Puerto de escucha P2P | 4001 |
bootstrapPeers | Peers iniciales para descubrimiento | [] |
dhtServer | Actuar como servidor DHT | true |
enableRelay | Habilitar relay para traversal de NAT | false |
Topología de Red
Despliegue Típico
Siguiente: Smart Contracts & Tokens