Reticulum ist ein kryptographiebasierter Netzwerk-Stack, der zum Aufbau lokaler und überregionaler Netzwerke mit handelsüblicher Hardware dient. Es ist darauf ausgelegt, auch unter widrigen Bedingungen wie extrem geringer Bandbreite und hoher Latenz stabil zu funktionieren. Reticulum bietet Ende-zu-Ende-Verschlüsselung, perfekte Vorwärtssicherheit und selbstkonfigurierenden Multi-Hop-Transport, um sichere und zensurresistente digitale Kommunikation zu ermöglichen. Es kann auf nahezu jedem System mit Python 3 ausgeführt werden und unterstützt eine Vielzahl von Medien, von LoRa-Funk über serielle Schnittstellen bis hin zu WiFi und dem Internet.
Ich möchte einmal zeigen, wie ich mich mit dem Reticulum-Netzwerk über LoRa verbunden habe und das auf meinem Laptop und Android-Gerät nutze.
Das richtige Gerät
Es werden verschiedene LORA Modelle unterstützt. Eine vollständige Liste findet man hier.
Vorbereitung
In meinem Fall nutze ich CachyOS als Betriebsystem.
Um den, in meinem Fall genutzten, RAK Wisblock 4631 mit RNode zu flashen benötigt man den Reticulum Networkstack auf seinem Gerät.
Um den RNS zu Installieren braucht es Python3 und pip .
sudo pacman -S python3 python-pip
Dazu braucht man noch eine Python Enviremont.
python -m venv reticulum
source reticulum/bin/activate
RNS Installation
pip install rns
Der RNS installiert alle Werkzeuge einschließlich rnodeconf mit.
Der Flash Vorgang
Auf meinem Arch-basierten Betriebssystem hatte ich das Problem, dass ich als Benutzer nur eingeschränkten Zugriff auf die USB-Geräte habe. Auch wenn ich meinem Benutzer die nötigen Zugriffe gegeben habe, hat rnodeconf das Gerät zwar geflasht, aber das nachträgliche Signieren hat nicht geklappt, da sich der RAK nach dem Flashen neu startet und damit vom Betriebssystem getrennt wird. Dadurch gehen die Rechte, die ich dem Benutzer auf das Gerät gegeben habe, verloren. Also habe ich das Flashen als root vorgenommen.
Laut Anleitung ist es das Gerät /dev/ttyUSB0, bei mir war es allerdings /dev/ttyACM0.
Der Flash Vorgang wir mit folgendem Befehl gestartet:
rnodeconf --autoinstall
Geräte auswahl
Daraufhin muss ein Gerät ausgewählt werden.
In meinem Fall ist es der RAK4631

Warnung akzeptieren
Es wird eine Warnung auftauchen das die Firmware noch im Experimentier Status ist. Dies muss bestätigt werden mit einem Enter.

Frequenz auswahl
Dann muss noch die Frequenz ausgewählt werden.
Da ich mich in Europa befinde, wähle ich 868 MHz aus.

Flash
Am ende sieht man eine Übersicht. Wenn diese korrekt ist muss das mit Y bestätigt werden und die Firmware wird geflasht.

Nutzung des Rnode
Um den RNode zu nutzen gibt es 2 Programme:
- rnsd
- Sideband Android
rnsd
Man muss einmal in der .reticulum/config den RNode als Interface definieren:
[interfaces]
[[Default Interface]]
type = AutoInterface
enabled = Yes
[[RNode LoRa Interface]]
type = RNodeInterface
enabled = yes
port = /dev/ttyACM0
frequency = 869400000
bandwidth = 250000
txpower = 20
spreadingfactor = 7
codingrate = 5
Den Ordner mit der Config findet man im Home Verzeichnis des User. Wenn man den Reticulum Network Stack startet sollte es so aussehen:

Hier sieht man dass das RNode Interface gestartet und konfiguriert wurde und eine Bitrate von 10.94 kbps hat.
Hier hatte ich wieder das Problem das mein Standard User nicht die Berechtigungen hatte auf das Gerät zuzugreifen.
Also mit sudo oder – wenn man ganz “wild” unterwegs ist – chmod 777 /dev/ttyACM0 ausführen.
Sideband Android
Mit Sideband auf Android kann man den RNode per Bluetooth nutzen. Dazu muss man einmal die Sideband App installieren. Ich empfehle, die App aus dem GitHub Repo zu nehmen, da die App aus dem F-Droid-Store veraltet ist.
Um den RNode per Bluetooth zu verbinden, muss man einmal den RNode an den PC anschließen und mit folgenden Befehl das Gerät in den Pairing Modus setzen:
rnodeconf /dev/ttyACM0 -p
Dann wird ein Bluetooth Pin angezeigt, der verwendet werden kann, um sich mit dem RNode zu verbinden.

Sideband Konfiguration
Unter Hardware/RNode müssen folgende Parameter angegeben werden.
- Frequency (MHz): 869.4
- Bandwith (KHz): 250.0
- TX Power (dBm): 2
- Spreading Factor: 7
- Coding Rate: 5
Und bei den Bluetooth Settings müssen beide haken gesetzt werden:
- Connect using Bluetooth
- Device requires BLE
Dann muss man unter Connectivity Connect via RNode einschalten.
Am Ende kann man unter Utilities/Reticulum Status sehen ob der RNode Status up ist und etwas sendet.
