Reticulum
Reticulum is a cryptography-based networking stack for building local and wide-area networks with readily available hardware. Reticulum can continue to operate even in adverse conditions with very high latency and extremely low bandwidth. The vision of Reticulum is to allow anyone to operate their own sovereign communication networks, and to make it cheap and easy to cover vast areas with a myriad of independent, interconnectable and autonomous networks.
On Reticulum's assembly we will hack on LoRa and other radio hardware, write code, feature demos of the network stack and interface systems and host discussions about the project.
A matrix room for the 39C3 Assembly is available at https://matrix.to/#/#39c3-rns:erethon.com. Use the following config to connect to the network that runs in 39C3:
[reticulum]
# If you enable Transport, your system will route traffic
# for other peers, pass announces and serve path requests.
# This should only be done for systems that are suited to
# act as transport nodes, ie. if they are stationary and
# always-on. This directive is optional and can be removed
# for brevity.
enable_transport = True
# By default, the first program to launch the Reticulum
# Network Stack will create a shared instance, that other
# programs can communicate with. Only the shared instance
# opens all the configured interfaces directly, and other
# local programs communicate with the shared instance over
# a local socket. This is completely transparent to the
# user, and should generally be turned on. This directive
# is optional and can be removed for brevity.
share_instance = Yes
# If you want to run multiple *different* shared instances
# on the same system, you will need to specify different
# shared instance ports for each. The defaults are given
# below, and again, these options can be left out if you
# don't need them.
shared_instance_port = 37428
instance_control_port = 37429
# You can configure Reticulum to panic and forcibly close
# if an unrecoverable interface error occurs, such as the
# hardware device for an interface disappearing. This is
# an optional directive, and can be left out for brevity.
# This behaviour is disabled by default.
panic_on_interface_error = No
[logging]
# Valid log levels are 0 through 7:
# 0: Log only critical information
# 1: Log errors and lower log levels
# 2: Log warnings and lower log levels
# 3: Log notices and lower log levels
# 4: Log info and lower (this is the default)
# 5: Verbose logging
# 6: Debug logging
# 7: Extreme logging
loglevel = 7
# The interfaces section defines the physical and virtual
# interfaces Reticulum will use to communicate on. This
# section will contain examples for a variety of interface
# types. You can modify these or use them as a basis for
# your own config, or simply remove the unused ones.
[interfaces]
# This interface enables communication with other
# link-local Reticulum nodes over UDP. It does not
# need any functional IP infrastructure like routers
# or DHCP servers, but will require that at least link-
# local IPv6 is enabled in your operating system, which
# should be enabled by default in almost any OS. See
# the Reticulum Manual for more configuration options.
# [[Default Interface]]
# type = AutoInterface
# enabled = Yes
# name = Default Interface
# selected_interface_mode = 1
# configured_bitrate = None
[[RNS Sideband ]]
type = TCPClientInterface
interface_enabled = true
target_host = sideband.connect.reticulum.network
target_port = 4965
[[ChaosNet TCP Interface]]
type = TCPClientInterface
interface_enabled = true
target_host = rns.c3.jitter.eu
target_port = 4242
[[RNode LoRa Interface]]
type = RNodeInterface
interface_enabled = true
port = /dev/ttyUSB0
frequency = 864200000
bandwidth = 125000
txpower = 5
spreadingfactor = 10
codingrate = 6
# Try setting this up
# [[BLE Interface]]
# type = BLEInterface
# enabled = yes
#
# # Enable both modes for mesh
# enable_peripheral = yes
# enable_central = yes