SHA256
Каналы: добавить профиль через TEXT_CHANNEL_META
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# TEXT_CHANNEL_META: профиль канала
|
||||
|
||||
`TEXT_CHANNEL_META` — скрытый технический `TEXT`-блок для полного снимка профиля канала.
|
||||
|
||||
## Блок
|
||||
|
||||
- `msg_type = 1`
|
||||
- `subType = 70`
|
||||
- `msgVersion = 1`
|
||||
- body использует тот же бинарный формат line-текста, что и `TEXT_POST`: line-поля + `textLen` + UTF-8 текст.
|
||||
|
||||
Блок пишется только в линию канала владельца. В обычной ленте сообщений он не отображается как пользовательский пост.
|
||||
|
||||
## Текстовый формат
|
||||
|
||||
В начале текста могут идти технические теги, после них обычный текст описания:
|
||||
|
||||
```text
|
||||
<SHiNE:title;v=1;Название канала>
|
||||
<SHiNE:avatar;v=1;size=248193;sha256=3f2c8a...;ar=AbCdEf...>
|
||||
Описание канала.
|
||||
```
|
||||
|
||||
Поддерживаемые теги:
|
||||
|
||||
- `<SHiNE:title;v=1;...>` — человекочитаемое имя канала.
|
||||
- `<SHiNE:avatar;v=1;size=...;sha256=...;ar=...>` — аватар канала в Arweave.
|
||||
|
||||
## Правила
|
||||
|
||||
- Каждый `TEXT_CHANNEL_META` задаёт полный снимок состояния профиля канала.
|
||||
- Старые meta-блоки остаются в блокчейне как история, но текущее состояние берётся из последнего валидного meta-блока.
|
||||
- Если `title` отсутствует, используется техническое имя канала.
|
||||
- Если `avatar` отсутствует, аватар считается сброшенным.
|
||||
- Если описание после тегов отсутствует, описание считается пустым.
|
||||
- `meta_updated_at_ms` равен времени самого валидного meta-блока.
|
||||
|
||||
## Ограничения
|
||||
|
||||
- Длина `title` — максимум 50 Unicode code points.
|
||||
- В `title` запрещены `<`, `>`, `;`, табуляция, перевод строки и `\0`.
|
||||
- Длина описания — максимум 250 Unicode code points.
|
||||
- `avatar.ar` — Arweave transaction id из 43 символов.
|
||||
- `avatar.sha256` — 64 hex-символа.
|
||||
- `avatar.size` — положительный размер файла в байтах.
|
||||
|
||||
Если meta-блок невалиден, сервер не применяет его целиком.
|
||||
|
||||
## UI
|
||||
|
||||
- При создании канала UI может сразу после `TECH_CREATE_CHANNEL` записать первый `TEXT_CHANNEL_META` с человекочитаемым именем, аватаром и описанием.
|
||||
- При создании канала UI показывает системную карточку `Создан канал ...`.
|
||||
- При записи `TEXT_CHANNEL_META` UI показывает системную карточку `Изменён профиль канала`.
|
||||
- У системных карточек нет лайка, ответа, репоста, редактирования и других действий обычного сообщения.
|
||||
- По клику на системную карточку показываются аватар, человекочитаемое имя и описание на момент этого события.
|
||||
|
||||
## Замена старых команд
|
||||
|
||||
Команда `/.desc` больше не используется и не применяется сервером. Описание канала меняется только через `TEXT_CHANNEL_META`.
|
||||
Reference in New Issue
Block a user