Meshcore firmware 1.14.0 has been released and introduces the new multi-byte path hash feature. What follows is a quick dump of information I have gathered directly from the developers.
A description of this feature can be found here Multi-byte paths
The sender decides what path hash size it wants to use and the repeater will respect that. If messages originates from the repeater it also gets do define the path hash size to use for the message (for example a flood advert)
Compatibility looks like this
v1.13.0 and older will forward 1-byte packets
v1.13.0 and older will drop 2-byte packets
v1.13.0 and older will drop 3-byte packets
v1.14.0+ will forward 1-byte packets
v1.14.0+ will forward 2-byte packets
v1.14.0+ will forward 3-byte packets
Using multi byte hash’s will decrease the hop count for your message.
1-byte = ~64 hops
2-byte = ~32 hops
3-byte = ~21 hops
So at the end of the day this feature is partly cosmetic and useful for getting a much better picture of the route, via repeaters, a message takes but it will also reduce some “duplicate” traffic to the extent where we have repeaters close to each other with the same first byte in their public key.
It is also being used in the new message loop detection feature which was rolled out in 1.14.0 but I am not sure we have seen this phenomenon here in Switzerland yet. My understanding is that its related to a mis-behaving or modified repeater.
Ich habe bereits seit es vor einigen Wochen im multibyte-paths Branch verfügbar war damit herumgespielt und finde dies eine supercoole Sache. Die Kollision des 1 Bytes hat ja praktisch verunmöglicht die Pfade des Verkehrs zu analysieren. Leider wird dies wohl nie komplett verschwinden.
Es war ja lange die Diskussion ob es als Breaking Change in einer V2 der Spec implementiert werden sollte oder so wie jetzt einigermassen Rückwärtskompatibel.
Das Problem momentan sehe ich in der Anforderung dass alle Repeater auf dem Pfad dies unterstützen müssen. Erfahrungsgemäss dauert es sehr lange bis alle Repeater auf v.1.14+ upgraded sind. Und auch dann werden Companions noch immer 1 Byte als Default Einstellung verwenden. Die Entscheidung als neuen Default 2Byte in der FW und APP zu setzten wird vermutlich leider nie getroffen werden. Einerseits weil nie ganz klar ist ob alle Repeater dies bereits unterstützen und auch weil diffuse Privacy Anforderungen dagegen sprechen.
Damit werden wir in Zukunft weiter mit dem 1Byte Overlap leben müssen.
Irgendwie sollt ein Verfallsdatum in der FW implementiert werden, so dass verhindert werden könnte dass alte FW Releases beliebig lange in Betrieb verbleibt.
I just want to mention that for the moment DO NOT update remote or had to access Repeaters. There are some bugs in 1.14 which can break OTA, Remote Admin and some other stuff…