Files
SHiNE-server/docs/Blockchain/CHANGELOG.md
T
AidarKCandClaude Fable 5 172f007e1e Дополнить дизайн ИТХ: форки, списки доверия, децентрализация
- Раздел 6: правило признания — правило чтения (дефолт rota PDA,
  наблюдатель может считать по своему списку доверия); параллельные
  группы закрытий разрешены by design.
- Новый раздел 10 «Форки пользовательских цепочек»: fork-choice
  дежурного (длиннейшая ветка + tie-break), зачекпоинченное побеждает,
  заморозка chain_frozen только при противоречии архивов двух групп,
  рестарт с login-002, байт-в-байт повтор для клиентов.
- Шаг 9.9 проверки: конфликт -> принять версию чекпоинта (один
  пользователь больше не срывает закрытие дня).
- TODO: хэш-выбор дежурного, вход по депозиту, механизм цепочки -002.
- CHANGELOG блокчейна дополнен; формат блоков и AddBlock не менялись.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 18:50:41 +04:00

9.7 KiB
Raw Blame History

История изменений документации блокчейна

2026-07-14 18:43:18 +0400

  • Базовый коммит-ориентир: 4cb98f7.
  • Дизайн ИТХ дополнен по итогам обсуждения (docs/ИТХ/README.md, docs/ИТХ/Спецификация_ИТХ_v1.md):
    • правило признания явно объявлено правилом чтения: дефолт — rota PDA, но наблюдатель может считать голоса по собственному списку доверия («запись — по общему списку, чтение — по любому»); параллельные группы закрытий разрешены by design;
    • новый раздел 10 «Форки пользовательских цепочек»: fork-choice дежурного (длиннейшая ветка от зачекпоинченной вершины + tie-break по меньшему hash32), зачекпоинченное всегда побеждает локальные ветки, заморозка цепочки (chain_frozen) только при противоречии между архивами двух групп закрытий, рестарт с login-002;
    • шаг 9.9 проверки изменён с «конфликт → отказ» на «конфликт → принять версию чекпоинта»: один пользователь больше не может сорвать закрытие дня;
    • правило для клиентов: повтор отправки блока — только байт-в-байт (дедупликация, а не форк);
    • TODO дополнен: детерминированный выбор дежурного через hash, вход в график по депозиту, механизм новой цепочки -002.
  • Формат блоков и правила AddBlock по-прежнему не изменены (код не реализован); при реализации дописать chain_frozen в docs/API/04_Add_Block_to_Blockchain_API.md.

2026-07-13 14:04:59 +0400

  • Базовый коммит-ориентир: af12d7b.
  • Добавлена новая папка документации docs/ИТХ/ — ежедневное закрытие блокчейна (чекпоинты):
    • docs/ИТХ/README.md — краткий обзор для людей;
    • docs/ИТХ/Спецификация_ИТХ_v1.md — подробная спецификация для реализации (формат чекпоинта в Arweave, меркл-правила ИТХ, rota PDA DAO, слот CheckpointStateBlock в PDA серверов, канал закрытий с командой /.checkpoint, алгоритмы дежурного и проверяющего).
  • Формат блоков и правила AddBlock не изменены: это новый мета-слой поверх существующего блокчейна.
  • Код пока не реализован; при реализации обязательно дописать /.checkpoint в 02_Channel_Commands.md и CheckpointStateBlock в формат user_pda.
  • В README.md этого каталога добавлен раздел «Смежная документация» со ссылками на docs/ИТХ/.

2026-06-26 17:45:18 +0400

  • Базовый коммит-ориентир: 44a1ba0.
  • На t.shineup.me подтверждена рабочая схема startup sync и full-resync:
    • после рестарта сервер добивает BlockchainTmpRecovery и BlockchainResyncRecovery;
    • aidartest-001 успешно подтягивается с shineup.me;
    • итоговое локальное состояние по aidartest-001 дошло до last_block_number=13.
  • В Dev_Docs/Blockchain/sync-between-servers.md добавлен практический результат ручной проверки на тестовом сервере.

2026-06-26 17:03:22 +0400

  • Базовый коммит-ориентир: 71fdee0.
  • Обычный AddBlock переведён на crash-safe схему через временный кандидат <blockchainName>.tmp_bch, sidecar <blockchainName>.write_check и marker <blockchainName>.write_pending.
  • BlockchainTmpRecoveryOnStartup теперь разбирает marker-driven recovery для обычной записи блока:
    • если marker есть, recovery либо завершает swap tmp -> main, либо удаляет мусор;
    • если marker нет, временные артефакты считаются мусором и удаляются.
  • В Dev_Docs/Blockchain/sync-between-servers.md добавлено описание обычного AddBlock recovery и разделение между write_pending и resync_pending.

2026-05-24 11:40:00 +0300

  • Базовый коммит-ориентир: abdce05.
  • TEXT_REPOST (subType=30) оставлен как зарезервированный формат, но новые блоки репоста временно отключены на уровне AddBlock.
  • В 11_TEXT_Blocks.md зафиксировано, что запись TEXT_REPOST временно не используется до будущей реализации.
  • В Dev_Docs/API/04_Add_Block_to_Blockchain_API.md добавлен код отказа repost_disabled.

2026-05-21 19:05:00 +0300

  • Базовый коммит-ориентир: 5344c42.
  • Добавлен новый TEXT-подтип TEXT_REPOST (subType=30):
    • обновлён перечень типов в 11_TEXT_Blocks.md;
    • обновлена быстрая карта типов в 00_Blockchain_Formats_and_Block_Types.md.
  • Уточнено API-описание поддержанных подтипов в Dev_Docs/API/04_Add_Block_to_Blockchain_API.md.
  • В документе Dev_Docs/API/08_MCP_Чтение_и_дозапись_персонального_публичного_чата.md зафиксировано, что чтение канала учитывает TEXT_POST и TEXT_REPOST.

2026-05-20 11:34:17 +0300

  • Базовый коммит-ориентир: a53444b.
  • В 13_CONNECTION_Blocks.md добавлены новые CONNECTION подтипы:
    • 60/61known_person / unknown_person (знаю этого человека);
    • 70/71shine_confirmed / shine_unconfirmed (точно уверен, что сияющий);
    • 74/75shine_seen / shine_unseen (мало знаком, но видел сияющим).
  • Обновлён список CONNECTION-подтипов в Dev_Docs/API/04_Add_Block_to_Blockchain_API.md.

2026-05-19 20:30:21 +0300

  • Базовый коммит-ориентир: 7986184.
  • Уточнён документ 11_TEXT_Blocks.md: для TEXT_EDIT_POST и TEXT_EDIT_REPLY зафиксировано, что textLen=0 допустим и трактуется как логическое удаление сообщения.
  • Явно закреплено, что отдельного DELETE-подтипа нет, удаление выполняется edit-блоком.

2026-05-19 00:22:46 +0300

  • Базовый коммит-ориентир: c27da63a3e65.
  • Актуализирован README.md как точка входа для MVP-документации по протоколу.
  • В документации явно зафиксировано, что channelType=100 и channelType=200 присутствуют в формате, но пока не используются в UI.
  • Актуализирован перечень REACTION-подтипов: добавлен REACTION_UNLIKE (subType=2).
  • Актуализирован перечень CONNECTION-подтипов: добавлены SPOUSE/PARENT/CHILD/SIBLING и обратные операции.
  • В документ 02_Blockchain_Kinds_and_Lines.md добавлены фактические серверные правила валидации line-полей.
  • Обновлён корневой AGENTS.md: формат блокчейна менять только после явного подтверждения пользователя и с предварительным предупреждением.

2026-05-13 00:02:32 +0300

  • Базовый коммит-ориентир: f63f40f1eb2f.
  • Добавлен текущий формат CreateChannelBody с полями channelType (2 байта) и channelTypeVersion (2 байта).
  • Зафиксированы типы каналов: 0=stories, 1=public, 100=personal, 200=group.
  • Серверная уникальность имени канала изменена на owner + type + name(slug).
  • Root-канал 0 переименован в stories на уровне API-чтения.
  • Для персонального канала (type=100) включена сборка парного потока при чтении (A->B + B->A, если существует).
  • Добавлена поддержка командного префикса /. и команды /.desc для актуализации описания канала при чтении.
  • Зафиксированы команды /.add и /.remove для каналов type=200 (зарезервировано под расширение участниками).
  • В AGENTS.md добавлено обязательное правило актуализации документации в Dev_Docs/Blockchain/.