Keep per-record fallback distinct from membership revocation
This commit is contained in:
1 parent
b0c762aea7
commit
bd175ac87f
2 files changed
+4
-4
No files matched your search
@@ -571,7 +571,7 @@ int topo_node_sqlite_channel_put(sqlite3* db, const char* channel_id,
|
||||
"CREATE TABLE IF NOT EXISTS \"%s\" ("
|
||||
" id INTEGER PRIMARY KEY AUTOINCREMENT," /* суррогатный ключ */
|
||||
" node_id INTEGER NOT NULL," /* ID участника; версии разделяются служебными полями */
|
||||
" record_state INTEGER NOT NULL DEFAULT 0 CHECK(record_state BETWEEN 0 AND 3),"
|
||||
" record_state INTEGER NOT NULL DEFAULT 0 CHECK(record_state BETWEEN 0 AND 2),"
|
||||
" sync_id INTEGER NOT NULL DEFAULT 0," /* 0 у опубликованных записей, id маркера приёма у временных */
|
||||
" previous_id INTEGER," /* прежняя версия на момент получения; не основание для отката новой */
|
||||
" sync_policy BLOB," /* подписанная политика только у маркера приёма (node_id=0) */
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
/* Версии в одной peers_<channel>. Все обычные операции читают/меняют только CURRENT.
|
||||
* PENDING принадлежит одному приёму sync_id; previous_id связывает её с прежней строкой.
|
||||
* BACKUP существует только внутри транзакции проверки. REVOKED хранит доказательство
|
||||
* отзыва после удаления состава и никогда не даёт прав, профилей или сетевых адресов. */
|
||||
enum peer_record_state { PEER_CURRENT = 0, PEER_PENDING = 1, PEER_BACKUP = 2, PEER_REVOKED = 3 };
|
||||
* BACKUP существует только внутри транзакции проверки. Подписанный отзыв — обычная
|
||||
* проверенная запись CURRENT с запретом допуска, а не причина удалить весь состав. */
|
||||
enum peer_record_state { PEER_CURRENT = 0, PEER_PENDING = 1, PEER_BACKUP = 2 };
|
||||
|
||||
/* Результаты channel_get/get_ed25519_pubkey: отсутствие зависимости и отказ чтения различаются. */
|
||||
#define TOPO_SQLITE_LOOKUP_MISSING (-1)
|
||||
|
||||
Reference in new issue
Block a user