SHA256
Каналы: типы 0/1/100/200, CreateChannel v3, state для chat200, новые API и деплой на prod
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# Типы каналов и CreateChannel v3
|
||||
|
||||
## 1. Формат `CreateChannelBody v3`
|
||||
Формат `TECH_CREATE_CHANNEL` поддерживает `version=3` и включает:
|
||||
|
||||
1. line-поля канала (`lineCode`, `prevLineNumber`, `prevLineHash32`, `thisLineNumber`);
|
||||
2. `channelName`;
|
||||
3. `channelDescription`;
|
||||
4. `channelType` (`uint16`, 2 байта);
|
||||
5. `channelTypeVersion` (`uint16`, 2 байта).
|
||||
|
||||
## 2. Типы каналов
|
||||
- `0` — `stories` (root-канал пользователя).
|
||||
- `1` — публичный канал.
|
||||
- `100` — персональный канал.
|
||||
- `200` — групповой/чатовый канал.
|
||||
|
||||
Версия типа (`channelTypeVersion`) сейчас используется со значением `1`.
|
||||
|
||||
## 3. Имя root-канала
|
||||
- Root-канал (`line_code = 0`) в API/чтении отображается как `stories`.
|
||||
- Публикации в `stories` разрешены владельцу собственного блокчейна.
|
||||
|
||||
## 4. Уникальность имени канала
|
||||
Проверка уникальности выполняется на сервере по ключу:
|
||||
|
||||
`owner_bch_name + channel_type_code + slug(channel_name)`
|
||||
|
||||
Это означает:
|
||||
- одно и то же имя допустимо у одного владельца для разных типов (`1`, `100`, `200`);
|
||||
- в рамках одного типа и одного владельца имя уникально.
|
||||
|
||||
## 5. Персональные каналы (`type=100`)
|
||||
- Сервер не проверяет бизнес-валидность собеседника по имени канала.
|
||||
- Проверка существования login для персонального канала выполняется на UI при создании.
|
||||
- При чтении сервер пытается собрать парный поток `A->B` + `B->A` (если обратный канал существует).
|
||||
@@ -0,0 +1,29 @@
|
||||
# Командные сообщения каналов
|
||||
|
||||
## 1. Общий префикс
|
||||
Командные сообщения распознаются по префиксу:
|
||||
|
||||
`/.`
|
||||
|
||||
Пример:
|
||||
- `/.desc Новый комментарий канала`
|
||||
|
||||
## 2. Поддерживаемые команды
|
||||
|
||||
### Для всех типов каналов (`0`, `1`, `100`, `200`)
|
||||
- `/.desc <text>` — смена описания канала.
|
||||
|
||||
Примечание:
|
||||
- Описание канала в чтении определяется последней командой `/.desc` в линии канала.
|
||||
- Если `/.desc` не было, используется описание из `CreateChannel`.
|
||||
|
||||
### Дополнительно для `type=200`
|
||||
- `/.add <login> <channelName>`
|
||||
- `/.remove <login> <channelName>`
|
||||
|
||||
Формат аргументов фиксирован: через пробел.
|
||||
|
||||
## 3. Текущая модель применения
|
||||
- Команды передаются как обычные `TEXT_POST` сообщения.
|
||||
- Сервер уже применяет `/.desc` при вычислении актуального описания канала.
|
||||
- Команды `/.add` и `/.remove` зарезервированы под расширенную модель участников `type=200` на уровне UI/агрегации.
|
||||
@@ -0,0 +1,12 @@
|
||||
# История изменений документации блокчейна
|
||||
|
||||
## 2026-05-13 00:02:32 +0300
|
||||
- Базовый коммит-ориентир: `f63f40f1eb2f`.
|
||||
- Добавлен `CreateChannelBody v3` с полями `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/`.
|
||||
@@ -0,0 +1,16 @@
|
||||
# Blockchain Docs (Актуально)
|
||||
|
||||
## Назначение
|
||||
Этот набор файлов — актуальная документация по текущему формату блокчейна SHiNE для каналов, их типов и командных сообщений.
|
||||
|
||||
## Оглавление
|
||||
1. [01_Channel_Types_and_CreateChannel_v3.md](./01_Channel_Types_and_CreateChannel_v3.md)
|
||||
Формат `CreateChannelBody v3`, типы каналов, уникальность имён и правила `stories`.
|
||||
2. [02_Channel_Commands.md](./02_Channel_Commands.md)
|
||||
Командные сообщения в каналах: `/.desc`, `/.add`, `/.remove`.
|
||||
3. [CHANGELOG.md](./CHANGELOG.md)
|
||||
История изменений документации и блокчейн-правил.
|
||||
|
||||
## Обязательное правило сопровождения
|
||||
- Любое изменение блокчейн-кода (форматы, типы, правила чтения/записи, команды) должно сопровождаться обновлением файлов из этого каталога.
|
||||
- Изменение обязательно фиксируется в `CHANGELOG.md` с датой/временем и хэшем коммита-основания.
|
||||
Reference in New Issue
Block a user