SHA256
25 KiB
25 KiB
История изменений документации блокчейна
2026-08-25 19:45:18 +0400
- Базовый коммит-ориентир:
3a58519. - Добавлены runtime-агрегаты статистики:
user_stats_stateхранитowned_public_channels_count,following_users_count,following_channels_count,close_friends_count;channel_stats_stateхранитsubscribers_countдля публичных каналов.
- Обновление статистики выполняется атомарно вместе с записью блока в той же SQL-транзакции
AddBlock. - После полного resync статистика пересобирается из текущих
connections_stateиchannel_names_state, чтобы старые данные продолжали работать.
2026-08-25 19:59:00 +0400
- Базовый коммит-ориентир:
working tree. - Триггер
channel_names_stateдля статистики сделан устойчивым к старым данным, где канал уже есть, а владельца ещё нет вsolana_user_pda_current. - Добавлена совместимая миграция
v15, чтобы существующие базы перестали падать на старых каналах при старте сервера.
2026-08-12 13:00:00 +0400
- Базовый коммит-ориентир:
working tree. - Канонический текстовый формат служебных тегов сокращён:
TEXT_CHANNEL_METAтеперь пишет<S:title>и<S:ava>;- вложения теперь пишутся как
<S:att;v=1;nm=...;sz=...;sha256=...;ar=...>; - превью во вложениях задаётся полями
preAr/preSha256без отдельной новой версииv=2; - DM-вставки теперь пишутся с префиксом
<S:.
- Зафиксирована обратная совместимость чтения:
- старые теги
<SHiNE:...>продолжают поддерживаться; - старые поля
name/size/previewAr/previewSha256продолжают поддерживаться; - legacy-вложения
v=2продолжают читаться как вложения с превью.
- старые теги
2026-08-09 23:30:06 +0400
- Базовый коммит-ориентир:
ee185cf. - Нумерация
STATUS_ACTIONуточнена под дневник действий:10—STATUS_DONE_ONCE;20—STATUS_LEARNED;30—STATUS_SERVICE_PASSED;100—STATUS_CONFIRMED;110/120/130/140/150— курсные статусыINTERESTED/STARTED/IN_STUDY/ABANDONED/COMPLETED.
- Зафиксированы допустимые связи
STATUS_ACTION -> target:- упражнение:
DONE_ONCE,LEARNED; - услуга:
SERVICE_PASSED; - курс:
INTERESTED,STARTED,IN_STUDY,ABANDONED,COMPLETED.
- упражнение:
- Добавлен серверный read API
GetPersonalDiaryдля виртуальной ленты личного дневника изSTATUS_ACTION.
2026-08-09 19:40:00 +0400
- Базовый коммит-ориентир:
3552e05. - Уточнено серверное чтение каналов и тредов для
TEXT_RATING:GetChannelMessagesиGetMessageThreadтеперь отдают отдельное полеratingsCount;GetMessageThreadвключаетTEXT_RATINGв общее дерево потомков вместе сTEXT_REPLY;- в
docs/API/06_Channels_Read_API.mdзафиксировано, что потомки треда возвращаются вперемешку по времени создания.
2026-08-09 18:55:16 +0400
- Базовый коммит-ориентир:
43f54c9. - Для первой итерации новых контентных типов обновлена карта
TEXT-подтипов:TEXT_RATINGдобавлен какsubType=30и трактуется как target-based отзыв на конкретный блок;TEXT_REPOSTперенесён наsubType=50и оставлен как отложенная заготовка;TEXT_CHANNEL_METAперенесён наsubType=90;- добавлены line-based
TEXT_ENTRYPOINT (100),TEXT_EXERCISE (110),TEXT_SERVICE (120),TEXT_COURSE (130).
- Добавлен новый верхнеуровневый тип
STATUS_ACTION (type=5)с подтипами10/20/30/40/50/60/70/80. CHANNEL_MEMBERSHIPв текущую реализацию не включён и ведётся отдельно как отложенная тема.
2026-08-04 12:00:00 +0400
- Базовый коммит-ориентир:
391b18a. - Формат вложений расширен до
SHiNE:attach v=2для опционального второго preview-файла: добавлены поляpreviewArиpreviewSha256при сохранении совместимости со старымиv=1. - В UI загрузки для видео добавлен сценарий
Добавить превью: клиент может извлечь первый кадр, загрузить его отдельным файлом в Arweave или через Turbo и сохранить связь preview с основным вложением. - В журнале загрузок файлы с preview помечаются явно и показываются расширенной плиткой с картинкой превью.
2026-07-31 17:22:07 +0400
- Базовый коммит-ориентир:
05bd9f5. - Уточнён UI вложений: превью последнего сообщения в списке каналов скрывает технические attach-блоки, карусель не показывает неактивные стрелки на краях, обычный файл отображается компактной кликабельной полоской без
txId; формат attach-блока не изменён.
2026-07-31 17:13:26 +0400
- Базовый коммит-ориентир:
60ab476. - Уточнён UI журнала загрузок Arweave: статус доступности перенесён в начало второй строки плитки, верхняя панель закреплена как fixed-полоса вне прокрутки, в меню добавлен пункт
Добавить файл, меню закрывается при клике вне него; формат attach-блока не изменён.
2026-07-31 17:06:55 +0400
- Базовый коммит-ориентир:
bcae285. - Уточнён UI журнала загрузок Arweave: плитки принудительно не растягиваются по высоте, а контейнер журнала запрещает горизонтальную прокрутку; формат attach-блока не изменён.
2026-07-31 16:58:00 +0400
- Базовый коммит-ориентир:
cd67176. - Уточнён UI журнала загрузок Arweave: экран называется
Загрузка файлов, верхняя панель стала компактной и закреплённой сверху, плитки журнала тёмные и уменьшены по высоте; формат attach-блока не изменён.
2026-07-31 13:48:57 +0400
- Базовый коммит-ориентир:
98eba54. - Уточнено UI-поведение журнала загрузок Arweave: экран называется
Загрузить файлы в блокчейн, использует компактные плитки и локальный флагНе добавлен в SHiNEдля файлов, которые загружены заранее, но ещё не отправлены во вложении сообщения. - Зафиксировано, что флаг хранится только в клиентском sessionStorage и снимается после успешной отправки сообщения с выбранным вложением; формат attach-блока не изменён.
2026-07-31 13:12:24 +0400
- Базовый коммит-ориентир:
c530627. - Для UI-вложений добавлен отдельный экран журнала загрузок Arweave в настройках: загрузка файла без создания сообщения, плитки истории с
txId, размером, датой и статусом доступности через gateway. - Уточнено, что журнал хранится только в
sessionStorageтекущего браузера и не влияет на уже записанные attach-блоки в блокчейне.
2026-07-31 12:47:41 +0400
- Базовый коммит-ориентир:
f961947. - Для
SHiNE:attach v=1уточнено клиентское отображение вложений: горизонтальная карусель над текстом сообщения, счётчик позиции, просмотр image/video в модальном окне и скачивание файлов. - Зафиксирован клиентский лимит: максимум 10 вложений в одном сообщении с сохранением порядка attach-блоков.
- Описана диагностика недоступного файла через Arweave gateway: отдельное сообщение для свежих сообщений младше 20 минут и отдельное сообщение для старых недоступных файлов.
2026-07-30 11:12:47 +0400
- Базовый коммит-ориентир:
e9e6628. - Добавлен отдельный документ
docs/Blockchain/15_TEXT_Attachments.mdс полной спецификациейSHiNE:attach v=1. - В
docs/Blockchain/README.mdдобавлена ссылка на документ вложений. - В UI порядок отображения сообщения с вложениями закреплён как: вложения сверху, пользовательский текст снизу.
2026-07-30 10:31:26 +0400
- Базовый коммит-ориентир:
c7684d6. - Для
TEXT_POST,TEXT_REPLY,TEXT_EDIT_POSTиTEXT_EDIT_REPLYзафиксирован клиентский формат вложенийSHiNE:attach v=1. - Бинарный
TextBodyне изменён: вложения записываются техническими строками в начале UTF-8text. - Вложение хранит
name,size,sha256и короткий ArweavetxIdв полеar; имя файла кодируется черезencodeURIComponent. - В
docs/Blockchain/11_TEXT_Blocks.mdдобавлены правила совместимости, отображения и допустимости пустого пользовательского текста при наличии вложений.
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. - На
server2.shineup.meподтверждена рабочая схема startup sync и full-resync:- после рестарта сервер добивает
BlockchainTmpRecoveryиBlockchainResyncRecovery; aidartest-001успешно подтягивается сshineup.me;- итоговое локальное состояние по
aidartest-001дошло доlast_block_number=13.
- после рестарта сервер добивает
- В
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 нет, временные артефакты считаются мусором и удаляются.
- В
docs/Blockchain/sync-between-servers.mdдобавлено описание обычногоAddBlockrecovery и разделение междуwrite_pendingиresync_pending.
2026-05-24 11:40:00 +0300
- Базовый коммит-ориентир:
abdce05. TEXT_REPOST (subType=30)оставлен как зарезервированный формат, но новые блоки репоста временно отключены на уровнеAddBlock.- В
11_TEXT_Blocks.mdзафиксировано, что записьTEXT_REPOSTвременно не используется до будущей реализации. - В
docs/API/04_Add_Block_to_Blockchain_API.mdдобавлен код отказаrepost_disabled.
2026-08-01 01:45:29 +0400
- Базовый коммит-ориентир:
24afcba. - Добавлен новый
TEXT-подтипTEXT_CHANNEL_META (subType=70)для скрытого технического снимка профиля канала. - Зафиксирован формат тегов
<SHiNE:title;v=1;...>и<SHiNE:avatar;v=1;size=...;sha256=...;ar=...>; описание хранится хвостовым UTF-8 текстом. - UI создания канала может сразу после
TECH_CREATE_CHANNELзаписать первыйTEXT_CHANNEL_METAс человекочитаемым именем, описанием и аватаром. - Команда
/.descудалена из актуальной модели изменения описания канала; профиль канала меняется только черезTEXT_CHANNEL_META. - API чтения каналов расширен полями
displayName,avaAr,avaSha256,avaSize,metaUpdatedAtMsи спискомmetaEvents.
2026-08-01 02:18:00 +0400
- Базовый коммит-ориентир:
8125d1a. - Увеличен лимит
CreateChannelBody.channelDescriptionдо2048UTF-8 байт. - Для публичных каналов начальный профиль канала теперь хранится прямо в
TECH_CREATE_CHANNEL.channelDescriptionтем же meta-форматом, чтоTEXT_CHANNEL_META. - UI создания публичного канала больше не пишет отдельный
TEXT_CHANNEL_METAсразу после создания; отдельный meta-блок используется только для последующих изменений профиля. - Bootstrap
channel_names_stateпри старте сервера теперь применяет последующиеTEXT_CHANNEL_METAповерх начального профиля изTECH_CREATE_CHANNEL.
2026-07-31 17:40:31 +0400
- Базовый коммит-ориентир:
d640dd6. - Формат блокчейна не менялся.
- В UI каналов добавлен технический просмотр данных сообщения из уже полученного ответа сервера: цепочка автора, номер записи, хэш, тип, время, текст, public key/подпись при наличии и сырой JSON-блок.
- Удалённые сообщения в UI теперь отображаются компактной строкой с переходом в историю версий.
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-описание поддержанных подтипов в
docs/API/04_Add_Block_to_Blockchain_API.md. - В документе
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-подтипов в
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добавлено обязательное правило актуализации документации вdocs/Blockchain/.