# История изменений документации блокчейна ## 2026-07-14 20:43:43 +0400 - Базовый коммит-ориентир: `118be41`. - В `docs/ИТХ/Спецификация_ИТХ_v1.md` изменён магик файла чекпоинта: вместо `SHNCKPT1` (8 байт) — читаемый `SHiNE-CHECKPOINT` (16 байт ASCII, по образцу `SQLite format 3\0`). Версия формата в магик не входит — она в поле `v` заголовка и в первой строке preimage. ## 2026-07-14 19:56:50 +0400 - Базовый коммит-ориентир: `172f007`. - В `docs/ИТХ/Спецификация_ИТХ_v1.md` из TODO убран «вход в график по депозиту»: вход в группу закрытий — по доверию, не за деньги. Зафиксирована целевая модель: DAO ведёт список как временный уровень, пока не сформировано сообщество сияющих; далее приём/исключение серверов — через голосование сияющих (правка в разделе 2 и в TODO). ## 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 схему через временный кандидат `.tmp_bch`, sidecar `.write_check` и marker `.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/61` — `known_person / unknown_person` (знаю этого человека); - `70/71` — `shine_confirmed / shine_unconfirmed` (точно уверен, что сияющий); - `74/75` — `shine_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/`.