Manual: DHT shell
[English | Japanese]
last-updated: November 11, 2010
owdhtshell - DHT shell
[-p <shell port>]
[--acl <ACL file>]
[-d <working dir>]
[-i <self ID>]
[-m <stat collector addr>[:<port>]]
[-a <algorithm name>]
[-r <routing style>]
[-s [<self address>[:<port>]]|<port>]
DHT shell is a command language interpreter
which controls a higher-level service DHT.
It invokes a node on a structured overlay
and controls a DHT service according to user's instructions
given from standard input and a network.
If command-line arguments are specified,
DHT shell tries to join an overlay by contacting the specified node.
If an invalid option or -h is specified,
the shell shows help messages.
- -p <shell port>
- Wait on the specified TCP port to read shell instructions.
- --acl <ACL file>
- Read an access control list (ACL) from the specified file.
An ACL file contains lines as follows:
These lines are interpreted from top to bottom.
The first argument can be `allow' or `deny'.
An entry can have a hostname or an IP address as the second argument.
In the above case accesses from 192.168.0.12 and host.example.com are allowed
and accesses from others are prohibited.
- Do not read instructions from standard input.
This option is useful to invoke this tool via a job management system
like Sun N1 Grid Engine.
- Accept queries in an XML-RPC protocol on port 3998 of TCP.
The protocol is compatible with
On the same port, DHT shell provides a web interface
on which we can see node information with a web browser.
- Web interface (--web) shows a routing path
on a geographical map (Google Maps).
You have to set your Google Maps API key properly in source code
if you use this feature.
- -d <working dir>
- Use the specified directory as the working directory.
A kind of Directory Service (e.g. Berkeley DB implementation)
creates DB files in the working directory.
- -i <self ID>
- Use the specified ID as the ID of the node being invoked itself.
The ID has to be a hexadecimal number.
If no ID is specified, the self ID is determined based on the self address.
- -m <stat collector addr[:<port>]>
- Use the specified address as the address of a statistics collector,
which is Message Counter or Overlay Visualizer.
DHT shell reports all communication to the specified address
via Messaging Service itself.
- -t < UDP|TCP>
- Use the specified transport protocol.
If no protocol is specified, UDP is used.
- -a <algorithm name>
- Use the specified routing algorithm.
Valid algorithm names are
"Chord", "Kademlia", "Koorde", "LinearWalker", "Pastry", and "Tapestry".
If no algorithm is specified, "Chord" is used.
- -r <routing style>
- Do routing in the specified style.
Valid styles are "Iterative" and "Recursive".
If no style is specified, DHT shell does "Iterative" routing.
- -s [<self address>[:<port>]]|<port>
- Use the specified address as the address of the node being invoked itself.
If not specified, DHT shell detects its own address automatically.
But this option is useful on a computer with multiple IP addresses
or inside a NA(P)T router.
- Disable UPnP NAT Traversal function.
- --oasis <port>
- Accept a query from OASIS
replicas on the specified port.
DHT shell reads user's instructions from standard input.
If -p option is specified, it also reads from a network.
It accepts the following instructions.
- init [-status] <host>[:<port>] [<port>]
- The node joins an overlay by contacting the specified node.
- get [-status] <key> [<key> ...]
- Get values which have been put with the specified key.
It accepts multiple keys at a time.
- put [-status] <key> <value> [<value> ...] [- <key> <value> [<value> ...] ...]
- Put the specified value with the specified key.
It accepts multiple key-value pairs at a time.
The pairs are separated by "-".
- remove|delete [-status] <secret> <key> [<value> ...] [- <key> [<value> ...] ...]
- Remove values associated with the specified key.
If a value is also specified, only the value is removed.
It accepts multiple remove requests at a time.
The requests are separated by "-".
- setttl <ttl>
- Specify the TTL.
The values stored by following put commands are kept for ttl second.
- setsecret <secret>
- Specify the secret.
The values stored by following put commands
can be removed later with the secret.
- status [<verbose level>]
- Print routing table contents and result of the last routing.
Some information is omitted
if a negative integer is specified as the verbose level.
- Print key-value pairs which the node keeps.
- Print help messages.
- Terminates the shell.
- Terminates the node.
- clear routingtable
- Clears the routing table.
- clear dht
- Clears values which the node holds.
- Suspends the node, which can be resumed later.
- Resumes the node which has been suspended.
Return to Documents page
Return to Overlay Viewer main page