docs(chat): describe atomic channel creation and verified failure paths
This commit is contained in:
1 parent
8003413d97
commit
04ce61e3ca
3 files changed
+64
No files matched your search
@@ -84,6 +84,9 @@ update_rtt обновляет node_addresses.rtt и peers_*.node_RTT в един
|
||||
channel_put требует публичные ключи по 32 байта и подпись 64 байта.
|
||||
При конфликте channel_id публичные ключи должны совпасть: меняются имя/владелец/подпись,
|
||||
переданные privkey заменяют прежние, NULL сохраняет их. Криптографическую проверку делает вызывающий.
|
||||
SAVEPOINT channel_put атомарно объединяет описание с peers-таблицей, локальной схемой и индексами.
|
||||
Проверяются выделение SQL, все bind/step/changes=1/finalize и RELEASE; при отказе частичная схема не фиксируется.
|
||||
Если ROLLBACK TO сам завершился ошибкой, RELEASE не выполняется: открытая транзакция требует отката/закрытия БД владельцем.
|
||||
|
||||
Суффикс таблиц строится из первых 63 символов channel_id: вне [A-Za-z0-9_] заменяются на '_'.
|
||||
Штатные channel_id — десятичные uint64. Строка channels.channel_id хранит исходное значение.
|
||||
@@ -91,6 +94,7 @@ channel_put требует публичные ключи по 32 байта и
|
||||
member_placeholder_put вставляет source=1 с нулевой join_sig; существующую строку не меняет.
|
||||
member_block_put заменяет ключи/join/update/userinfo/дерево приглашений и устанавливает source=0,
|
||||
сохраняя owner-блок и локальные поля. NULL join_sig записывается как 64 нулевых байта.
|
||||
Все 11 bind, step, changes=1 и finalize проверяются; функция работает в транзакции вызывающего.
|
||||
member_owner_put меняет adm_tags/подпись/storage/deleted без вставки отсутствующей строки.
|
||||
Placeholder не участвует в Merkle-хеше; сетевой формат и проверка версий принадлежат member_sync.
|
||||
|
||||
|
||||
Reference in new issue
Block a user