dswarm
1.0.0
これは UDP マルチキャストでの実践であり、ローカルホストでの DHT 実験です。このデーモンのインスタンスを必要な数だけ実行すると、すべてのインスタンスが udp マルチキャスト経由で相互に検出され、dht ネットワークを構築するという考えです。ネットワークの各ピアは ed25519 キーペアを生成し、ランダムなポートにバインドします。ポートは、次のエンドポイントでリクエストを受け取る http サービスです。
/dht エンドポイントは WebSocket RPC リクエストを処理します
/api エンドポイントは httpscurl リクエストを処理します。現時点で実装されている唯一の rpc 呼び出しは「ping」です
すべて進行中の作業です。すぐにさらに多くの作業が追加される予定です。
この各インスタンスがネットワーク上 (または同じコンピュータ上) で実行されると、インスタンスは 5 秒ごとに、新しく生成された公開キー、ランダムなサービス ポート、および結果として IP パケットからの独自の IP アドレスを含む UDP パケットをブロードキャストします。インスタンスは UDP マルチキャスト パケットを受信するたびに、新しいピアの公開キーをマップと照合してチェックし、新しく見つかったピアの場合はそれを stdout に記録し、メモリ内のマップに追加します。バケットは 5 秒ごとに印刷されます
git clone
か、ここからダウンロードします: master.zip./build.sh
使用して docker でビルドするか、単にgo build
を使用します./demo.sh
実行して 10 個のインスタンスを生成します curl -kvs https://localhost:port/api/ping
^^^ これにより、バケット内の上位 3 つの最も近いピアに対して RPC ping を実行するようにピアに指示されます。
注意すべき点: