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
- 19. September 2026 — eine Identität, die das Telefon überlebt. Ein Sicherheitsschlüssel, zwei Telefone, die nie etwas ausgetauscht haben — ein Galaxy Fold 5 und ein Galaxy A57 — und auf beiden dieselbe Identität: dieselbe Adresse und derselbe Signierschlüssel, aus dem Schlüssel abgeleitet statt irgendwo gespeichert. Ein Passkey gibt seinen öffentlichen Schlüssel nicht heraus, aber zwei seiner Signaturen lassen genau einen zu — die Adresse wird zurückgerechnet, nicht erinnert. Das ergibt eine Liste, die ein verlorenes Gerät übersteht: gesichert, wo immer es Internet gibt, wiedergefunden über einen Namen, der aus dem Schlüssel berechnet wird, und auf dem Ersatzgerät beschreibbar, weil der Access-Controller denselben Schreiber erkennt. Die Identitätshälfte ist auf Hardware gemessen; die Datenbankhälfte läuft im Code und in Tests und kommt als Nächstes auf die Werkbank. Das Verfahren ist vollständig beschrieben.
- 18.–19. September 2026 — Internet zuerst, das Mesh, wenn es wegfällt. Ein früherer Befund an dieser Stelle nannte die OrbitDB-Anpassung als Fallback ungeeignet, weil sie ganze Blöcke schiebt, die die Datenrate nicht trägt. Die Blöcke sind so schwer wie zuvor; der Fallback muss sie nur nicht mehr schieben. Zwei Telefone, die über das Internet synchronisiert haben, teilen das Log bereits, also muss beim Ausfall nur über den Funk, was sich seither geändert hat. Und der Erstkontakt einer Liste — die einigen Kilobyte, die rund sieben Frames kosten — kann den Funk ganz verlassen: Wer als Nächstes Internet hat, sichert die Liste und funkt einen Zeiger von 145 Byte, ein Frame; die Gegenseite holt den Rest über HTTPS von einem IPFS-Gateway, ohne Konto. Die App stellt den Ausfall fest, indem sie das Netz fragt, statt einem Flag zu glauben, und fragt nach, bevor sie auf einen Träger mit rationierter Sendezeit wechselt; sie kann den Kanal auch fragen, ob dort eine andere App zuhört — 33 Byte hin, 32 zurück —, statt Funkgeräte in Reichweite zu zählen. Durchgängig gezeigt in Browser-Tests über ein simuliertes Mesh; der Lauf über zwei echte Knoten steht noch aus. Was kein Release beseitigt: Funk-Hardware braucht weiterhin jeder Teilnehmer.
- 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.
- 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 die Regeln, der Log die Buchungen. Die Regeln schreiben eine 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.
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.