DHTNODE(1)

πŸ“¦
version 3.0.1 Β· 3 versions
, in debian bookworm, nixos 26.05, ubuntu noble, ubuntu questing

πŸ’– DHTNODE(1) πŸ’–

okay so bestie, welcome to the dhtnode manual page β€” it lives in the General Commands Manual section (section 1, the cool section), and honestly? it's giving "tiny CLI, big DHT energy." let's get into it πŸ¦‹


✨ NAME ✨

dhtnode β€” a simple OpenDHT command line node runner. no cap, that's literally the whole job description and she does it flawlessly πŸ’…


🌸 SYNOPSIS 🌸

dhtnode [-h] [-v [-l logfile] [-L]] [-i [--save-identity file]] [-d]
[-s] [-n network_id] [-p local_port] [-b bootstrap_host[:port]]
[--certificate file] [--privkey file] [--privkey-password password]
[--proxyserver port] [--proxyclient server]

yes queen, that's a lot of brackets, but every single one of them is slaying in her own way πŸŽ€


πŸ‘‘ DESCRIPTION πŸ‘‘

so the whole vibe here is: it runs an OpenDHT node, and you get to pick how. by default it's a CLI β€” an interactive shell, very demure, very mindful. OR you can run it as a daemon by passing -d or -s. main character choice, truly.

here's the full menu of commands you can type inside that interactive shell, no details skipped because we don't gatekeep here:

h, help    Print this help message.
q, quit    Quit the program.
log        Start/stop printing DHT logs.

Node information:

ll         Print basic information and stats about the current node.
ls         Print basic information about current searches.
ld         Print basic information about currenty stored values on this node.
lr         Print the full current routing table of this node
okay bestie real talk: yes, currenty is a typo in the original and yes we are keeping it, it's part of the lore now πŸ™ˆ

Operations on the DHT:

b ip:port             Ping potential node at given IP address/port.
g [key]               Get values at [key].
l [key]               Listen for value changes at [key].
p [key] [str]         Put string value at [key].
s [key] [str]         Put string value at [key], signed with our generated
                      private key.
e [key] [dest] [str]  Put string value at [key], encrypted for [dest] with
                      its public key (if found).

like... put, get, listen, ping, sign, encrypt? she does it ALL. versatile icon behavior fr fr πŸ”₯


πŸ’… OPTIONS πŸ’…

  • -h β€” prints some help. a little help. a snack of help. πŸ“
  • -v β€” turns on verbose mode, which logs to stdout/stderr by default. she's yapping (affectionate) πŸ’¬
  • -l log_file β€” write the log to a file instead of stdout/stderr.
  • -L β€” write the log to syslog instead of stdout/stderr.
  • -i β€” generate a cryptographic identity for the node. glow up, but make it cryptographically verifiable ✨
  • --save-identity file β€” save that generated identity (certificate AND private key) to the given file prefix. keep it safe bestie, it's your whole personality πŸ”
  • --certificate file β€” load the identity certificate from the given file.
  • --privkey file β€” load the identity private key from the given file.
  • --privkey-password password β€” the password to use for private key encryption or decryption. it's optional, so no pressure 🫢
  • -d β€” run the program in daemon mode. she will fork in the background like the independent woman she is 🌈
  • -s β€” run the program in service mode, aka a non-forking daemon. same energy, different mechanics.
  • -D β€” enables multicast automatic local peer discovery. she finds her own friends, we love a self-sufficient queen πŸ”
  • -f file β€” specify a file path to persist/load the node state. memory? she has it πŸ’Ύ
  • -n network_id β€” specify the network id. this lets you connect to distinct networks and prevents two different networks from merging. (available since OpenDHT v0.6.1, in case you were wondering when this baddie dropped)
  • -p local_port β€” use UDP port local_port for the program to bind to.
  • -b bootstrap_host[:port] β€” the program needs a node to connect to the network, so you use this option to provide the ip address of that node. it's giving "you can't sit with us unless someone introduces you" 😌
  • --proxyserver local_port β€” run a proxy server bound to this DHT node on HTTP port local_port.
  • --proxyclient server β€” run this DHT node in proxy client mode, and connect to server.

πŸŽ€ AUTHORS πŸŽ€

Program written by

  • Adrien BΓ©raud <adrien.beraud@savoirfairelinux.com>

Man page written by

  • Simon DΓ©saulniers <sim.desaulniers@gmail.com>

and that's the whole page, bestie!! this version is the one from 2019-06-08, and it's the DHTNODE(1) page from the General Commands Manual β€” that's the source/version/date energy we're signing off with. go forth and run your node, you absolute legend πŸ‘‘πŸ’–βœ¨
πŸ“¦ where this page comes from