Saltar al contenido principal

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

🔍 click to expand

Descubrimiento de Peers

Tabla Hash Distribuida (DHT)

ULedgerNET utiliza una Tabla Hash Distribuida para el descubrimiento de peers:

🔍 click to expand

Flujo de Descubrimiento

🔍 click to expand

Sistema de Mensajería

Pub/Sub (Gossip Protocol)

El mecanismo principal para difundir mensajes a través de la red:

🔍 click to expand

Propagación de Mensajes

🔍 click to expand

Streams Directos

Para comunicación punto a punto (por ejemplo, sincronización de datos, solicitudes de timestamp):

🔍 click to expand

Estructura de Mensajes de Red

Formato de Mensaje

🔍 click to expand

Tipos de Mensajes

TipoDirecciónPropósito
MSG_PUBLISHDifusiónMensajes generales pub/sub
MSG_REQUEST_DATADirectoSolicitar datos específicos
MSG_RESPOND_DATADirectoRespuesta a solicitud de datos
MSG_REQUEST_TIMESTAMPDirectoObtener timestamp del peer
MSG_RESPOND_TIMESTAMPDirectoDevolver timestamp actual
MSG_REQUEST_TOPICSDirectoIntercambiar suscripciones de topics
MSG_RESPOND_TOPICSDirectoDevolver topics suscritos

Protocolo de Timestamping

Acuerdo de Timestamp Distribuido

ULedgerNET utiliza timestamps de peers para establecer el orden de transacciones:

🔍 click to expand

Parámetros de Tiempo

ParámetroValorDescripción
Max Peers5Máximo de peers consultados para timestamps
Timeout10sTiempo de espera para solicitud de timestamp
Max Median Diff5sDiferencia 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:

🔍 click to expand

Tipos de Solicitudes de Sincronización

🔍 click to expand

Gestión de Peers

Almacén de Peers

🔍 click to expand

Ciclo de Vida de un Peer

🔍 click to expand

Manejo de Conexiones

Flujo de Nueva Conexión

🔍 click to expand

Manejo de Desconexión

🔍 click to expand

Seguridad de Red

Seguridad de Transporte

CaracterísticaImplementación
CifradoTLS 1.3 / Noise Protocol
AutenticaciónID de peer derivado de clave pública
IdentidadClaves de red Ed25519

Seguridad de Protocolo

CaracterísticaImplementación
Firma de MensajesTodos los mensajes de blockchain firmados
Protección contra ReplayIDs de solicitud únicos
Prevención de SpamValidació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ámetroDescripciónValor por Defecto
portPuerto de escucha P2P4001
bootstrapPeersPeers iniciales para descubrimiento[]
dhtServerActuar como servidor DHTtrue
enableRelayHabilitar relay para traversal de NATfalse

Topología de Red

Despliegue Típico

🔍 click to expand

Siguiente: Smart Contracts & Tokens