Análisis del código fuente de Ethernet: descubrimiento de nodos P2P
El descubrimiento de nodos involucra estructuras de datos de servidor, tabla y udp, cada una de las cuales tiene su propio bucle de respuesta a eventos. Cada cliente Ethernet comienza con un servidor que se ejecuta localmente y trata los nodos adyacentes en la topología de la red como nodos, mientras que la tabla es el contenedor de nodos y udp es la tabla utilizada para el descubrimiento de nodos. El contenedor y udp son responsables de mantener la conexión subyacente. A continuación se destacan los campos importantes y las partes clave de su procesamiento de bucle de eventos.
PrivateKey: la clave privada del nodo, utilizada para negociaciones de protocolo de enlace al establecer conexiones con otros nodos
Protocolos: todos los protocolos de capa superior compatibles
StaticNodes: pre- Nodo estático definido utilizado para mantener conexiones. strong>: el nodo par estático predeterminado iniciará primero una conexión cuando comience a establecer relaciones de vecino
newTransport: la implementación de la capa de transporte subyacente, que define el método de cifrado y descifrado de datos durante el proceso de intercambio. newRLPX() es creado por rlpx, que no es el tema central de este artículo
ntab: una implementación típica es una tabla donde todos los pares se representan como nodos. Nodo en la tabla
ourHandshake: información del protocolo de enlace al establecer una conexión con otro nodo, incluido el número de versión del nodo local y los protocolos de capa superior admitidos
addpeer. - Una vez completado el protocolo de enlace, el proceso de conexión notificará al servidor a través de este canal
El bucle de escucha del servidor (inicia el socket de escucha subyacente) y notifica al servidor cuando se recibe una solicitud de conexión después de la aceptación. , se llamará a setupConn () Inicie el proceso de establecimiento de conexión
El bucle de implementación de funciones y procesamiento de eventos principal del servidor
El nodo representa de forma única un nodo en la red
IP - Dirección IP
El nodo representa de forma única un nodo en la red. Dirección IP
UDP/TCP - Número de puerto UDP/TCP utilizado para conectar
Número de puerto UDP/TCP utilizado para conectar
UDP utilizado para conectar /Puerto TCP número La primera fase es el establecimiento de la clave ECDH:
La segunda fase es el protocolo de enlace, intercambiando protocolos de capa superior compatibles
Si ambos protocolos de enlace pasan, la tarea de marcación será el canal addpeer del servidor. envía información de pares.