docs(sqlite): clarify verified node and owner write failures

This commit is contained in:
evgeny committed 2026-10-27 06:55:54 +01:00
1 parent f66c4e928e
commit 8bf09d9513
2 files changed
+9 -4

No files matched your search

+5 -4
View File
@@ -97,9 +97,9 @@ int topo_node_sqlite_member_in_channel(sqlite3* db, const char* channel_id, uint
* БД заполняет проверяющий подписи member_sync/chat_join; BGP-placeholder не предоставляет доступ. */
int topo_node_sqlite_member_allowed(sqlite3* db, const char* channel_id, uint64_t node_id);
/* Обновить owner-блок и deleted из adm_tags; 0/-1, отсутствующая строка даёт 0 без вставки.
* adm_tags/adm_tags_sig могут быть NULL; ненулевая подпись — 64 байта, проверяется вызывающим. */
/* Запись owner-блока в одну существующую строку;0/-1. Проверяет все bind/step/changes=1/finalize.
/* Обновить owner-блок и deleted из adm_tags в одной существующей строке;0/-1,отсутствующая строка — ошибка.
* adm_tags/adm_tags_sig могут быть NULL;ненулевая подпись64 байта,проверяется вызывающим.
* Проверяет все bind/step/changes=1/finalize.
* Работает в транзакции caller;при отказе caller откатывает её до любых runtime-уведомлений. */
int topo_node_sqlite_member_owner_put(sqlite3* db, const char* channel_id, uint64_t node_id,
const char* adm_tags, const uint8_t* adm_tags_sig, int storage);
@@ -113,7 +113,8 @@ int topo_node_sqlite_member_del(sqlite3* db, const char* channel_id, uint64_t no
/* Записать проверенные вызывающим ключи/имя в nodes; 0/-1. Пустое имя сохраняет прежнее при UPDATE.
* Ключи заменяются независимо от update_ts; update_ts хранит максимум, created_at сохраняется, если не NULL.
* Новая строка online=1, при UPDATE online сохраняется. Подпись и свежесть здесь не проверяются. */
* Новая строка online=1, при UPDATE online сохраняется. Подпись и свежесть здесь не проверяются.
* Проверяет changes=1:подавленная trigger запись не считается успехом. Транзакцией управляет caller. */
int topo_node_sqlite_node_update_verified(sqlite3* db, uint64_t node_id,
const char* name, const uint8_t* x25519, const uint8_t* ed25519, uint64_t update_ts, time_t created_at);
@@ -38,6 +38,10 @@ node_update_verified записывает уже проверенные ключ
В nodes.update_ts сохраняется максимум прежнего и входного значения; это не фильтр замены ключей.
created_at сохраняется, если уже не NULL. Новая строка получает online=1,
обновление существующей строки online не меняет.
Проверяются bind/step/changes=1/finalize;подавленная trigger запись возвращает ошибку.
member_owner_put также требует ровно одну изменённую строку,проверяет все SQL-этапы
и принимает NULL adm_tags/подпись. Эти операции используют транзакцию caller:
caller откатывает ошибку до публикации runtime-состояния и уведомлений.
## Снимок и bootstrap