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。
需要注意的一些事項: