Reticulum: a network that runs on 5 bits per second — a layer-by-layer stack analysis

There is an error in my update

api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

Please help me fix it.passphrase in the config is stored in plaintext. Permissions for ~/.reticulum/config should be set to 600, and on a shared machine — think three times about who else has access to the user home directory under which rnsd runs.

[/warn]

Utilities for which this is installed

The stack itself does nothing by itself — the point is that something is already written on top of it and comes with it:

  • rnstatus — the status of interfaces and traffic;
  • rnpath — viewing and resetting known paths;
  • rnprobe — diagnostics of reachability to a specific address;
  • rncp — copying files between nodes;
  • rnid — identity management, encryption and decryption of files;
  • rnsh — an interactive remote shell;
  • rnx — run a single command on a remote node with output returned;
  • rngit and git-remote-rns — git remote over Reticulum, with signing and commit validation.

Separately — the application layer. LXMF — a messaging protocol tolerant of delays and outages (a messenger that can survive hours without connectivity). On top of it Sideband — a graphical client for Android, Linux, macOS and Windows with files, voice, maps and telemetry, and Nomad Network — a text environment with pages and file sharing.

Success:

A sensible first experiment

  1. Deploy rnsd on a VPS with TCPServerInterface and enable_transport = Yes.
  2. On a laptop add a TCPClientInterface to this VPS, check rnstatus.
  3. Run rnprobe to the VPS address, look at hops via rnpath.
  4. Transfer a file via rncp and open rnsh.
  5. Only after that tackle the radio part — it adds its own layer of problems.

Where this breaks

An honest list of constraints, without which the analysis would be advertising.

Performance. The reference implementation is written in Python. For 5 bits/s that doesn’t matter, for gigabits — very important. There is a separate package rnspure for systems without PyCA/cryptography, and it is noticeably slower than normal.

Metadata. Encrypting the content is not the same as hiding the fact of the connection. Transport nodes observe destination addresses, volumes and time. In the radio channel there is physics: the transmitter is beamed, and no cryptography prevents that.

Radio is a regulated environment. LoRa at 433/868/915 MHz and packet radio in VHF live under different legal regimes in different countries: some places require a license, some restrict power and airtime, some ranges prohibit encryption in amateur bands. This is not a minor detail — this is the first thing to figure out before buying hardware.

Security:

Check local rules for using the chosen frequency before going on air. License requirements, max power, duty cycle, and encryption allowances vary by country, and ignorance doesn’t help here.

The ecosystem is small. This is not a case where you’ll find ten answers on Stack Overflow. The project’s documentation is thorough, the community is narrow.

Important:

Reticulum is worth choosing when the ordinary stack no longer suffices: the channel is too slow, too flaky, or too hostile. If you have a working IP and the issue is privacy — the right tools are different: WireGuard, Tor, ordinary VPNs.

On-topic on the forum

References

Question:

Has anyone tried Reticulum in practice — not as a toy, but for a task? Two things are especially interesting: real range and stability on a LoRa link between buildings, and experience using rnsh/rncp as a backup channel for server management when the main channel went down.