Esta es una práctica de multidifusión UDP y experimentación de DHT en un host local. La idea es ejecutar tantas instancias de este demonio como desee, y todas las instancias se encontrarán mediante multidifusión udp y construirán una red dht. cada par de la red genera un par de claves ed25519 y se vincula a un puerto aleatorio. el puerto es un servicio http que acepta solicitudes en estos puntos finales:
el punto final /dht atiende solicitudes rpc de websocket
el punto final /api atiende solicitudes curl https. En este momento la única llamada rpc implementada es "ping".
Todo es un trabajo en progreso. Pronto se agregarán más trabajos.
Como cada instancia de esto se ejecuta en la red (o en la misma computadora), cada 5 segundos la instancia transmite un paquete UDP que contiene una clave pública recién generada, un puerto de servicio aleatorio y, en consecuencia, su propia dirección IP del paquete IP. cada vez que una instancia recibe un paquete de multidifusión UDP, verifica la clave pública del nuevo par con un mapa; si es un par recién encontrado, lo registrará en la salida estándar y lo agregará al mapa en la memoria. el cubo se imprime cada 5 segundos
git clone
o descárguelo aquí: master.zip./build.sh
para compilar en Docker, o simplemente use go build
./demo.sh
para generar diez instancias curl -kvs https://localhost:port/api/ping
^^^ esto le indicará al par que realice un ping RPC a los tres pares más cercanos del grupo.
algunas cosas a tener en cuenta: