SHA256
111 lines
11 KiB
Markdown
111 lines
11 KiB
Markdown
# История изменений документации блокчейна
|
||
|
||
## 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 схему через временный кандидат `<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/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/`.
|