DHT シェルの実行

[English | Japanese]
last-updated: February 13, 2011

このチュートリアルでは、DHT シェルを起動して それを通じて DHT を利用します。 計算機は 1台あれば充分です。

ツールキットはインストール (展開 & ビルド) 済みであると仮定します。 bin ディレクトリ以下のコマンドを実行するための、 環境変数 PATH の設定も済んでいると仮定します。 ただし、PATH の設定なしに、ディレクトリを指定して起動しても問題ありません。

オーバレイの構築

キャラクタ端末にて次のコマンドを実行し、1つめの DHT シェルを起動します。
owdhtshell
別のキャラクタ端末を開いて、2つめの DHT シェルを起動します。 この際、1つめの DHT シェルを初期コンタクト先として指定します。
owdhtshell <計算機のホスト名または IP アドレス>
すると、シェルは "Ready." と表示し、コマンドの入力を求めてきます。
help コマンドを入力します。
help
すると、help メッセージが表示されます。
status [<verbose level>]
init [-status] <host>[:<port>] [<port>]
get [-status] <key> [<key> ...]
put [-status] <key> <value> [<value> ...] [- <key> <value> [<value> ...] ...]
remove|delete [-status] <secret> <key> [<value> ...] [- <key> [<value> ...] ...]
...
status コマンドを入力します。
status
次のように、そのノードの経路表が表示されます。
ID and address: 4c14c60f7ee61d12bb08f7abdf4d22864b5930bf:hostname/XXX.XXX.XXX.XXX:3997
Routing table:
...

値の put と get

次のコマンドを入力して、DHT に値を put します。

put foo bar

status コマンドで、 put のために行われたルーティングの結果を見ることができます。

status
...
Last keys & routes: 
number of messages: 0 -> 0
key[0]: 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33
route[0] (length: 1): [
 4c14c60f7ee61d12bb08f7abdf4d22864b5930bf:hostname/XXX.XXX.XXX.XXX:3997 (0)
 4c14c60f7ee61d12bb08f7abdf4d22864b5930bf:hostname/XXX.XXX.XXX.XXX:3997 (91)
]
...
ここから、put の際に指定したキー foo のハッシュ値が 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 であることや、 経路長が 1 であったことが判ります。

先ほど put した値を get するために、次のコマンドを入力します。

get foo
bar が表示されます。
key:   0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33
value: bar 10782
「10782」は TTL であり、foo-bar 組の寿命があと 10782 秒であることを示しています。

ノードの停止

シェルが制御しているノードを停止させるには、 halt コマンドを入力します。
halt

発展

特に指定しない場合、ルーティングアルゴリズムとルーティング様式はそれぞれ Chord と iterative ルーティングになります。 これらは、DHT シェルにオプションを与えることで変更できます。 詳しくはマニュアルを参照して下さい。
Return to Documents page
Return to Overlay Viewer main page