Двухбайтный хэш нужен для больших сетей MeshCore. Он сильно снижает вероятность того, что у разных репитеров будут одинаковые префиксы, поэтому маршруты работают надёжнее.
Раньше в сетях MeshCore для маршрутов использовались однобайтные префиксы. Это были первые 2 символа шестнадцатеричного (hex) представления публичного ключа репитера. Такой подход выбрали из-за ограничений технологии LoRa: пакеты должны были быть маленькими, а связь - работать на большом расстоянии.
Один переход (хоп) в маршруте занимал всего 1 байт. Поэтому маршрут мог содержать до 64 переходов. Для небольших сетей этого было достаточно.
По мере роста сетей появилась проблема. Один байт позволяет использовать только 254 уникальных префикса. Некоторые репитеры стали использовать одинаковые префиксы. Это называется коллизией.
Сеть обычно продолжала работать, потому что для защиты данных используется полный ключ устройства. Но маршрутизация стала менее надёжной. Иногда появлялись неоднозначные маршруты, а поиск и устранение проблем в сети становились сложнее.
Начиная с версии прошивки 1.14 можно использовать префиксы длиной 1, 2 или 3 байта. Но на данный момент достаточно размера в 2 байта.
Переход на двухбайтные адреса помогает большим сетям. Вместо 254 префиксов становится доступно 65 535. Коллизии происходят намного реже. Маршруты работают стабильнее, и крупные сети легче масштабировать.
Есть и небольшой недостаток. Поскольку каждый префикс теперь занимает 2 байта, а размер пакета при этом не изменился, в маршрут помещается меньше переходов. Максимум - 32 хопа вместо 64. Но на практике этого количества переходов более чем достаточно.
Используйте официальное приложение MeshCore:
Experimental SettingsDefault Path Hash Size выберите 2-byteИспользуйте официальное приложение MeshCore или подключитесь к репитеру другим способом:
Command Lineset path.hash.mode 1OK