You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.5 KiB

Подписанная запись узла

TOPO_NODE.timestamp — версия всей подписанной записи, а не отдельного адреса. Узел-владелец назначает Unix microseconds, строго больше предыдущей сохранённой версии. Имя, тип, активность, адреса, метаданные сокетов, REALITY и подпись заменяются вместе. Timestamp входит в подпись. Групповые пути и подсети остаются в TOPO_GROUP_NODE и не являются частью общей записи узла.

Получатель проверяет подпись до изменения реестра или маршрутов. Более свежая запись заменяет старую целиком, включая пустые списки адресов. Старые записи игнорируются; разные подписанные записи с одинаковым timestamp — конфликт. Повторное BGP-объявление может обновить путь, но не содержимое общей записи. 8-битный ver сохраняется как диагностический счётчик; свежесть определяется только timestamp.

Таблица node_snapshots хранит полную сериализованную запись без группового окружения. node_addresses остаётся проекцией для поиска и отображения, а не источником для восстановления подписанной записи. При наличии сохранённого snapshot загрузка использует его. Локальная публикация сохраняется до рассылки; ошибка сохранения не разрешает публикацию новой версии.

Timestamp 0 обозначает bootstrap-сведения без подписи (конфиг, приглашение, начальные адреса). Они могут помочь установить первое соединение, но не заменяют принятую подписанную запись. По BGP принимаются подписанные записи с ненулевым timestamp. Формат NODEINFO изменён без обратной совместимости.