Пользовательские оверлеи
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Узлы TON взаимодействуют друг с другом, формируя подсети, называемые оверлеями. Существует несколько общих оверлеев, в которых участвуют узлы, например: публичные оверлеи для каждого шарда, валидаторы также участвуют в общем оверлее валидаторов и оверлеях для конкретных наборов валидаторов.
Узлы также могут быть настроены для присоединения к пользовательским оверлеям. В настоящее время эти оверлеи используются для двух целей:
- трансляция внешних сообщений
- трансляция кандидатов на блоки.
Участие в пользовательских оверлеях позволяет избежать неопределенности публичных оверлеев и повысить надежность доставки и сократить задержки.
Каждый пользовательский оверлей имеет строго определенный список участников с заранее заданными правами, в частности право на отправку внешних сообщений и блоков. Конфигурация оверлея должна быть одинаковой на всех участвующих узлах.
Если у вас под контролем несколько узлов, целесообразно объединить их в пользовательский оверлей, где все валидаторы смогут отправлять кандидатов на блок, а все LS смогут отправлять внешние сообщения. Таким образом, LS будет синхронизироваться быстрее, в то время как скорость доставки внешних сообщений будет выше (и доставка в целом более надежной). Обратите внимание, что дополнительный оверлей вызывает дополнительную нагрузку на трафик сети.
Пользовательские оверлеи по умолчанию
Mytonctrl использует пользовательские оверлеи по умолчанию, доступные по адресу https://ton-blockchain.github.io/fallback_custom_overlays.json. Этот оверлей используется нечасто и предназначен для экстренной ситуации при проблемах с подключением к публичному оверлею. Чтобы прекратить участие в пользовательских оверлеях по умолчанию, выполните команды
MyTonCtrl> set useDefaultCustomOverlays false
MyTonCtrl> delete_custom_overlay default
Создание пользовательского оверлея
Сборка adnl адреса
Чтобы добавить валидаторы в пользовательский оверлей, вы можете использовать либо их fullnode adnl id
, доступный с помощью validator-console -c getconfig
, либо validator adnl id
, который можно найти в статусе mytonctrl.
Чтобы добавить liteservers в пользовательский оверлей, вы должны использовать их fullnode adnl id
.
Создание файла конфигурации
Создайте файл конфигурации в формате:
{
"adnl_address_hex_1": {
"msg_sender": true,
"msg_sender_priority": 1
},
"adnl_address_hex_2": {
"msg_sender": false
},
"adnl_address_hex_2": {
"block_sender": true
},
...
}
msg_sender_priority
определяет порядок включения внешних сообщений в блоки: сначала обрабатываются сообщения из источников более высокого приоритета. Сообщения из публичного оверлея и локального LS имеют приоритет 0.
Обратите внимание, что все узлы, перечисленные в конфигурации, должны участвовать в оверлее (другими словами, им нужно добавить оверлей с точно такой же конфигурацией), в противном случае связь будет плохой, а трансляции прекратятся
Существует специальное слово @validators
для создания динамического пользовательского оверлея, который mytonctrl будет автоматически генерировать в каждом раунде, добавляя всех текущих валидаторов.