chord algorithm with golang/ChordアルゴリズムのGoでの実装
DHTの学習のためにChordアルゴリズムを実装した。
実用を考えて作ったわけではないので様々な箇所が未調整である。
また、DDoS対策をしておらず、実装していない機能も多いので、実際に使う場合は手を加えることを推奨する。
なお、このプログラムでは"IP:Port" のSHA-1ハッシュをIDとして用いている。
このプログラムはMITライセンスで公開されている。
以下により、このプログラムが動くことが確認できる。
- git clone してビルドするか、環境に合わせたバイナリを選んで実行権限を与える。
- コマンドライン上で、
(バイナリのパス) -selfPort 1234 --selfIP 127.0.0.1と打って最初のノードを立ち上げる - コマンドライン上で、
(バイナリのパス) -selfPort 1235 --selfIP 127.0.0.1 --sucPort 1234 --sucIP 127.0.0.1と打って2つ目ののノードを立ち上げる - 以降、3.と同様に適当な数のノードを立ち上げる
- 生成されたtxtファイルを確認する
このプログラムはChord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications に基づきます。
この場を借りて、原著者の方々に最大限の感謝を申し上げます。