// node opzetten
Een Reticulum node draaien is de stap na een gewone client. Je zet een achtergrondproces op dat interfaces beheert, paden bijhoudt en verkeer routeert. Hieronder staat wat je minimaal nodig hebt.
Er zijn twee hoofdsmaken: de originele Python stack (RNS) en de Rust stack (rsReticulum, gebruikt door Ratspeak). Beide spreken hetzelfde protocol en werken op hetzelfde netwerk samen.
| Stack | Installatie | Config locatie | Daemon |
|---|---|---|---|
| Python (RNS) | pip install rns | ~/.reticulum/config | rnsd |
| Rust (rsReticulum) | cargo build --release | ~/.rsReticulum/config | rnsd-rs |
De voorbeelden op deze pagina gebruiken de Python stack (rnsd, rnstatus). De Rust equivalenten heten rnsd-rs, rnstatus-rs, etc.
Bij de eerste start genereert rnsd automatisch een identity en een config file. Daarna pas je de config aan op jouw situatie en start je opnieuw.
# Eerste start: genereert config
rnsd
# Stop (Ctrl+C), bewerk config
nano ~/.reticulum/config
# Start opnieuw
rnsd &
rnstatus
De config file bestaat grofweg uit twee delen: een [reticulum] sectie met algemene instellingen en een [interfaces] sectie met een of meer interface definities.
# ~/.reticulum/config
[reticulum]
enable_transport = no
share_instance = yes
shared_instance_port = 37428
[interfaces]
# Voeg hier je interfaces toe
[[ReticulumNet]]
type = TCPClientInterface
enabled = yes
target_host = voorbeeld.nl
target_port = 4242
| Instelling | Wat het doet | Standaard |
|---|---|---|
| enable_transport | Stuurt verkeer door voor andere nodes (transport node) | no |
| share_instance | Laat lokale apps (Ratspeak, MeshChat) verbinden met deze daemon | yes |
| shared_instance_port | Poort voor lokale app-verbindingen | 37428 |
Zet enable_transport = yes alleen aan als je een altijd-aan machine hebt die verkeer moet doorsturen voor anderen. Voor normaal gebruik (berichten sturen en ontvangen) is het niet nodig.
Wie een node voor anderen draait, kiest uit twee rollen. Het zijn aparte processen die ook op dezelfde machine kunnen draaien.
| Rol | Proces | Wat het doet |
|---|---|---|
| Transport node | rnsd (of rnsd-rs) | Stuurt packets door tussen interfaces. Maakt multi-hop bereikbaarheid mogelijk. Ruggengraat van het mesh. |
| Propagation node | lxmd -p (of lxmd-rs) | Slaat LXMF berichten op voor offline ontvangers. Levert af wanneer ze terugkomen. Vergelijkbaar met een mailserver. |
# Beide draaien op dezelfde machine
rnsd &
lxmd -p &
Een transport node slaat geen berichten op en een propagation node routeert geen packets. Wil je beide, draai dan beide processen.
| Commando | Functie |
|---|---|
| rnstatus | Toon interfaces, paden en status van de draaiende daemon |
| rnpath <hash> | Inspecteer, verzoek of ververs een pad naar een destination |
| rnprobe <hash> | Test of een destination bereikbaar is (vergelijkbaar met ping) |
| rncp <bestand> <hash> | Kopieer een bestand over een Reticulum resource (encrypted) |
| rnsh <hash> | Open een encrypted remote shell op een andere node |
| rnid | Maak, inspecteer, importeer of exporteer identities |
Een Raspberry Pi 4 of Pi Zero 2 W als headless node is een veel voorkomende setup. Draai rnsd als systemd service zodat het automatisch herstart na een reboot. Optioneel een LoRa radio via USB eraan voor off-grid dekking.
# /etc/systemd/system/rnsd.service
[Unit]
Description=Reticulum Network Daemon
After=network.target
[Service]
Type=simple
User=kel
ExecStart=/usr/local/bin/rnsd
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl enable rnsd
sudo systemctl start rnsd
Gebruik /dev/serial/by-id/... paden in je interface config als je een USB radio hebt. Device nummers zijn niet stabiel na een reboot. Wil je een netwerk voor een groep opzetten? Zie netwerk bouwen. Voor een groter netwerk met meerdere operators, zie community mesh.