Mehr Eindeutigkeit im wachsenden Mesh-Netz
Mit Firmware-Version 1.14 hat MeshCore eine wichtige Neuerung erhalten: den Multi-Byte Path Hash. Was es damit auf sich hat, warum das für wachsende Netze wie unser Dresdner Netz relevant ist – und was Repeater-Betreiber jetzt tun sollten, erklären wir hier.
Was ist ein Path Hash?
Wenn eine Nachricht das MeshCore-Netz durchläuft, hinterlässt jeder beteiligte Repeater eine kurze Kennung im Paket – den sogenannten Path Hash. Dieser Hash ist ein Ausschnitt aus dem öffentlichen Schlüssel des Repeaters.
Bisher verwendete MeshCore standardmäßig nur 1 Byte pro Repeater im Pfad. Das erlaubt zwar bis zu 64 Hops – reicht also für sehr große Netze –, hat aber einen Nachteil: Mit nur 1 Byte gibt es lediglich 254 mögliche eindeutige Werte (0x00 und 0xFF sind reserviert). In größeren oder überregional vernetzten Meshes wird es deshalb schnell zu Kollisionen kommen: zwei verschiedene Repeater teilen sich dann denselben Hash-Wert.
Das Netz funktioniert zwar weiterhin korrekt, denn Pakete werden trotzdem weitergeleitet. Aber Analyse-Tools wie der LetsMesh.net Analyzer oder MeshMapper können die Routen nicht mehr eindeutig darstellen – mehrere Repeater erscheinen dann als ein und dasselbe Gerät.
Multi-Byte Path Hash: die Lösung
Mit Firmware 1.14 wurde die Möglichkeit eingeführt, Path Hashes mit 1, 2 oder 3 Bytes zu verwenden. Die Unterschiede im Überblick:
| Modus | Bytes | Mögliche IDs | Maximale Hops |
|---|---|---|---|
| 0 (Standard) | 1 Byte | 254 | 64 |
| 1 | 2 Byte | 65.534 | 32 |
| 2 | 3 Byte | ~16 Mio. | 21 |
Der Wechsel auf 2 Byte reduziert die Kollisionswahrscheinlichkeit drastisch – bei 32 möglichen Hops, die für die meisten Netze völlig ausreichend sind.
Was steuert path.hash.mode genau?
Der CLI-Befehl path.hash.mode auf einem Repeater legt fest, mit welchem Hash-Format der Repeater seine eigenen Adverts (also seine Ankündigungen im Netz) sendet.
Wichtig zu verstehen: Der Befehl beeinflusst nicht, welche Pakete der Repeater weiterleitet. Ein Repeater mit Firmware 1.14+ leitet Pakete mit 1-, 2- und 3-Byte-Hashes immer gleichermaßen weiter – unabhängig von der eigenen Einstellung.
Verfügbare Modi
set path.hash.mode 0 # 1-Byte-Hash (Standard, Kompatibilität mit älteren Firmwares) set path.hash.mode 1 # 2-Byte-Hash (empfohlen für Repeater auf 1.14+) set path.hash.mode 2 # 3-Byte-Hash (maximale Eindeutigkeit, 21 Hops)
Den aktuellen Wert auslesen:
get path.hash.mode
Path Hash Size für Nachrichten (Companion/App)
Neben dem Repeater-Setting gibt es auch auf Seite der Companion-App eine Einstellung für die Hash-Größe ausgehender Nachrichten:
Einstellungen (Zahnrad) → Experimental Settings → Default Path Hash Size
Hier kann zwischen 1-Byte, 2-Byte und 3-Byte gewählt werden. Diese Einstellung gilt dann für Kanal-Nachrichten und Direktnachrichten, die das Gerät selbst abschickt.
Achtung: Diese Einstellung sollte erst umgestellt werden, wenn der überwiegende Teil der Repeater im eigenen regionalen Mesh bereits auf Firmware 1.14+ läuft. Ältere Firmware-Versionen vor 1.14 können 2- und 3-Byte-Pakete nicht weiterleiten und lassen sie stillschweigend fallen.
Warum jetzt schon auf 2-Byte am Repeater wechseln?
Auch wenn im Dresdner Netz noch nicht alle Companion-Geräte auf 2-Byte-Nachrichten wechseln sollten, gibt es gute Gründe, die Repeater-Adverts bereits jetzt umzustellen:
- Bessere Netzwerkanalyse: Tools können Repeater mit 2-Byte-Adverts zuverlässiger auseinanderhalten.
- Kein Nachteil: Adverts mit 2 oder 3 Byte werden von allen 1.14+-Repeatern problemlos weitergeleitet.
- Community-Signal: Wer seinen Repeater auf Mode 1 oder 2 setzt, signalisiert damit, dass er bereits auf Firmware 1.14+ läuft – das hilft der Gemeinschaft einzuschätzen, wann der Gesamtumstieg sinnvoll ist.
2- und 3-Byte-Adverts haben eine etwas geringere Reichweite als 1-Byte-Adverts – aber ein Repeater muss seine eigene Anwesenheit ohnehin nicht über 21 oder 32 Hops hinaus ankündigen.
Empfehlung für Repeater-Betreiber in Dresden
Wer seinen Repeater bereits auf Firmware 1.14.0 oder neuer aktualisiert hat, kann path.hash.mode 1 (2-Byte) bedenkenlos setzen:
set path.hash.mode 1
Ein Neustart ist nicht erforderlich. Den Companion vorerst auf dem Standard-1-Byte-Modus belassen, bis sich die Community abgestimmt hat und die Repeater-Dichte auf 1.14+ ausreichend groß ist.
Welche Firmware dein Repeater aktuell läuft, lässt sich per CLI abfragen:
version
Firmware-Updates gibt es über den Web-Flasher: flasher.meshcore.co.uk
Weiterführende Links
- 🔗 MeshCore FAQ: Multi-Byte Path Hash
- 🔗 MeshCore CLI-Referenz: path.hash.mode
- 🔗 Firmware-Releases auf GitHub