Tox Bootstrap Node
A server application to run tox bootstrap node.
Building and running
You'll need Rust >= 1.31.0.
Build with:
Run with:
If you want to change default log level you can do it via setting RUST_LOG
environment variable. For example, if you want to see all received and sent
packets you can change log level to trace
for tox
crate:
RUST_LOG=tox=trace
Also it's possible to use syslog via --log-type
parameter.
MOTD
MOTD is an abbreviation for The Message of The Day. Tox bootstrap nodes have a
special packet kind called BootstrapInfo
to retrieve the MOTD alongside with
version. Our node supports basic templates for the MOTD that can be specified
via --motd
key. It's possible to use the following variables surrounded by
{{ }}
:
start_date
: time when the node was starteduptime
: uptime in the format 'XX days XX hours XX minutes'tcp_packets_in
: counter of tcp incoming packetstcp_packets_out
: counter of tcp outgoing packetsudp_packets_in
: counter of udp incoming packetsudp_packets_out
: counter of udp outgoing packets
Keys generation
In order to run node you have to provide either secret key or path to a keys file.
Keys file
Keys file is a binary file with sequentially stored public and secret keys. Path
to a keys file can be specified via --keys-file
argument. If file doesn't
exist it will be created with automatically generated keys. The format of this
file is compatible with tox-bootstrapd
.
You may also extract the key from the file:
Secret key
Secret key is a hexadecimal string of size 32 bytes. It can be specified via
TOX_SECRET_KEY
environment variable. Any random string will fit but note that
only strong random generators should be used to generate a secret key. Here are
some examples how you can do it in the terminal:
| ;
Config or CLI
In order to run with config, run with --config <file>
.
Example config.yml is below.
log-type: Stderr
keys-file: ./keys
udp-address: 0.0.0.0:33445
tcp-addresses:
- 0.0.0.0:33445
motd: "{{start_date}} {{uptime}} Tcp: incoming {{tcp_packets_in}}, outgoing {{tcp_packets_out}}, Udp: incoming {{udp_packets_in}}, outgoing {{udp_packets_out}}"
bootstrap-nodes:
- pk: 1D5A5F2F5D6233058BF0259B09622FB40B482E4FA0931EB8FD3AB8E7BF7DAF6F
addr: 198.98.51.198:33445
- pk: DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43
addr: 185.25.116.107:33445
threads: auto # or any u16 > 0
lan-discovery: True
Or you can use it with CLI like this