diff --git a/VERSION.properties b/VERSION.properties index 54add94..b102ae5 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.43 -server.version=1.2.37 +client.version=1.2.44 +server.version=1.2.38 diff --git a/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/channels/ChannelsReadSupport.java b/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/channels/ChannelsReadSupport.java index 6b996c0..4789c93 100644 --- a/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/channels/ChannelsReadSupport.java +++ b/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/channels/ChannelsReadSupport.java @@ -33,7 +33,7 @@ final class ChannelsReadSupport { } static String detectChannelName(Connection c, String ownerBch, int rootNumber) throws SQLException { - if (rootNumber == 0) return "0"; + if (rootNumber == 0) return "news"; String sql = "SELECT block_bytes FROM blocks WHERE bch_name=? AND block_number=? LIMIT 1"; try (PreparedStatement ps = c.prepareStatement(sql)) { diff --git a/Как_устроены_каналы_в_блокчейне_SHiNE.md b/Как_устроены_каналы_в_блокчейне_SHiNE.md index e121599..886cb99 100644 --- a/Как_устроены_каналы_в_блокчейне_SHiNE.md +++ b/Как_устроены_каналы_в_блокчейне_SHiNE.md @@ -16,7 +16,7 @@ Создание канала идет через `AddBlock`: -1. UI собирает `CreateChannelBody` (v2, а при legacy-ошибке fallback на v1). +1. UI собирает `CreateChannelBody v2`. 2. UI подписывает блок приватным blockchain-ключом на устройстве. 3. UI отправляет на сервер `AddBlock` с `blockBytesB64` (полный бинарный блок: preimage + sigMarker + signature). 4. Сервер: @@ -35,9 +35,9 @@ ### Имя канала (`ChannelNameRules`) - длина: `3..32` символов (code points); -- допустимые символы: Latin/Cyrillic, цифры, пробел, `_`, `-`; -- имя нормализуется (trim + схлопывание пробелов); -- канонический slug строится в lower-case, `ё -> е`, разделители -> `-`. +- допустимые символы: только латиница `A-Z a-z`, цифры `0-9`, `_`, `-`; +- имя нормализуется как `trim`; +- канонический slug: lower-case того же имени (без дополнительных преобразований). ### Уникальность @@ -46,19 +46,14 @@ ### Описание канала В `CreateChannelBody v2` описание хранится прямо в блоке (до 200 байт UTF-8). - -Для совместимости с legacy-v1 есть fallback: описание может сохраняться как `USER_PARAM` ключа вида: - -`channel_desc:{ownerBlockchainName}:{rootBlockNumber}:{rootBlockHash}` - -В UI при чтении описание берется из ответа канала и при наличии override — перекрывается значением из `USER_PARAM`. +После создания описание в текущей реализации не редактируется (отдельного механизма обновления пока нет). --- -## 4) Канал “0” +## 4) Канал “news” (root 0) -`rootBlockNumber=0` — технический root-канал. -Публикации `TEXT_POST` в канал `0` сейчас отключены (на сервере есть явный запрет). +`rootBlockNumber=0` — системный канал `news` (новостной канал по умолчанию). +Публикации `TEXT_POST` в `news` сейчас отключены (на сервере есть явный запрет записи в root 0). --- diff --git a/Типы_блоков_и_сообщений_SHiNE.md b/Типы_блоков_и_сообщений_SHiNE.md index 94cf9b3..c077030 100644 --- a/Типы_блоков_и_сообщений_SHiNE.md +++ b/Типы_блоков_и_сообщений_SHiNE.md @@ -42,9 +42,9 @@ ## `msg_type=4` — USER_PARAM -Ключ-значение параметра пользователя (profile / тех.параметры / fallback-метаданные). +Ключ-значение параметра пользователя (profile / тех.параметры). -Пример для каналов: fallback-описание `channel_desc:...`. +Для описаний каналов `USER_PARAM` больше не используется: описание хранится только в `CreateChannelBody v2`. ---