dswarm
1.0.0
这是 UDP 多播和本地主机中的 DHT 实验的实践。这个想法是根据需要运行尽可能多的该守护进程的实例,所有实例都将通过 udp 多播找到彼此并构建 dht 网络。网络的每个对等点都会生成一个 ed25519 密钥对,并绑定到一个随机端口。该端口是一个 http 服务,它在以下端点接收请求:
/dht 端点服务 websocket rpc 请求
/api 端点服务 https curl 请求。目前唯一实现的 RPC 调用是“ping”
这一切都在进行中。很快就会添加更多工作。
由于每个实例都在网络(或同一台计算机)上执行,因此该实例每 5 秒广播一个 UDP 数据包,其中包含新生成的公钥、随机服务端口以及 IP 数据包中其自己的 IP 地址。每次实例收到 UDP 多播数据包时,它都会根据映射检查新对等点的公钥,如果是新找到的对等点,则会将其记录到 stdout,并将其添加到内存中的映射中。该桶每 5 秒打印一次
git clone
这个项目,或者在这里下载:master.zip./build.sh
在 docker 中构建,或者直接使用go build
./demo.sh
以生成十个实例 curl -kvs https://localhost:port/api/ping
^^^ 这将告诉对等点对存储桶中最接近的前三个对等点执行 RPC ping。
需要注意的一些事项: