むつの日記

01ba2ab7 :むつ 2005-12-01 19:18
今日は、というかさっきですが、DHT の一種 Pastry の実装 Bamboo で遊びました。
まだ、ローカルで数ノード動かしただけですが楽しいです。
DHT というのは(乱暴な話)キーと値を各ノードで分散して記憶するしくみです。
Perl の連想配列を複数の PC で分散して記憶、みたいな。
なので例えば、キー: foo 値: bar とすれば、どのノードに foo を問い合わせても bar と答えてくれます。
これぞ、(いわゆるサーバレスな)P2P の醍醐味でしょう。
一番疑問だったのが、同一のキーに異なる値を記憶させた場合どのような動作になるか? ということだったのですが、
動かしてみると一発でわかりますね。複数の値がちゃんと記憶されていました。
なので、

openssl base64 -in hoge.jpg -out hoge.base64
for i in `cat hoge.base64`
do
bin/run-java bamboo.dht.Put localhost 3632 hoge $i 600
done

bin/run-java bamboo.dht.Get localhost 3635 hoge > hoge.base64
openssl base64 -d -in hoge.base64 -out hoge.jpg

とか。冗談ですけどね(汗
ところで、DHT での検索ってどうするんでしょうね?
一つのキーに集中して値(たとえばファイルの URL)を登録してしまえば、
簡単に全ネットワークのインデックスが取れますけど、DHT のうまみがなさげ。
BitTorrent のようにキーは別途入手が簡単なのでしょうか?

参考にしたところ:
http://dev.ariel-networks.com/modules/xfsection/article.php?articleid=54

Windows で遊ぶ場合は Cygwin 必須っぽいです(bin/run-java が shell script で、Bamboo は Java なのにコンパイルは make)。

>>66fcaea8
MMO ? 飽きました(はやっ
まー、ぼちぼちすすめようかなーと。
Powered by shinGETsu.