Record completed MEMBERS version verification and isolation coverage

This commit is contained in:
evgeny committed 2026-11-04 01:12:22 +01:00
1 parent eb9d509c47
commit d33aea6305
1 file changed
+33 -3
+33 -3
View File
@@ -4,6 +4,7 @@
ADMIN_KEY, RADIO_CALL, routed JOIN, CHAT NAT_DETECTION, MULTICAST_REPORT и ATTACHMENT_KEYS из этапа 2,
RADIO/BROADCAST/MULTICAST из этапа 3.
Из этапа 3 также закрыты текущий допуск DB_SYNC PUSH/ACK, MESSAGES и SOUND_SETTING.
MEMBERS переведён на отложенную проверку версий; JOIN/recovery проверены через настоящий Merkle.
Из этапа 4 доработаны FILE_TRANSFER, прямой DM, mailbox/custody и попарная доставка личных файлов.
Полная матрица ещё не закрыта.
Граница отмены дисковых операций согласована с пользователем и реализована (раздел 5).
@@ -648,8 +649,37 @@ FILE_TRANSFER и прямого DM. Для реализации mailbox/custody
проходов треугольника: /tmp/member-staged-merkle-stress.log.
Полный ./check.sh:241/241, proxy9/9, burst/load PASS, 210с;
лог /tmp/member-staged-full-check.log. Сборка ядра и выбранных тестов без предупреждений.
- Модель MEMBERS пока НЕ подключена к новому режиму. Следующий этап — служебные поля
- На момент транспортного этапа модель MEMBERS ещё НЕ подключена к новому режиму. Следующий этап — служебные поля
версий в одной таблице, приём в staging, проверка состава и атомарная публикация
вместе с допуском; затем контекст JOIN/recovery и отрицательные сетевые сценарии.
Отдельно уточняется удаление прежнего состава при доказанном исключении самого узла;
подтверждённый отзыв нельзя терять или заменять старым разрешающим бэкапом.
Подтверждённый отзыв нельзя терять или заменять старым разрешающим бэкапом.
04.11.2026: завершён приём и проверка версий MEMBERS.
- CURRENT/PENDING/BACKUP хранятся в одной peers_<channel>. Сетевые страницы до конца
обмена не меняют рабочие записи, права, общие ключи узлов и Merkle-хеши. Сервисы,
desktop GUI и Android читают только CURRENT. Старый формат таблицы несовместим;
миграция не добавлялась согласно принятому контракту devel.
- После окончания сверки одна транзакция объединяет подписанные блоки, проверяет
записи и цепочки приглашений, пересчитывает права, ключи и производные индексы.
Неверную новую версию заменяет действительный бэкап. Если обе версии неверны,
удаляются обе версии только этого участника. Отзыв self не удаляет остальной состав.
Независимо подписанный отзыв владельца сохраняется даже при восстановлении профиля.
Отсутствующая зависимость или ошибка SQL/crypto откладывают решение; транзакция
откатывается. Ошибка не публикует callbacks и не считается успешной синхронизацией.
- Каждый одновременный обмен имеет свой sync_id. Его commit сравнивает версии с
актуальным CURRENT, включая уже завершившиеся обмены других пиров; отмена убирает
только собственные временные строки. После рестарта незавершённые версии убираются.
- Источник проверяет текущий допуск self/peer и точный ключ живого ETCP перед выдачей.
Локальный запрос восстановления не выдаёт состав в обратную сторону. После
восстановления допуска явно запускается обычный обмен и завершается ожидающая
сверка соседа; только после свежей проверки допуска возобновляются история/feedback.
BGP-транзит не получил предметных проверок; UTUN не изменён.
- test_member_versions проверяет перестановку завершения двух пиров, независимую
отмену, fallback, удаление двух неверных версий, сохранение отзыва, пропавшего
инвайтера, SQL rollback, рестарт и границы транзакций. test_merkle_protocol проверяет
публикацию только после успешного commit, в том числе отмену сессии из callback.
test_chat_group_isolation:90/90, включая отказ выдачи MEMBERS и recovery на общем ETCP.
Целевые JOIN, group_policy, DM invite/history, RADIO, MEMBER_FILES и STREAM member
прошли. Пять desktop GUI-тестов прошли; Android assembleDebug завершён успешно.
- Это завершение этапа MEMBERS, а не полная матрица всех протокольных ID из этапа 4.
CALL/DEVGROUP и оставшиеся транспортные/bootstrap входы требуют отдельного аудита.