diff --git a/doc/node_snapshot.md b/doc/node_snapshot.md index c75ed994..7a3fd930 100644 --- a/doc/node_snapshot.md +++ b/doc/node_snapshot.md @@ -21,6 +21,12 @@ Parser проверяет точную длину пакета и проходи 8-битный `ver` сохраняется как диагностический счётчик; свежесть определяется только timestamp. +Локальный узел группы готовится до удаления прежнего `local_node`: сравниваются сами адреса +и префиксы подсетей, включая замену при прежнем количестве. При отказе памяти, подписи или +конфликте IPv4-маршрутов прежние узел и маршруты сохраняются. Подсети CHAT не публикуются. +`topo_group_update_my_nodeinfo` возвращает число IPv4-подсетей, для CHAT — 0, при ошибке — -1; +рассылку подготовленного NODEINFO выполняет вызывающий. + Живая телефонная занятость передаётся без изменения структуры NODEINFO: в существующем `flags` бит `0x04` означает известное состояние, `0x08` — занятость звонком. Это групповые флаги `TOPO_GROUP_NODE.phone_status`, как флаг рации `0x02`; @@ -58,6 +64,8 @@ snapshot загрузка использует его. Локальная пуб Уникальность определяется endpoint и видом адреса, а не отображаемым классом NAT. Старый производный формат пересоздаётся; bootstrap-загрузка без подписанного snapshot не подтверждает NAT-профиль. +Такая загрузка требует хотя бы одного адреса; отказ SQL/памяти освобождает все частичные списки +и возвращает NULL. Наличие валидного snapshot с пустым списком адресов, напротив, допустимо. При удалении старых `nat_evidence`/`nat_checked` адреса и REALITY сохраняются для bootstrap, старые профили сбрасываются, сериализованные snapshots инвалидируются. Максимальные timestamp snapshots сохраняются, чтобы новая локальная публикация diff --git a/src/routing_layer/topo_node_sqlite_doc.md b/src/routing_layer/topo_node_sqlite_doc.md index 0e891b69..f2ca7f79 100644 --- a/src/routing_layer/topo_node_sqlite_doc.md +++ b/src/routing_layer/topo_node_sqlite_doc.md @@ -26,7 +26,7 @@ db, groups и входные строки/объекты остаются у в | peers_<id> | Блок участника, блок владельца и локальные поля конкретного канала | topo_node_sqlite_init создаёт общие таблицы/индексы, обрабатывает прежние форматы проекции адресов -и восстанавливает deleted из adm_tags. peers_ создаётся при channel_put; +и восстанавливает deleted из adm_tags. peers_<id> создаётся при channel_put; member_local_init идемпотентно добавляет radio_muted. В снимке timestamp — Unix microseconds и версия всей подписанной записи.