in Evaluierung
LoRa Mesh
Angetreten sind wir mit einer Idee: local-first Peer-to-Peer-PWAs, die über ein LoRa®-Mesh weiterlaufen, wenn Internet oder Stromnetz ausfallen — und an Orten, die beides nicht haben. Die Messungen haben diese Idee nicht begraben, sondern zugeschnitten: Der Funkkanal trägt keine Alltagsdatenmengen, aber er trägt Handshakes, Buchungen und signierte Ereignisse zuverlässig über Kilometer — ohne Infrastruktur, die jemand betreiben muss. Aus der Evaluierung ist eine Anwendungsklasse geworden: mesh-calendar, eine experimentelle Terminverwaltung für Friseure, läuft bereits in diesen Bytes.
Ergebnisse
- 6. September 2026 — eine Terminbuchung ist über das Mesh gelaufen. Zwei Meshtastic-Knoten, EU 868, das langsame Standard-Preset, und nirgends ein IP-Pfad: Die Buchung einer Kundin reiste zum Laden und stand 31 Sekunden später in dessen Tagesplan — ein Termin, den der Laden nie eingetragen hat. Die ganze Sitzung — Regeln, Belegt-Maske, Buchung — kostete 9,3 Sekunden Sendezeit, rund 2,5 % dessen, was EU 868 einem Sender pro Stunde zugesteht. Es ist derselbe Funk, auf dem eine Todo-Liste mit drei Einträgen spürbar zäh ist. Am Funk hat sich nichts geändert, am Zuschnitt der Daten alles. Die Demo läuft im Browser; zwei Tabs vertreten die Funkgeräte, wenn keine da sind.
- 6. September 2026 — das Mesh trägt die Daten, nicht das Programm. Die naheliegende Anschlussfrage an einen Demonstrator ist, wie man ihn überhaupt über das Mesh bekäme, und die Antwort ist eine Rechnung. Die Hülle der Buchungs-App misst 150 KB komprimiert — davon sind 85 KB die Meshtastic-Bibliothek samt der Polyfills, ohne die sie nicht baut; gemessen, indem diese Bibliothek allein gebaut wurde. Framework und halbe App wegzulassen spart ein Fünftel, keine Größenordnung. Über LoRa sind das rund 780 Frames: Stunden im Standard-Preset, sobald man die gesetzliche Sendezeit mitzählt — und die ist die Grenze, nicht die Datenrate. Gegen die 9,3 Sekunden, die eine ganze Buchungssitzung kostet, ist das Ausliefern der App etwa das Fünfzigfache dessen, was sie danach je verbraucht. Also kommt sie einmal an — über WLAN, einen Hotspot am Tresen oder einen Code und einen Moment Internet — und ist von da an installiert. Der Hebel wäre nicht ein kleineres Framework, sondern ein kleinerer Funk-Client: Meshtastic-Knoten sprechen auch HTTP.
- 4. September 2026 — erster Lauf über ein echtes Mesh, und die Lektion kam gleich mit. Durchsatz: Schon eine Todo-Liste mit drei kurzen Einträgen repliziert spürbar zäh — und der Funk ist nur die halbe Erklärung. Der Testaufbau nutzte OrbitDB mit abgeschaltetem Netzwerk-Sync: Der Kurier trägt die content-adressierten Blöcke selbst und legt sie direkt in den lokalen Blockstore — das IPFS-Netzwerk wird dabei nie befragt. Die Blöcke sind verhasht und signiert wie in einer Blockchain, nur ohne deren Konsens: Einträge dürfen mehrere Vorgänger haben, Zweige führen wieder zusammen — Fälschungssicherheit ohne Einigung. Der Erstkontakt ist das Schwergewicht — Manifest, Access-Controller, Identität und Einträge reisen als Block-Bootstrap von einigen Kilobyte, gzip halbiert sie etwa —, und auch danach halten Signaturen und Identitätsverweise jeden Eintrag bei hunderten Bytes. Darüber liegt die Duty-Cycle-Grenze (EU 868: ~6 Minuten Sendezeit pro Stunde). Der Kurier selbst funktioniert — gebaut und getestet in funkpost, an diesem Tag erstmals über ein echtes LoRa-Mesh zwischen zwei unabhängigen Knoten gelaufen, je ein Desktop-Browser auf beiden Seiten — aber Standard-Büroanwendungen scheiden aus. Der Aufbau lässt sich live ausprobieren: Die Demo repliziert eine Todo-Liste über das Mesh.
- Als Fallback bei Internet- oder Stromausfall ist die aktuelle Anpassung ungeeignet: Sie schiebt ganze OrbitDB-Blöcke, und die trägt die Datenrate nicht. Ein Folge-Release ist bereits in Überlegung, das arbeitet wie mesh-calendar — wenige Bytes Text pro Ereignis statt Blocktransfers. Was kein Release beseitigt: Funk-Hardware bräuchte weiterhin jeder Teilnehmer.
- Plattform: Web Bluetooth läuft nur in Chromium auf Android und Desktop — kein iOS-Browser. Ausgesperrt ist iOS deshalb nicht: Über WLAN — ein mobiler Hotspot genügt — erreicht es einen Knoten über Meshtastics HTTP/TCP-API; eine native App ginge ebenfalls und ist nicht Teil dieser Evaluierung. Gerätestreuung ist real: Ein GrapheneOS-Telefon spricht spürbar stabiler mit dem Knoten als Android-Chrome.
- Verbreitung: Kaum jemand trägt heute einen Funkknoten. Das ist weniger ein Urteil als die eigentliche Entwurfsaufgabe: Kommerzielle Anwendungen brauchen Ideen, die beides zugleich leisten — die Knoten verbreiten und einen Nutzen bieten, der das Mittragen rechtfertigt. Ein Anwendungsfall mit klarem Alleinstellungsmerkmal verteilt seine Hardware selbst.
Die drei Ebenen
Drei Ebenen teilen sich das eine Funkgerät und sonst nichts, und jede ist danach benannt, was sie überquert — ein Handshake, eine Datenbank, ein Ereignis. Zwei sind über echte Hardware gelaufen und tragen, was das gekostet hat; die dritte ist gezeichnet und nicht gebaut:
Das Terminplanungs-Beispiel existiert inzwischen: mesh-calendar, ein Friseur-Terminbuch im Browser — zwei Tabs vertreten das Funkgerät, wenn keines verbunden ist. Positioniert nicht als Fallback für Internetausfälle, sondern als alternativer Pfad: Termine, die sich in bestehende Planungstools synchronisieren und Metadaten gar nicht erst erzeugen.
Der Zuschnitt der Daten entscheidet, was überhaupt funkt. Der Salon sendet keinen Terminplan, sondern Regeln plus eine Belegt-Maske — ein Bit pro Slot, drei Wochen in rund 112 Bytes, ein Frame, egal wie voll der Kalender ist. Freie Slots berechnet jedes Gerät lokal, das Stöbern kostet keine Funkzeit. Yjs trägt genau eines, und es sind nicht die Termine: es trägt die Regeln des Salons, geschrieben von einer Handvoll fester Geräte, wo Zusammenführen wirklich hilft. Die Buchungen liegen daneben in einem Log signierter, unveränderlicher Einträge — denn ein Yjs-Dokument grüßt seine Gegenstellen mit einer Zusammenfassung, die mit jedem je schreibenden Autor wächst: nach tausend Kundinnen rund sechs Kilobyte, dreißig Frames, und sie schrumpft nie wieder. Der Gruß des Logs ist ein kleiner Fingerabdruck pro Tag, in jeder Größenordnung gleich groß, und er vergisst den letzten Monat, statt ihn für immer zu behalten. Was gar nicht auf den Funk gehört, ist genauso bewusst gewählt — der Storno-Token (er lebt im .ics-Link, ins Dokument geht nur der abgeleitete Public Key), die .ics-Datei selbst, und das Urteil über einen umkämpften Slot, das jedes Gerät beim Lesen identisch berechnet. Konvergenz ist noch keine Einigung — also wird Einigung gerechnet, nicht gefunkt. Zwei neuere Züge vervollständigen das Bild: Autorität ist eine Signatur, keine Konvention — eine Entscheidung ohne Signatur des Salons wird beim Lesen verworfen, ein Storno braucht die Capability-Signatur der Buchung selbst —, und der Abgleich verstummt bei Einigkeit: Peers, deren Tage übereinstimmen, tauschen einen Frame und schweigen.
Eine Ebene ausprobieren
Beide laufen im Browser. Mit ?mesh=bc vertreten zwei Tabs die beiden Funkgeräte, keines von beiden braucht also Hardware zum Ausprobieren; ein Meshtastic®-Knoten über Web Bluetooth macht es real. Es sind Demonstratoren, keine Produkte — was das heißt, steht auf der Übersichtsseite.
Technische Grundlagen
- funkpost — der Byte-Kurier selbst: Framing, ARQ und Duty-Cycle-Pacing über Meshtastic®-Funkgeräte — zwei Datenebenen gebaut (OrbitDB und Yjs), Signalisierungsebene entworfen; Live-Demos.
- webrtc-qr — die Bibliothek: Zwei Geräte verbinden sich über einen gescannten Code — ohne Signalisierungsserver.
- qr01 — das Tutorial-Kapitel dazu: Eine Todo-Liste wandert per gescanntem Code von Handy zu Handy — über einen WLAN-Hotspot, ganz ohne Internet.
Testkanal
Zwei Funkgeräte hören sich nur, wenn sie denselben Schlüssel tragen — und wenn nicht, kommt nichts an und nichts sagt es, was genau wie ein leerer Raum aussieht. Das hier ist unserer, bewusst veröffentlicht: ein Treffpunkt für alle, die die Demonstratoren zu zweit ausprobieren wollen. Ein Geheimnis ist er nicht, und geschützt hat der Kanalschlüssel darin ohnehin nichts.
le-space.de · EU_868 · LONG_FAST · ⌗3dd3
Beide Demonstratoren zeigen diesen Fingerabdruck neben der Kanalauswahl. Ein Vergleich über die Geräte hinweg lohnt sich: Ein Kanal kann einen vertrauten Namen und einen völlig anderen Schlüssel tragen, und der Name verrät es nicht.
Der Import ersetzt den gesamten Kanalsatz — jeder andere Kanal auf dem Gerät wird gelöscht, auch Schlüssel, die es sonst nirgends gibt. Vorher sichern, was darauf liegt.
- Rolle CLIENT_MUTE — ein Standardknoten sendet alles weiter, was er hört, und in einem vollen Mesh geht dafür der Großteil seiner Sendezeit drauf: für fremde Pakete. Stummgeschaltet trägt er nur den eigenen Verkehr.
- Preset SHORT_TURBO für intensives Testen — 21.880 bit/s statt 1.070 bei LONG_FAST, dasselbe Frame kostet also ein Zwanzigstel der Luftzeit, und Reichweite spielt über den Tisch keine Rolle. Im Kanal oben steckt es bewusst nicht: Das Preset gehört zur Funkkonfiguration, alle Beteiligten müssen also gleichzeitig umschalten, sonst hören sie sich nicht mehr.
Das Band ist geteilt und gesetzlich rationiert — EU 868 gibt jedem Sender rund sechs Minuten Sendezeit pro Stunde, und in einem Community-Mesh sitzen womöglich hundert Nachbarn in Hörweite. Bench-Etikette hat den Rest, und Kanäle erklärt, wie ein eigener entsteht.
Verwandte Arbeiten
- btcmesh — schickt signierte Bitcoin-Transaktionen über ein Meshtastic-Mesh an ein Relay, das sie ins Netz gibt — dasselbe Kurier-Muster, angewandt auf Geld.
- darkwire — ein Projekt vom Bitcoin-2025-Hackathon: eine Ende-zu-Ende-Bitcoin-Transaktion über LoRa, ohne Internet auf der Senderseite.
- Reticulum — der Kryptographie-zuerst-Mesh-Stack der Szene — läuft über LoRa, Paketfunk, WLAN und alles dazwischen; international die bekannteste Arbeit dieser Art.
- MeshCore — eine schlankere LoRa-Mesh-Firmware, die neben Meshtastic gerade ihre eigene Community in Deutschland aufbaut.
- qaul — ein Messenger für Internet-Abschaltungen — Geräte verbinden sich direkt über Bluetooth und WLAN; in der Netzfreiheits-Szene bekannt.
Communities in Reichweite
- Munich Mesh — die Münchner Meshtastic-Community.
- Berlin Chaos Mesh — Berlins Mesh-Community rund um die c-base — Meshtastic, MeshCore und Reticulum.
- MeshHessen — ein regionales Mesh über ganz Hessen.
- Meshtastic-Ortsgruppen — das Verzeichnis aller Ortsgruppen, vom D-A-CH-Telegram bis lora.ms.
Austausch
Wir teilen Messwerte und den Testaufbau. Wer in derselben Nische arbeitet — Meshtastic-Praktiker, Forschende, Local-First-Entwickler — ist willkommen.
Kontakt aufnehmen — kontakt@le-space.de Telegram · @lfp2p X · @nicokrausex
Im Mesh sind wir erreichbar unter le-space.de e45c, YSGs0MrcH9QOcAlIxvYkJWaV64AvKgx/tXS27SiCzXM=
Identifizierend ist der öffentliche Schlüssel; Knotennamen vergibt der jeweilige Betreiber. Der Knoten funkt in der EU-868-Region und ist mobil — erreichbar dort, wo aktuell ein Mesh in Reichweite ist.
LoRa® is a trademark of Semtech Corporation. Meshtastic® is a registered trademark of Meshtastic LLC. Meshtastic software components are released under various licenses, see GitHub for details. No warranty is provided - use at your own risk. This site is not affiliated with or endorsed by Semtech or the Meshtastic project.