p2p設計入門(3)--overlayweaver動いたけど・・・!

eclipseでのantビルドが上手くいかないので、
JDKとAntを個別にインストールして、sygwin上でビルドしたら上手くいった。
何とかeclipse上で動かしたいけど、とりあえずはビルド完了メデテェ。

簡単な環境

  • windowXP
  • cygwin
  • JDK
    • 最新版
  • ANT
    • 最新版
  • overlayweaver
    • Version 0.7.2

とりあえずDHTシェルを動かしてoverlayネットワーク(以下ネットワーク)を体験する!

公式ページに日本語チュートリアルがあるので非常に助かります。
(http://overlayweaver.sourceforge.net/doc/index-j.html)


ビルド済みのoverlayweaverディレクトリ以下のbinにてシェルを実行する。

$./owdhtshell
DHT configuration:
  hostname:port:     ***_note/192.168.0.11:3997
  transport type:    UDP
  routing algorithm: Chord
  routing style:     Iterative
  directory type:    VolatileMap
  working directory: .
A DHT started.
Ready.

これで初期ノードとしてネットワークに存在したことになる。*1
このネットワークの設定も表示されている。
プロトコルUDP、ルーティングアルゴリズムChordまでは分かるけど、
style??VolatileMap??は意味分からんので後で調べることにしよう。


次にネットワークに新しくノードを追加してやることにする。

$ ./owdhtshell 127.0.0.1
DHT configuration:
  hostname:port:     ***_note/192.168.0.11:3998
  transport type:    UDP
  routing algorithm: Chord
  routing style:     Iterative
  directory type:    VolatileMap
  working directory: .
  initial contact:   127.0.0.1:3997
A DHT started.
Ready.

新しいノードは、ネットワークに参加するため、
先ほどの初期ノード(つまり自分)のIP、ループバックIPアドレスを与えてやる。
どうやら接続は問題ないようだ。
ためしに経路情報を表示する。

status
ID and address:
 a3c27ea1d3071f7a327ce7f2e728adde2d62e82e:***_note/192.168.0.11:3998
Routing table:
predecessor:
 0a894ff02d6981ee16e07259b22ead1c2a2438b5:***_note/192.168.0.11:3997
successor list: [
 0a894ff02d6981ee16e07259b22ead1c2a2438b5:***_note/192.168.0.11:3997
 a3c27ea1d3071f7a327ce7f2e728adde2d62e82e:***_note/192.168.0.11:3998
]
finger table: [
 1: 0a894ff02d6981ee16e07259b22ead1c2a2438b5:***_note/192.168.0.11:3997
 160: a3c27ea1d3071f7a327ce7f2e728adde2d62e82e:***_note/192.168.0.11:399
]
Last key: a3c27ea1d3071f7a327ce7f2e728adde2d62e82e
Last route: [
 a3c27ea1d3071f7a327ce7f2e728adde2d62e82e:***_note/192.168.0.11:3998
 0a894ff02d6981ee16e07259b22ead1c2a2438b5:***_note/192.168.0.11:3997
]
Last root candidates: [
 0a894ff02d6981ee16e07259b22ead1c2a2438b5:***_note/192.168.0.11:3997
]

と言う感じでずらずらと経路情報が出てくる!
正直分からん用語が多すぎるけど、ルーティングテーブルとかが保持されているようだ。
ここら辺をじっくり読み込む必要があると感じて次へ。

putとget

あとで書く。


(´・ω・`).o0(
というかこのputとgetで情報のやり取りできるっぽい!*2
あとはDHTシェルに適当な値を渡すjava-guiクライアントでもぼそぼそ作れば
p2pアプリケーションでなんか作る妄想は完了なのか?)

*1:素人くさい説明だが気にせず

*2:意味が良く分かってない気がする