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:

ModusBytesMögliche IDsMaximale Hops
0 (Standard)1 Byte25464
12 Byte65.53432
23 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


📡 Telegram: t.me/mesh_dresden | info@meshdresden.eu

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert