From 6d3719ba71de83331685d1f90e29cf6be6a7f94bb76d20649e5d6bf25712e5ee Mon Sep 17 00:00:00 2001 From: AidarKC Date: Fri, 27 Mar 2026 14:44:01 +0300 Subject: [PATCH] 27 03 25 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавил документ для разработчиков (про сессии но не закончил) и исправил мекую ошибку с несопостовлениеминдексов --- .gitignore | 7 +- Dev_Docs/00_INDEX.md | 3 + ...02_Blockchain_Structure_and_Block_Types.md | 13 +- Dev_Docs/05_Open_Questions_and_TODO.md | 20 +- Dev_Docs/API/01_Auth_and_Sessions_API.md | 471 +++ data/TestUser1-001.bch | Bin 2178 -> 0 bytes data/TestUser2-001.bch | Bin 1001 -> 0 bytes data/TestUser3-001.bch | Bin 137 -> 0 bytes data/shine.sqlite | Bin 155648 -> 0 bytes logs/app.2026-03-04.log | 1296 ------- logs/app.log | 3240 ----------------- .../java/shine/db/DatabaseInitializer.java | 10 +- .../shine/db/DatabaseTriggersInstaller.java | 9 +- .../src/main/java/shine/db/MsgSubType.java | 18 +- .../java/shine/db/dao/SubscriptionsDAO.java | 10 +- .../java/shine/db/entities/BlockEntry.java | 4 +- 16 files changed, 522 insertions(+), 4579 deletions(-) create mode 100644 Dev_Docs/API/01_Auth_and_Sessions_API.md delete mode 100644 data/TestUser1-001.bch delete mode 100644 data/TestUser2-001.bch delete mode 100644 data/TestUser3-001.bch delete mode 100644 data/shine.sqlite delete mode 100644 logs/app.2026-03-04.log delete mode 100644 logs/app.log diff --git a/.gitignore b/.gitignore index 39eea9c..58765be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ +## папки с данными создавайемыми при работе сервера +data/ +logs/ +logs + .gradle build/ !gradle/wrapper/gradle-wrapper.jar @@ -40,4 +45,4 @@ bin/ .vscode/ ### Mac OS ### -.DS_Store \ No newline at end of file +.DS_Store diff --git a/Dev_Docs/00_INDEX.md b/Dev_Docs/00_INDEX.md index 342bfa6..33e0d03 100644 --- a/Dev_Docs/00_INDEX.md +++ b/Dev_Docs/00_INDEX.md @@ -4,6 +4,9 @@ ## Список документов +0. **API/01_Auth_and_Sessions_API.md** + API-глава для разработчиков: транспортный JSON-конверт, форматы запросов/ответов, создание и вход в сессию, `session_key`, `storagePwd`, подписи и совместимость версий. + 1. **01_Connection_and_Sessions.md** Процесс подключения к WebSocket, авторизация (двухшаговая), создание сессии, вход в существующую сессию, просмотр и закрытие сессий. diff --git a/Dev_Docs/02_Blockchain_Structure_and_Block_Types.md b/Dev_Docs/02_Blockchain_Structure_and_Block_Types.md index 3b4b399..7e38c75 100644 --- a/Dev_Docs/02_Blockchain_Structure_and_Block_Types.md +++ b/Dev_Docs/02_Blockchain_Structure_and_Block_Types.md @@ -94,10 +94,13 @@ - Есть счетчики `message_stats` (likes/replies/edits) на уровне БД. - Есть `connections_state` как «текущее состояние», собранное триггерами. -## 6) Важный текущий риск +## 6) Статус унификации subType -В проекте есть **несовпадение констант subType между модулями** (`shine-server-blockchain` и `shine-server-db`): -- в blockchain-модуле `TEXT_POST=10, REPLY=20...` -- в db-модуле местами используются старые `TEXT_NEW=1, REPLY=2...` +Схема `subType` должна быть единой во всех модулях проекта: -Это нужно унифицировать, иначе часть триггеров/DAO будет работать некорректно. +- `TEXT_POST = 10` +- `TEXT_EDIT_POST = 11` +- `TEXT_REPLY = 20` +- `TEXT_EDIT_REPLY = 21` + +Это правило должно одинаково использоваться в `shine-server-blockchain`, `shine-server-db`, SQL-триггерах и DAO. diff --git a/Dev_Docs/05_Open_Questions_and_TODO.md b/Dev_Docs/05_Open_Questions_and_TODO.md index b1ca603..8ac0139 100644 --- a/Dev_Docs/05_Open_Questions_and_TODO.md +++ b/Dev_Docs/05_Open_Questions_and_TODO.md @@ -2,35 +2,31 @@ ## Критичные вопросы -1. **Единая нумерация subType** - - Подтверждаем ли окончательно новую схему (`POST=10, REPLY=20...`) во всех модулях (`db`, `triggers`, `dao`)? - -2. **Что считаем “сообщением канала” для counters** +1. **Что считаем “сообщением канала” для counters** - Только `TEXT_POST`? - Или ещё `TEXT_EDIT_POST` и/или `REPLY` в этом же line? -3. **Что такое “прочитано”** +2. **Что такое “прочитано”** - По `this_line_number`? - По `block_number`? - По времени? -4. **Личные и публичные каналы** +3. **Личные и публичные каналы** - Явно вводим `channelType` в API? - Нужны ли отдельные private/dm каналы в MVP? -5. **Уведомления (лайк/reply/follow/friend)** +4. **Уведомления (лайк/reply/follow/friend)** - Делаем сначала виртуальный канал (query-time), потом материализацию? ## Технический TODO (рекомендуемый порядок) -1. Унифицировать `MsgSubType` между модулями. -2. Добавить DAO для выборки каналов с counters. -3. Добавить read-api handlers (3-4 операции, описанные в 04 документе). -4. Добавить integration tests: +1. Добавить DAO для выборки каналов с counters. +2. Добавить read-api handlers (3-4 операции, описанные в 04 документе). +3. Добавить integration tests: - подписка -> counters; - read progress -> newMessages; - thread graph на 100+ ответов. -5. Добавить индекс(ы) под новые query-паттерны (по `line_code`, `to_*`, `msg_type/subtype`). +4. Добавить индекс(ы) под новые query-паттерны (по `line_code`, `to_*`, `msg_type/subtype`). ## Дополнительные идеи diff --git a/Dev_Docs/API/01_Auth_and_Sessions_API.md b/Dev_Docs/API/01_Auth_and_Sessions_API.md new file mode 100644 index 0000000..5cfd09d --- /dev/null +++ b/Dev_Docs/API/01_Auth_and_Sessions_API.md @@ -0,0 +1,471 @@ +# API для разработчиков: Авторизация и сессии + +## Статус документа + +Это **первая глава API-спецификации для клиентов**. + +Документ фиксирует: + +- единый JSON-формат запросов и ответов по WebSocket; +- роли `device key`, `session_key` и `storagePwd`; +- целевой формат подписываемых строк для авторизации; +- совместимость между текущей реализацией сервера и предлагаемым расширением. + +--- + +## 1. Транспортный конверт + +Все клиентские вызовы идут через WebSocket в общем JSON-конверте: + +```json +{ + "op": "OperationName", + "requestId": "req-001", + "payload": { + } +} +``` + +### Поля запроса + +- `op` — имя операции. +- `requestId` — уникальный идентификатор запроса на стороне клиента. +- `payload` — объект с параметрами операции. + +### Базовый формат ответа + +Успешный ответ: + +```json +{ + "requestId": "req-001", + "status": 200, + "payload": { + } +} +``` + +Ответ с ошибкой: + +```json +{ + "requestId": "req-001", + "status": 400, + "error": "BAD_REQUEST", + "message": "Human readable description" +} +``` + +### Общие правила + +- Все строки подписи и challenge собираются в UTF-8. +- Временные метки передаются в `timeMs` как Unix time в миллисекундах. +- Бинарные поля передаются как Base64-строки. +- `requestId` должен возвращаться сервером без изменений. + +--- + +## 2. Роли ключей и секретов + +### `device key` + +Постоянный ключ устройства или аккаунта, которым клиент подтверждает право создать новую сессию. + +Используется для: + +- `CreateAuthSession` + +### `session_key` + +Клиент **сам создаёт** отдельный ключ сессии и передаёт на сервер только публичную часть. + +Этот ключ используется для: + +- `SessionLogin` +- последующих перевходов в уже созданную сессию + +### `storagePwd` + +`storagePwd` тоже **генерируется и передаётся клиентом** при создании сессии. + +Сервер: + +- сохраняет это значение в составе активной сессии; +- возвращает его клиенту после успешного `SessionLogin`. + +Это нужно, чтобы клиент мог восстановить доступ к локально/серверно зашифрованному хранилищу сессии. + +--- + +## 3. Формат `session_key` с префиксом алгоритма + +Чтобы поддерживать разные аппаратные и программные типы ключей, `session_key` рекомендуется хранить и передавать не как "просто base64", а как строку с явным префиксом алгоритма: + +```text +/ +``` + +Примеры: + +```text +ed25519/MCowBQYDK2VwAyEA2I7... +secp256r1/BBD9LVa8gk9... +rsa2048/MIIBIjANBgkqh... +``` + +### Зачем это нужно + +- у разных устройств разный набор аппаратно поддерживаемых ключей; +- серверу проще понимать, какой верификатор использовать; +- формат можно расширять без миграции всей таблицы сессий. + +### Рекомендация по полю API + +Во внешнем API лучше использовать поле: + +```json +{ + "sessionKey": "ed25519/BASE64_PUBLIC_KEY" +} +``` + +Если сервер внутри пока хранит старое поле `sessionPubKeyB64`, допускается переходный слой, который: + +- принимает `sessionKey`; +- разбирает префикс алгоритма; +- сохраняет алгоритм и публичный ключ раздельно либо в одном поле. + +--- + +## 4. Поток авторизации + +Поддерживаются два базовых сценария: + +1. Создание новой сессии. +2. Вход в существующую сессию. + +--- + +## 5. Создание новой сессии + +### Шаг 1. `AuthChallenge` + +Клиент запрашивает nonce для логина. + +Запрос: + +```json +{ + "op": "AuthChallenge", + "requestId": "auth-001", + "payload": { + "login": "alice" + } +} +``` + +Успешный ответ: + +```json +{ + "requestId": "auth-001", + "status": 200, + "payload": { + "login": "alice", + "authNonce": "8f2f0f71-0b1c-4ab2-8f5d-0bc5d6f6aa11", + "expiresInMs": 30000 + } +} +``` + +Назначение: + +- сервер убеждается, что пользователь существует; +- сервер связывает `authNonce` с текущим WebSocket-соединением; +- nonce одноразовый и живёт ограниченное время. + +### Шаг 2. `CreateAuthSession` + +Клиент: + +- генерирует новый `session_key`; +- генерирует или выбирает `storagePwd`; +- подписывает строку создания сессии своим `device key`. + +#### Целевой формат запроса + +```json +{ + "op": "CreateAuthSession", + "requestId": "create-001", + "payload": { + "login": "alice", + "sessionKey": "ed25519/BASE64_PUBLIC_KEY", + "storagePwd": "BASE64_OR_APP_SPECIFIC_SECRET", + "timeMs": 1774600000123, + "authNonce": "8f2f0f71-0b1c-4ab2-8f5d-0bc5d6f6aa11", + "signatureB64": "BASE64_SIGNATURE_BY_DEVICE_KEY", + "clientInfo": "Android 15; Pixel 9" + } +} +``` + +#### Целевая строка для подписи + +Рекомендуемый формат: + +```text +AUTH_CREATE_SESSION:{login}:{sessionKey}:{storagePwd}:{timeMs}:{authNonce} +``` + +Пример: + +```text +AUTH_CREATE_SESSION:alice:ed25519/BASE64_PUBLIC_KEY:BASE64_OR_APP_SPECIFIC_SECRET:1774600000123:8f2f0f71-0b1c-4ab2-8f5d-0bc5d6f6aa11 +``` + +### Почему `sessionKey` и `storagePwd` нужно включить в подпись + +- сервер получает криптографическое подтверждение того, какие именно значения утвердил клиент; +- снижается риск подмены `session_key` между клиентом и сервером; +- `storagePwd` становится частью подтверждённого набора параметров создания сессии. + +### Успешный ответ + +```json +{ + "requestId": "create-001", + "status": 200, + "payload": { + "sessionId": "sess_7c5e5c4b", + "sessionKey": "ed25519/BASE64_PUBLIC_KEY", + "createdAtMs": 1774600000201 + } +} +``` + +--- + +## 6. Вход в существующую сессию + +### Шаг 1. `SessionChallenge` + +Запрос: + +```json +{ + "op": "SessionChallenge", + "requestId": "sch-001", + "payload": { + "sessionId": "sess_7c5e5c4b" + } +} +``` + +Успешный ответ: + +```json +{ + "requestId": "sch-001", + "status": 200, + "payload": { + "sessionId": "sess_7c5e5c4b", + "nonce": "0e5bb0f4-c7d8-4efb-b44d-bf31a6126c66", + "expiresInMs": 30000, + "sessionKeyAlgorithm": "ed25519" + } +} +``` + +### Шаг 2. `SessionLogin` + +Клиент подписывает challenge приватной частью соответствующего `session_key`. + +Запрос: + +```json +{ + "op": "SessionLogin", + "requestId": "slogin-001", + "payload": { + "sessionId": "sess_7c5e5c4b", + "timeMs": 1774600010456, + "signatureB64": "BASE64_SIGNATURE_BY_SESSION_KEY", + "clientInfo": "Android 15; Pixel 9" + } +} +``` + +Строка для подписи: + +```text +SESSION_LOGIN:{sessionId}:{timeMs}:{nonce} +``` + +Пример: + +```text +SESSION_LOGIN:sess_7c5e5c4b:1774600010456:0e5bb0f4-c7d8-4efb-b44d-bf31a6126c66 +``` + +Успешный ответ: + +```json +{ + "requestId": "slogin-001", + "status": 200, + "payload": { + "sessionId": "sess_7c5e5c4b", + "storagePwd": "BASE64_OR_APP_SPECIFIC_SECRET", + "authenticatedAtMs": 1774600010500 + } +} +``` + +--- + +## 7. Работа со списком сессий + +### `ListSessions` + +Доступно только после успешного `SessionLogin`. + +Запрос: + +```json +{ + "op": "ListSessions", + "requestId": "list-001", + "payload": { + } +} +``` + +Успешный ответ: + +```json +{ + "requestId": "list-001", + "status": 200, + "payload": { + "sessions": [ + { + "sessionId": "sess_7c5e5c4b", + "sessionKey": "ed25519/BASE64_PUBLIC_KEY", + "clientInfo": "Android 15; Pixel 9", + "lastAuthenticatedAtMs": 1774600010500, + "createdAtMs": 1774600000201, + "geo": "RU/Moscow" + } + ] + } +} +``` + +### `CloseActiveSession` + +Запрос: + +```json +{ + "op": "CloseActiveSession", + "requestId": "close-001", + "payload": { + "sessionId": "sess_7c5e5c4b" + } +} +``` + +Успешный ответ: + +```json +{ + "requestId": "close-001", + "status": 200, + "payload": { + "closed": true, + "sessionId": "sess_7c5e5c4b" + } +} +``` + +--- + +## 8. Ошибки и коды отказа + +Минимально стоит стандартизовать такие ответы: + +- `400 BAD_REQUEST` — не хватает поля или неверный формат. +- `401 UNAUTHORIZED` — challenge не был пройден или соединение не авторизовано. +- `403 INVALID_SIGNATURE` — подпись не прошла проверку. +- `404 SESSION_NOT_FOUND` — сессия не существует или уже закрыта. +- `409 NONCE_ALREADY_USED` — challenge уже использован. +- `410 CHALLENGE_EXPIRED` — nonce устарел. +- `422 UNSUPPORTED_KEY_ALGORITHM` — префикс `session_key` не поддерживается сервером. +- `429 TOO_MANY_ATTEMPTS` — лимит попыток исчерпан. + +Пример: + +```json +{ + "requestId": "create-001", + "status": 422, + "error": "UNSUPPORTED_KEY_ALGORITHM", + "message": "sessionKey prefix is not supported" +} +``` + +--- + +## 9. Совместимость с текущей реализацией сервера + +По текущему состоянию кода сервер уже использует схему: + +- `AuthChallenge(login)` +- `CreateAuthSession(storagePwd, sessionPubKeyB64, timeMs, signatureB64, clientInfo)` +- `SessionChallenge(sessionId)` +- `SessionLogin(sessionId, timeMs, signatureB64, clientInfo)` + +Текущая строка подписи для `CreateAuthSession` в коде: + +```text +AUTH_CREATE_SESSION:{login}:{timeMs}:{authNonce} +``` + +То есть **сейчас** `sessionPubKeyB64` и `storagePwd` ещё не входят в preimage подписи. + +### Рекомендуемый путь миграции + +1. Ввести новую версию контракта `CreateAuthSession`. +2. Добавить поле `sessionKey` вместо `sessionPubKeyB64`. +3. На сервере распознавать префикс алгоритма в `sessionKey`. +4. Перейти на подпись строки: + +```text +AUTH_CREATE_SESSION:{login}:{sessionKey}:{storagePwd}:{timeMs}:{authNonce} +``` + +5. На переходный период поддерживать оба варианта: + - legacy: без `sessionKey` и `storagePwd` в подписи; + - vNext: с полным набором полей. + +--- + +## 10. Практические требования к клиентам + +- Клиент должен сам хранить приватную часть `session_key`. +- Приватная часть `device key` никогда не отправляется на сервер. +- `session_key` должен быть новым для каждой новой сессии. +- `storagePwd` должен генерироваться как криптографически стойкое значение. +- Клиент должен учитывать допустимый дрейф времени и синхронизацию часов. +- Клиент не должен повторно использовать старый `authNonce` или `nonce`. + +--- + +## 11. Короткое резюме + +- Да, клиент сам создаёт `session_key`. +- Да, клиент сам передаёт `storagePwd`. +- Для `session_key` имеет смысл ввести префикс алгоритма, например `ed25519/...`. +- Для `CreateAuthSession` рекомендуется подписывать не только `login`, `timeMs` и `authNonce`, но также `sessionKey` и `storagePwd`. +- Для разработчиков клиентов лучше сразу документировать API через полные JSON-примеры запросов и ответов. diff --git a/data/TestUser1-001.bch b/data/TestUser1-001.bch deleted file mode 100644 index 21a705b152494a756b9f8c81526c0f704e0a769b245cbdafcf5bb830d03f1887..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2178 zcmZQzAOg6<)MW0un*(Mu276@srE-R(7MFw;rxqD9GQ5yj9LxTTK~BJVd*jKeo8LVR zDmJxPIe9{2ne54VPj*Q2KgkMbs+ulx)AjQFk15&@-7U)>q{YlBXNhT)oy7K*oq=J# zy~@eH<5DZuym+U*E=*MKZNtvPyi#GN%X-{cWPen=16te&#Ec*ZfE~ifzy;xfM2OJM zz#tuJXr)kGl3!G*Uyxs1qL7)Vkerd2mzSEOV8FJji86Oic6owN|=IN4#Z3#2SdY>kt8oLviPNz7c(-b z9{+!|H z#@HWiyK+S=RioA^?%-lzsGoGp?P}Ph$Y-o2^>dTC3bg(NB!2zM`k=smfv)Oz-w!|+ zmH{y{+^Mk8205OI2;B?}0-(?axmN)k*vh~l{%hc6aqd#?WYzj4Zi|+{-R6le@@58n z&XNx6bopv-GkgBi`8Ctu{_&SQ-DVu8-7lZVD}LQ3GoW|b+7&JZWgTWW+p;6BZj+ysk@FRpAt=8*2TZ#e-yLoqa$2+D^C?j`gjTn5m#f`gk&`xiS5rav_v~(mvsRYz z8TZct-JS5kUd3$TfA=f-el~X(ypv#k{$=?*+m+&4%x0{+yXxiu-MbKofhystn;V=o zK;g|ogl>>J!u}ISj}rwAR~OF^O-6X z&4vbr0)SqS(UnH{dAg5V% z$$s`@kykYQ__@xutcX@QyngSJI#9}=2E=SY3`zaW405EUeqLCCW29?fUnFTOvaj8B z%jW!MKbFfjKDu>EyH!JSHubY?Ik?&6VfKFWYtJVxkhR-maC!0U%%3_p85{W+7+xJL zKi;(|Q|neJ*XiR+{FP#~j4LLt(Kbj|xpHfp--Ak^GeG_V=6|@q5Csz(5xSYk@z=Jn zx)jN@_%b_-(%YwHP8h6qNw}|f|8G&_KCgsWURJ*LnuvJjODpxepM-g5Jo~2ota+h0 zNAjc>awS_+Pbc^R-FjB$5zmvKAMBs4-tadfdGpbk&+Iz&x4)3)a`}|l#U?8TR08rB z2N1*JO9UQY>_q5hCdXgKYi7Lc+rLxLMmJluHS691tzwX zSeBKpxqF5GKHu)zHT5gJxaWr)tx$Q?c5K-qPhfmW6)l=@N$~PtMh^}drgOUucuqL* zc3TPETvpdUx9;uz&rpAHV)YjX5xQC6{xXK8L*4y3n>W8NUYBC-w>L$C^>W?b>Sg(y z|5raPZ!IZ3M$JlPMsnREYS4dy7wv+)nDRlJ>OgE$--Zz^B`FB zw8*S0zh?@clwo=T^%t;khsT#FJia)I(9H_>7YX?*fj=%#BXQ9$x5@p+7W;n2Hw0x* z$o>$^oq0cHdGS-5H+xPzWj8T*W7c&L-56lF`JjjUd4n3QbqCesRW~Reci{s72ktf8 diff --git a/data/TestUser2-001.bch b/data/TestUser2-001.bch deleted file mode 100644 index f3b103c8a442095a722c19a6f9fe284dc4f98c51798025020e023d83f316ceea..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmZQzAOg6<)MW0un*(Mu276@srE-R(7MFw;rxqD8GL#C(mCNm_zQXe4+JW;bUoLo< zWoAwgh*3Voe@jf+C1TASM>r=2Yc)4e>Ije%k2 z2bLFsGxA#n5(^(yOP=vRaxLcnkJnDYFZq+Ty}TIj0xg~f#Ec*ZfE~ijAP3=rM2OJM z$P06?p{{{}Ay5-j{iIuNSHmVnK4UGZpPS58p!Fvp@#|OC2L<*EbXC9meqdx+Sg~MY z&$-JUIa{U`Z(1*-{n;aazr_c>$gIkXTP`x%7ZHhW+K!i_Z*i{I^;mdr3#WdEQF3ZB2Vp-Ww*kii81`fc(V- z#4vwx!TrTZgl;Abe=*FrS2@{tTx!Ld7w@#!g^B9DZPVcmU!F5*+H#A@JzaawCGN_a$!^kT@lEc|YKHWM4c6c0A5u}d{Y~Bbq1Bu%%`en~ zkL~O|^m*3NB?@n)#DMX2zww#sZ26AUZLfEJ0rw3%MoIE?Fe>NUNFgtw<@XxL0N& z_vDTC(J2gCp+;5;MX3cjl?o;K3ZaGyeyQcf3I+MaB?`(03L42p`NhS$$r*{6d76w2 zwjO><)f<{0>@?G_akv%0t@q=mfb+7PsXD9=FJ^D|?5e%_X6pJ#^R2??(&ov%U3K{t UlWg?WqOHgH{LAAcR-EJn03lt03;+NC diff --git a/data/TestUser3-001.bch b/data/TestUser3-001.bch deleted file mode 100644 index c75c31a2f534df76d880142ab9d9d087026fa5f5a3e8ee54af2c014f9d0c655d..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmZQzAOg6<)MW0un*(Mu276@srE-R(7MFw;rxqDAGHg6H@%GNjYr*=zJN}t*mi4q~ zD4*vzba%f=kF}&5x4-TQt8ZIxH*S=S6LowcooW=>ztNAcOJeHno$=R9_gF`>004Sb BC7l2O diff --git a/data/shine.sqlite b/data/shine.sqlite deleted file mode 100644 index b79a9a3242325e3e2385f5b61ab91d8d1801aca834f382ff02b2a97e990df149..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155648 zcmeI531CxI*7&nFZA$Z44V9%&rP9)tHr-hYbV)bb1k!~T!H_m-o6;t2l5U7VTR>S9 z0mZ=$P=|q0Q8q!KAmb?Vq1Xb02pwGAxnkmLEHi?*MSMqm9Z)Wh^Ihln58oJBhU`b5!;*bI4@)MAw~7~v7j{(@ zqyvH9CV{X4KFW!KLV?+0G&S05tI&Yd8|oZZ>RMk?Wi6d;*Q@B)fz5sT$&`~Lgv}9D zw%OQ7OO#d^%oe@fVL*lJYK-W`s5dyMLY%DrsXBFXzM9O^q^XNYFNNh=4e4G18RDv3 zUu_Sa(^sZUM%oPMTAM0sx!K}gPe1R9P~|$;fyxSP%~Hse5fQ@0YKNhu%H-aJ`!(Tg zGCw&bN8L%skRff_Ai?9#( zGPE40?%Ad$EbJ*qRcJTQG3l$!)n*4%W0odgouSsTO3)RSnX62CO1PxSVX`A(PdQpc zgWW;9iQZCIU1G9zB8Z!+a>-Q~>=h^_B}bbQE~hHt86Hb_QVAuPuGOitGBg+v8A6+i z)Tz_eI<+QMok!ZORR)VeUuQSj?9Oa?=tROtnHO=}F~D(S=V;)h^qm_ZQ>F$Bn}@NE zXs*$ho2>d$LumzfNN|%C9$v`J<%}cjhTJUoVbC1qFH;5w3tR4?T#+lvecy-Yg4`T3 zghFSop};av?*8HFd#HzuFn+}aXy0(Nmb+ufLlgS=C?^MZMVzafUd6o%sFcf;V-RUE zOPVsJzQ$lPRNM8G!MQ2^9+0`Yv^?g^O=bM1Wx6lLbzuX=l`F!1@5kfH&2e&d8=~%9 zX=GFfTr@iua+s@4DDW|2?p*1b>J3$OICeN6o!4YE)tgIAdS@u$n9go4w-_9CHfIek zoA!KQ(dravvZfZOolL_?s-L0A1N?610bGiD757SBFOw-Jh6$Sq)&mTs4s$(1gT6J7A9O8OnHNwl-s2b&nMh6oo?aOS8p~lrea^+ zZRR=j+^###o$FqKg6!tIbeu($_S2=+{L7n!mo(W^yh7SXb@bQK^8B z)*2ONo4L$f$}QA+ftosdh2CT_)}Yl1J3G-G!74ci5*Dh7j*B-|u zFX9b%ZcgV@fX5i+4sbG6o0Egr$r^2Ha-N#@YB$9^DsT>RdUeB&aqKtPiJ0Z1M_rU; z=TdGnghz`ggo|z$!nqXmD*6g-q3*d0J>3z6o(A;`K+j@@Qb5d9>_IQ^00KY&2mk>f z00e*l5C8%|00;nq-xq;qQtT5n(quB_qa%_6bSe_VzKMv6Qca7@GiGazjpfnPrm1s{ z8S(K}RYh(|W%(FWWmHjE`Lw3kx@^lFQ==(1>0c$=Op5p_Ml&i#V-@p^WkzFMk#1W0 zoa*@aqO{t?xTqpiSmX4RrUHYyD7L9$TFjWH>?TK}J?UR1+e`}iDykS2RTRZJ6%K1! zZFE*$f^BM@v0!pzy(V#TdRbL=LvdY&+7=sUn?9wfA-O<3HEG(vNLG&gT1Ag&Xa z&IcBj#R3i~5Lz{Fpoyz5hQV zAig5b5=Z`fItZEq0U!VbfB+Bx0zd!=00AHX1b_e#_?;5yCm!kA^W)DKh`A}$hayCM z#UovNe=Gy{|9_|60^J4zKmZ5;0U!VbfB+Bx0zd!=0D<2E0q!0D+ur}DzW*QajDUz$ zR0KTJr~S9kdFTTW00KY&2mk>f00e*l5C8(d4+70u5=Ci{DN>4mbUbKSc|c@pV*b=d zi?%qsDlsoUrh4`mb!|pUd1h_KlmuJ#^w_Lyd$!3^UXYbtz4g&CcpoUlI~k(PI*05~HbJtfHS;wf@Pzi1>X;wPvf;@ugGJOU)UX^~D*s^u(~3 zgr=hG*zCxu#fi4b#dD^pnEa+`tg#5nbl~z4GLsA?>1EK!AJXEn_!DDGWfViMzH;-aJCsa{l5&!6?K zFZBKYS^=?v=pbr|+TTZ%fL;OtAOHk_01yBIKmZ5;0U!VbfB+EaA%RG7sjvrUOcE^L zgL51)mhZt?iDfY1p<0iOv1K2xmwHPwZ-fB+Bx0zd!=00AHX1b_e#00KbZ zUqqleM(7(9EDbg_C$XPFud!Ln%vGkb7DKfOf0+Esv&j~Vfh?#o8XP8LPre0_mzz;% zi;SC^m7vO4u#2qN$Y)$dhCbhc3UT3e+7S`ogY8>V<`3Z5=27C47f@oE4dTx1q`D|lmO>9^}irG<`X^crO zHYLUyDvb%1Ds6pjYN8=*>Xg*fl$64P%Jd3LSZvDl>8WW*TYUdtgnsy+I6_?h7kM63 z3j}}w5C8%|00;m9AOHk_01yBIKmZ8*as=*_1O>By06@i@?ch@qQ6S24{q8@Lg-;{s z{r@Eaahf00e*l5C8(dIsx9d0o*?SkCo~Bt7`-e z0s$ZZ1b_e#00KY&2mk>f00e*l5C8(dA_08=ANK#hB5-I52mk>f00e*l5C8%|00;m9 zAOHk_z`ub2?En7_(4k2n00e*l5C8%|00;m9AOHk_01yBIzcPUU#UBJ>#c+XQII)-r z_>~)n=70bY00KY&2mk>f00e*l5C8%|;6H>wqtI_;kVzsE=1AE;8W0f`rD897@)P!= zAFnO&ZILg0X#J=Q{##RqeG)h-ukee*Z=G>$x^VW!x$z~3W*w+GSxWt+{{aM`4z=vd zX*q`5a?G^IJY%-j*jOGtZJIjQm=PauRaNAcRF;o1RYnzsl}~Gmt;@E|F*TZElW@yF zdqaxaZ4lGl^>uZ(cZ~{`L>#EvzWpov7Gr{@%{W+kd|ulF8?AmnzjSHC{t!RWH}_G! z{bQrZgL5>ux6ygVGNUoBNH;BgPIY{IQCe+cTvU-MtZ{luQ-MKU6x&oWEoMwpc9Wyg zPW4v&nWX5b((#n~W^G_ycKVDY^U9Bni>1#ep3i$OXXL5=sx@y?Ew9D*|Hb(C|Gy&6 zq8E4o0U!VbfB+Bx0zd!=00AHX1b_e#00RHn1p0|bvOoV%9b1UGDb#s_sIPdW>+b;I z69#(!{~`7J|HOy?*&PJ!fB+Bx0zd!=00AHX1b_e#00KY&2mk>d0q!sU$B4OC(fr^4 zr}zKo1;ppXdEz@>9dH2zfB+Bx0zd!=00AHX1b_e#00KY&2>h22kc*{4`a1?<_U&4c zpIGWgr5=!?eh7(MxHtC_x8%G0G_ogsnk8?cV(R~rF8=$~Y)z663>qmE3R}kqjr7gQ zY3?IHUtD27jN$sa4F1H0OpMN4{(i9G(9&(@QKt*!M-IKHy?e%}n8uYaheef-IC1)Q z&G{zOr#0xG4EN2v=WLZgERYL?_zFFIx=~sbzn9}EojEe}-Kdw+W}O>-?k8LG{_I&Z z1Eh+F<`(J2$2LbUyI456;_`Q4ms>X|eM?te8SdC=Ix*!h4Nvd=DcTvna>dF-ZP z$HIeJpWA%z>n;0?U#VuP2Nw2LEpPtQI?mT)^l_}m?~M;OU*wwcdfUJa2mRt7a2$}m zQ+y&sL&)D>xaqzTZ@t>~;ykm{d_L%v8GRh{t(!RF@S}(B-1PF5FT=JJ4jO%R!5eP{ z+*ug6ae2CA*!PWJqCzh7^r9 zA-Q<+%@0O=+nyP3Hb2&P#$6?=Dz`pA>sr|7x7P0oniKQWicbdSjBU^D2ac8Gm;D zmxHCBe*35Ak~S+xiQ}bvm(F_zQP_a~;pv`sX`#TMibx`qAn8VFEGM>|hztHhl24x{37h_#|6p))mTzvYOs?vR=b0|CyESFr)A}b3I)6O zzVhyth&!J6`s3$fH;&pmPHBEG{lf`2{B*~ce6(NzStH-Er+D@M1?~DD;px$b+J^a^ zob{fv|JR%Pc1+9&S^N5Qq1U#(4eDMiAo7Yy)KVs;&DJs(gT~H`%*Hw%KNLyOI>0MX zfuJ562-ilrv(UK?=$<){?+E(3nM5TN%SoP}Q`6d2|3#aZ)FkG>$ zopQZ$Na2#S8wul|UUzBT+$XR8LmPNxam@W;D}pQm$`8kzr#!Opl}$frYY#}hxkqp7 z7kTYjOQ9Hp_VsHi!F{Bbwp~uH$SD^cohO@f=G*9+K5GAG|N8wavM1MX`bK?9cj2_X z?&8eBai|VFy<+#J9U8kRv#=F-n=DWvp#+B)p&3`EACzGqk%O!o7J;KPv5O0 zAG=v}v>o{LLF1C?!kOPM-cvnrOz`wAckPyYbBNy7 z@2x8>77+sLha!A`%)$w_3lByP?5#djM>EEQE8|59oY0-p0>Ka*DeMlbttpa<-ewC~ zT4AtQOjRWE<;t7WBBNG3^_Fhz=NDdlHLym>}%>-PqzWq=R??{cBR4;d6RZ%f00e*l5C8%|;FlyYK!WbHvIl+m zu7JFsXPRH%{*sZttQ_@yc!DQJ-IT5^g}I{Zn=7j0|f}E7Ttyv10G9p5_SnV*BRGHj$biXE? zI_D>+=Q^;bdHldV!bx}Uf(P;BYO+ii$IYpP1o2)A)C##FYsWMb|un7Bb zFGI_5>YildCxW=CDwkY^!CrwI=F$Bn}@NEXs*$ho2>d$LumzfNN|%C z9$v`J<%}cjhTJUoVbC1qFH;5w3tR4?Jc%pHecy-YLEIcNgzCAuhT_6JxtrJ1bx;o( zVf=~<(57{R?QU0jXhI(!<>cV5Mh{mvy^4DkP$`!w#~{*TmNaDveT~6psJ81VdvR0z zJs@*)X?e_-o64BIWx6lLbzuX=l`F!1@5kfH&2e&d8)5ETX=GFfTr@iua+s@4DDW|2 z?p*1b>J3$Oc<4JHo!4YE)tgIAdgn;yn9go4w-_9CHfIekoA!KM(CQRuvZfZOolL_? zs-L0A1N?610bGiD757SBFOw-Jh6$Sq)&mTs4s$&UB__MwY_&L@z%9|&!w=j9T(01j z!Fa=>1gT6J7A9O8OnHNwl-s2b&nMh6oo?aOS8p~lrea^+ZRR=j+^# z##o$FqKg9PUaXm-3BrH@D9T#t`VBOo#5+By^Zj1pG}d$}G>F6DIyJJkyNovhKOCg-VXuXa<+qXOq3rxz#e7{`8torqcedDKNob}r>MLwK}^Lb&L5A)HG= zui{?e&pG+xy+?rblt3YvE|5JS)A;<&r$~BU(ogz?c%@h-nkSepN+rq_-(tC*KU&L% z%9JBV3Lo;Pf;Dm#JC0>|hhpbl1o14#%W|5|VWnM`9gH3%XsSrAq_jfsTz6yX&beYa zysKi?vYjnNacNf0xt66@vpC0PO={UzWu9%a>r1V5Y)o{Io@AOjJ-Hw!pNyhawV7&A zXycagR>EX7JGkcZI}YSyB4aHcTG_=y}oon&AjRIO+kF=m*LGIwNG zv5jX>y^429Hv0@g+s8;@b11u#D7B&w9HG?&UPaKm*&2h{=8-zwBf@!zparSfhU1Gz z4!aU!94oY0cBf34g%r8xHi|IP9`z0DhB8dyE)-(2L+1seeGF1Wc^gG28+vFlv>RGb zCA(08$_s53DrL&ZNZ}$CHEcav@kqFnH+(&^yBU3%QBkFLG}W+Eultywr5IM&fAOR1 zLCy^ZT}yFXo!ODH4bgGJb1&QTMSyb?%#2BT9FjH@-Q#c^Y-kI}Lz4&lC<`LH8c`mI z^(v2~A$_jU@xA^InNk%fY>s5ziRzJEU($pQ2rTrOhdt24b@)=)W9Sq#KRcm@lejzz zdPWmczQT+a{rH+b9teG4kW3ke+KqE>7j@HNu$7zWqbd8~u3Bd0xNS3xC|WK>P%>>N zXX6b6QB*;V-{syo>NI`+LkrSfQg)?+n>1GuSKGXXdvubww6ecU85k&hB9ausm-9w1 zRZ-_d7>nBLO8DZQqSO>a>&6^VIkm&bO8BkYL>v)8(%wae;2E|l63@($cL5x9@M?+R@z6(!Q;IXM0sZ;|Mz$Y7Qn<)Y zq-7h*+(%-Yj6_BDQM%$QbYP7}9M2Q^M7t7lf$c(q>!b)ERvl@vv;7V9jP&Yg=~zyN zAYBf0EJiu|QR-{$dpnlnT-sUKNQYrLAAH?h5*$0b5;+#Gv68~< zr!~8bPP-0n!#zZMw(B9mY1bo<%k-a_3~}?ka!j-e7j4qB7O(hSUK*u~;8h8)7}ct49Iz7#JrwAb6E$_=AQ1|m|L^(929y8- zKmZ5;0U!VbfB+Bx0zd!=0D)hFfagcu;q(9h{OAAa{r^D$@gs4a_=31Zd`x_xxJ8^K zrV}LbI3Xgo5e-C=;-KQ=U&FT01`q%OKmZ5;0U!VbfB+Bx0zd!=0D&$D43(lE^>cmU zp7~(_>MQmA_?a*Uaa8P!2glJ0DdO_XTtmNGx;U` z`I-EZ^4n=7^1EG8U%F2+8S0u)DE6T*rSyx0ei73zA}Q{^AHDy7K|ow3J|f;GW)iW4 zT(Mj60`VI0G_i=NRa_vlh#f00e*l5C8(d41s}C zw83Y0_|(2!+OLyDN#6m|k!at`?BJch`NvD6js+C_!c>|#fS*Wj|NHP0DM^t(Kau`r zJvnOI*W-u(cxjZNFJDKhM%f@K{^N0s-gJc`AJh!`13>&#DNb}9chI5|e%n-{7^k@l z_Qx#Te*aIgO5mdq2#8%oH8DbQMv9? zilW(y`1iiO{Y5)OII9bd`1i@Z{SDp>iMvK}rfWUZC`0U4k&3OTXBuUSsEULv?C9a0 zYvlFMa%KqKRbp%EnM!hEzQBi=EI@zxZ!+;Iv6e6q?-OvZ|F<^Gp+7(X2mk>f00e*l z5C8%|00;m9An?l(2$Z6e6xaQF_V^=4#?Rp#jQF6|@9eBhwA8H(d*Yyy@N+n45n_H0 z=WszZ80+S`^Y1z=kP~~+{(qeSef$4IVjcSa|6$@4;+0f00e*l5C8%|00{hY1h_l*7~cM0#oPZ!^Y;HL-u^$DxBpl1 z_W#jxVhOtcUo0R#BihlA zC?!FhTldU;`WP86o&BypwVNO8`tkrHA1&=dUcyUff6pLV%u9FGFS-Niiwg!2bU?ZeZvh5C8%|00;m9AOHk_01yBIKmZ5;0Ym`y|KJ8d00;m9 zAOHk_01yBIKmZ5;0U!Vbe)|OQ_y0x0NP%n;dV+^H0?QS5$%bSF`aY?4*v#eSCY!@n zt}m&wmd>{8ORW}*snlV%TJ&~@!C}%H%ydqwPMw^uCi8V!85wFFdHW*rg2 z>+(shhNSC|Ps>zmNR4{h=xTep-qBQJB9q7%d5StCOCu-IBO-!K*JY_SX_2W~O@4A} zeq_2fCr3MNER(AWCEIs)G`H_<-%YmfYJaW$K>KcVi7whudJFlxsgY*+TGG{5JKb3_gp$UZR9VZ-mT=N$s-pA^CmmM3GY!2fDXq|3 z4Amwond+O~QdeDKvT+hB4E74Dx=`vlPo1Mq&1dV!5a{}NNtlbhu7qxrm&3O2p33Ut zk%2AB=+${9t0OWDqQY2)(Ewp0LsU`WWHkC06GeA~B$G91lqjPTnUzOswE3i_AScJ! z4o8I1k1I7!PRSv2M|Wz_j^&h@J6g~iY*J*I+nHX#6}uL)m$(o4STDHg{jOuwaX41V`8%-f5Z?tso~BZk+^cMsX3yZf@Z}r zWM0jbxEp%P7o1g6@14zJkc<;Lv$;OPkwWcpD`74<68{GC7HFK~xj@5=Xq3bs)5wNs ztg?oshVTB47G!HQqC1-LyN=e5M?01vyYD3LMnfJC@7*YUHwC8ilx#MR@x(x0v!7)&3a-Qcna@qj<7Zm|jDl#8OLRFM| zPP8*8+9M~%nG?g!QRkr6nAV+jq3G#+#|%QQ!_Y%og@!cx7o!RtCr9!tlStVRb)fI_ zBRwaCDzn9;H(MO0a+}%Fq%ZM09e5N#@jac6xt+`gl&VxP#O;(?jV5lKpmMc3YE0JH zO!a!Iayry{m!k%rdu(#n=BO~+yR6MMA<$)=$gI&(!1Wk#wwdhE)_BLzuxw&3ZVlqL7MB5KhL1A}dfmy?tv_ zl6Co6$vOJ;EOky=9=`=VoA3a-LNR$eezy~2@p%e$N)L&3s~;Mzeu_?A$nO9`q%O+J z%g=L7!A=?~r#F-ID5h5uWDT22Gp-rU&NFlfXD(Sedfq~EoM`PF((bOsmdVM=&B`Zf z4Z3M0)H8i%a$crBH!CkUIX^Y?zoDOeHk9FMiY_wje1)S}&$&=zCRLlJ?t%+)U{_nt z0X}{LHSk%-cAA9>YyX-4!f<3&W@dC|Y8-$tdDvW_d;d z4~VoKS%tU^@j}Nv3?k+s)Eq`lRJ@>-L^`LSD3Y3YR3w@@x~Dl-m5Pg$;eiTQd_~$J6Bn9uJ_Mu(YLumU& z?WxgOO2;CUxP#hHzd@p1_g-|lC!Fkf2<^A_qg{FXcJzWbVLLk(psPI{3((GcFWP`T zf(6hK3|5_r49-0`yMIk~*V8NHMSW{ZyNs zpG#Gn>~=%Bi8_4P>v_#wAzU( z-H~K>JkG-`m$hR;$uO0NYx4|6^@H(nCrjjR9I_;uSvkFBP`Z55{ak_DQICTuswTR- zSdK&8RUtREGkMNRpRI$l(B}aE53&iG@E@9Wk8FrG(D%_&&p697iXQuUcLHwbrGAmf z8_fy4FyQ|i2E23T;`szSym^rm4K@BX3~{$ubo(&QP7B=dOr1$S9D28GNN%9-iUw~( z9M5arSW@wVWAP9#Q!Ea?nfR+Q;hp4b{+jzlQ zcA;p&y@FWr3&je&|CbBZ0>$40n);CPU49zblRnLox5QGE2#@X&Xibt23>qmE3R}kq zjr7gQY3?KN73O&UH3wBhRFq04M&G&k`@x1oOShRvoi30cIrO6T?ir(E8dts?7F9mt z#Oc>H=bKQwYtTO#Zr{A;Y?VNazNsO^SLor>jnbk3_D?+EMscyV*Cbb_{=vGauc7vn z2Lj*I{`KUHpTGY+CGRt$G%Pz?cvdKQy>Ol}uuNY+A+hevk)iKKy_7cV+~{*Z*_!uf z&zcz^RXjAeNH0FNIda*>!pRkvzYDwExM)p?XBJShknxM z;t$s*UViDdpNdMizrFVIge8%?t_+cD-yHU@ zWw3umBN}%{Jls1rrrGMLkR!&&orH3Tlnnve1slp>nH>U8?w3Re|hmOAD?TPm*^ z^^Ylr8#koqYbLIb2)>znO(@vVxPImGqsKF=cC4{)dv$2o^-TSN#A}M;%BGH;W9BY= z=8-Rs?r7UJp|x$&t^wzW@-qj&8gw&j`szyw);9}{J8i7_*uN%1we7XxW9I{A$UeK& zaanch=dqiH9SaX?eQxu;ueaRH>o{MJ(Z{hKzc)VEe35I$>um!! z9Q2ESz;QtKPVtEl4IzJj;imgWy!C3^i}TD*^Wnd+%8Wja`PNMwarn_gcW!$5%9mkV z3I~n8y5Nns0`4q~+qgVkGVJ@tFHs?v`6!pc^?2)rP!O^8yHnS9jGtX0+LHO|V^>Nh zKDg)f_z$*gB*(|+M9jN;Z*YFqwiS{c2e-#wn0+AOi7#!n|}!ZNZ71k z2OaySJEPBAEa|OQ-e|Q9kRj{&`uesY!w3X8cH#%y2lfpU#;EMuJ!LSN)X2jZ!n{ng z#^f5$LP6bt`x}PudEkWP;>kBZ81Zd;X1v+_Sl=0Um8`1V`uwbGVV~bxzb9x;%ug#m z8JIJ+J+~vIqkr9~?TZ7~yzeNCIKJA)n>Bk|e`~A{_Gv$1s}8A;BNCcjx|&g>{sO_Q zYZFJrZ}>UmgjF;C?D{VUOF#YgPtPT7R*n+KOZP6F_Y9)20sWI=926I!z@LgpB9tKM zMrkZ3ww;Iz{zK&R8~g{C9ZQ_Ge8|1=icQAa#*gb0hhO|6?Cr+|$^z9`Qe$eclQmYm zgS;n-3{j_L<%bFdyZ65G?v{ui-Mc^*_SXqYt$W^E)}~J!Su|H}&n9m=Ut}_31*dZF?Kky;eZv6_co?OiG)rWiAGd zof(;pbv%A3lAv{fSD*qxJvI=o&1p7z9nd{h`xy z9B2Pg|GixrZhd*qS=;D`H?L_`efs$HQ~h6BwvPtic9iy)} zcU0=lU3y!;$g8ni$|RkD_GN+vA2eQYd7C{EUkqB@DQK@#ATH$rI!Y+`DJnbh=&|b6 z!ShS}6Bkb1n_#$NSv%!=<&eT9X*UwaKfUhKy17qY{f9R2$l{p$!&U@Y0+b()H&1zF z<13qf(AFN1dUKE7)-Uqfvz9_J2JP$DQiA(PEp5A;T#-{QIyz4_=gha!HGS0n&;IrM zS7cAF-}H_8lvEgX2&gczVU|OFJ}nQD$K)@HSbXLP7}+FG4}^p`YJ=_*UGz z+D8LxayF}HiJrb&M?QA5=*E+Kmds3SJbL|D?5?KRxy82@t!X>(>4U~4(}gp?U%aP! z;F#d)TkhH|_vR42t>0T$S}Y<2)(=Ja{+NXmY!@Dk9N1fZsE%fg2Uo_66gZ(fr3Hc^ zI8xXhR$Egf6}`00AHX1b$rttx5gxVxxQKXmar&w3EM@@d#;~f6Q;u2anWcNr?LJ^Le31 z20nG-*4hDwhl(yD{qaEznm?VhqF6A9U2gbwqqLMgi0Q#jeim{6)DXk-Kc=r<5tF$8 z2mJ!w?8jzbo9S;pXZ(}>()cg-y?aR(n~*M!m^5hX6xH^FnHe8M%^kJn;7EP&Yj+(= z`zLqu3m;lP>Vp5)lwqF)j>;?i;_zE%9Gfnjy>V`Q$)Q;XYEG8+Rx7W#q^(JPyKg@~ z@j!v#PTTX39qV`eCt;@VP|?x7QGMQ>6tHY;|Bp7#d+6DDSI=E{+Ru+;zk#g%e7jLv z!rCu}IY5XwP_=#gSN1K&1WlW9u=M!6wg)y^{eFJw(uVyZexh&g6AC7MHB#I5zt6@_ z`7UqB@n!#~I4(IqG+|v;;E;wgi{(^tTHMvIUpy`+5B_o6(Qp6yW6*&)2VS`&D{ah2 z2hTQXk?_bUyh+RG|Fx_7p@$T5~cAjb88hHPpqd@u}tUb6;N69^AI<9^*qZRy~gj69hEup^|}cbj4Fs8OWj0oLf^0= z3si0=FQqoC-5!CK@Ma4-fJw^K{Bh)h*7I+~N6wvedW!$(??39By0PksaOs7P*}Jlq zKKRiWPrO>3uyerCvgd|h{qym^i-z6zH`~s46xxRS2X8vu#UX}QC5w(K9Z#um)&|yP zr_V?-ul(4!So(b8`Ml?HMxN@gTJvUa)oM)&xLwTQTStsz&bj8x!A}Q0d}Q(GyBA8| zB2*2J|M9`EE_OstTr)}ems5Y$IL+fa3J?oiF-O#m(qa!&dfk5s1$UbyM~vI<+I@QB z31KoZ;@CSYR;Ete{N99zQxepEd$p>iFULN0vZ%jo(NiCP^7)O52JMA5(VjQsb04@h z?Eo>|pLIw6KE~Vj!JDi0Rx7W##H~qvZf8G!cYLw^yxlKy+Rqog(mP?U{bb!J?Xq7F z=KPqK|M1zP2j1v6K4SKuMU@}F8Pjpc@Fjm9yn1kk_3qfr?Gql64Ctt@EDzngNxMIH z*@G|7-<0jYF8}Su5uYr6XXEo(|KyzSZ3gVER$g(5TgUr**w4>(Qq3QKB779*?S7Hd zey$@T?!8Z8H%hzieKMi68{<#E@U_Rc&i_-@sx^N~T)lkhzN3acm1||Ok0yRM{C{5( zly6ut?z?q=88PC_cOxfX82ikQ)+_hsz4OK+f4TnD+b@z=@4Ul@nGX04>uvmbizdC* J${Q`w{|6=Ewrl_Z diff --git a/logs/app.2026-03-04.log b/logs/app.2026-03-04.log deleted file mode 100644 index 2325fdf..0000000 --- a/logs/app.2026-03-04.log +++ /dev/null @@ -1,1296 +0,0 @@ -17:24:06.308 [wsServer-thread] INFO s.ws.BlockchainTmpRecoveryOnStartup - 🟢 BlockchainTmpRecovery: временных *.tmp_bch файлов не найдено — восстановление не требуется. -17:24:06.375 [wsServer-thread] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.18+8-Ubuntu-124.04.1 -17:24:06.437 [wsServer-thread] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@6e1b7ed5{/,null,AVAILABLE} -17:24:06.445 [wsServer-thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@30b62ac{HTTP/1.1, (http/1.1)}{0.0.0.0:7070} -17:24:06.452 [wsServer-thread] INFO org.eclipse.jetty.server.Server - Started Server@79a62b9c{STARTING}[11.0.20,sto=0] @926ms -17:24:06.452 [wsServer-thread] INFO server.ws.WsServer - ✅ WS сервер запущен на ws://localhost:7070/ws -17:24:07.175 [qtp587747978-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38734 -17:24:07.210 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-1", - "payload": { - "login": "TestUser1", - "blockchainName": "TestUser1-001", - "solanaKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "blockchainKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "deviceKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "bchLimit": 50000000 - } -} - -17:24:07.279 [ws-worker-1] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser1, blockchainName=TestUser1-001, limit=50000000 -17:24:07.293 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-1","status":200,"payload":{"ok":true}} -17:24:07.298 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-2", - "payload": { - "login": "TestUser1" - } -} - -17:24:07.301 [ws-worker-2] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -17:24:07.303 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-2","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -17:24:07.307 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-3", - "payload": { - "login": "TestUser2", - "blockchainName": "TestUser2-001", - "solanaKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "blockchainKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "deviceKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "bchLimit": 50000000 - } -} - -17:24:07.312 [ws-worker-3] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser2, blockchainName=TestUser2-001, limit=50000000 -17:24:07.313 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-3","status":200,"payload":{"ok":true}} -17:24:07.315 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-4", - "payload": { - "login": "TestUser2" - } -} - -17:24:07.317 [ws-worker-4] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser2, blockchainName=TestUser2-001 -17:24:07.317 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-4","status":200,"payload":{"exists":true,"login":"TestUser2","blockchainName":"TestUser2-001","solanaKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","blockchainKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","deviceKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","ok":true}} -17:24:07.320 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-5", - "payload": { - "login": "TestUser3", - "blockchainName": "TestUser3-001", - "solanaKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "blockchainKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "deviceKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "bchLimit": 50000000 - } -} - -17:24:07.325 [ws-worker-5] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser3, blockchainName=TestUser3-001, limit=50000000 -17:24:07.326 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-5","status":200,"payload":{"ok":true}} -17:24:07.328 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-6", - "payload": { - "login": "TestUser3" - } -} - -17:24:07.330 [ws-worker-6] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser3, blockchainName=TestUser3-001 -17:24:07.330 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-6","status":200,"payload":{"exists":true,"login":"TestUser3","blockchainName":"TestUser3-001","solanaKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","blockchainKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","deviceKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","ok":true}} -17:24:07.335 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-7", - "payload": { - "login": "Testuser1" - } -} - -17:24:07.336 [ws-worker-7] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -17:24:07.337 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-7","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -17:24:07.340 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-8", - "payload": { - "login": "NoSuchUser_987654321" - } -} - -17:24:07.343 [ws-worker-8] INFO s.l.w.J.h.t.Net_GetUser_Handler - ℹ️ GetUser: not found for login=NoSuchUser_987654321 -17:24:07.343 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-8","status":200,"payload":{"exists":false,"ok":true}} -17:24:07.346 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SearchUsers", - "requestId": "it-searchusers-9", - "payload": { - "prefix": "Tes" - } -} - -17:24:07.349 [ws-worker-9] INFO s.l.w.J.h.t.Net_SearchUsers_Handler - ✅ SearchUsers ok: prefix='Tes' -> 3 -17:24:07.352 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SearchUsers","requestId":"it-searchusers-9","status":200,"payload":{"logins":["TestUser1","TestUser2","TestUser3"],"ok":true}} -17:24:07.357 [qtp587747978-38] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.362 [qtp587747978-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38746 -17:24:07.363 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-10", - "payload": { "login": "TestUser1" } -} - -17:24:07.368 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-10","status":200,"payload":{"authNonce":"7J0gCbClpXFegl3rATic0Hom6AQeBJEb/tr80utehfI","ok":true}} -17:24:07.376 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-11", - "payload": { - "storagePwd": "pwd-703441157847947", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634247371, - "signatureB64": "HG3VL+hm4YKFEz+ew8MSCSyPwIvnJcQqOQ5DOuN12bqfR7nGhvID+59WLlctWHzBKmEzwcIzrrd2mqXFFiwUAQ==", - "clientInfo": "it-tests" - } -} - -17:24:07.387 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-11","status":200,"payload":{"sessionId":"pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w","ok":true}} -17:24:07.390 [qtp587747978-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.393 [qtp587747978-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38752 -17:24:07.394 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-12", - "payload": { "login": "TestUser1" } -} - -17:24:07.398 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-12","status":200,"payload":{"authNonce":"4AfJawYtV8x5Yf7uerYzzQ4b3d+F3ghb42u31WUvtqI","ok":true}} -17:24:07.400 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-13", - "payload": { - "storagePwd": "pwd-703441186060889", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634247399, - "signatureB64": "RmIP575wz9S+Zq1hLSethOQy6dBvpnxbgvdkhGuNkmtwyOv5IsOND9PVtkRQFI8EywgDpxtOGG0HxGOoUF1EAA==", - "clientInfo": "it-tests" - } -} - -17:24:07.408 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-13","status":200,"payload":{"sessionId":"jcjPUfsTMOJX02lJHKp8OzVUmgFkG9wxW8n8pItS2Oc","ok":true}} -17:24:07.409 [qtp587747978-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.412 [qtp587747978-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38756 -17:24:07.414 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-14", - "payload": { "login": "TestUser1" } -} - -17:24:07.416 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-14","status":200,"payload":{"authNonce":"IgmBpTnO94hBCoPY91ZKIItHlWrbCSyBxWSbS/UxbZI","ok":true}} -17:24:07.418 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-15", - "payload": { - "storagePwd": "pwd-703441203727427", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634247417, - "signatureB64": "UpX6TZDmCZWPUQGY3JRloe+xBrG1hy1GvmuppB3IDg/7mPO7Q3jtEEhWdkNko0mZfeMEksBLkYKfLF8ylu0HAA==", - "clientInfo": "it-tests" - } -} - -17:24:07.425 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-15","status":200,"payload":{"sessionId":"cWl0luB9lWuUpMaJd/JKxlwOE79boyJ6+R5HYglEjZA","ok":true}} -17:24:07.426 [qtp587747978-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.429 [qtp587747978-31] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38758 -17:24:07.431 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-16", - "payload": { - "sessionId": "pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w" - } -} - -17:24:07.440 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-16","status":200,"payload":{"nonce":"dVLqdaFvqyomJSAcfMlLg/tdFz0R+rHMhHPVoG73tkg","ok":true}} -17:24:07.444 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-17", - "payload": { - "sessionId": "pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w", - "timeMs": 1772634247442, - "signatureB64": "ZnqSgduhAmvyYS6GD8oN03s4uefrfCZ3Ke6z0ZHNtL+jaFeDPvJ8bUrF/QD5Lkblu2+14Qk9mfncaIyC1HxECw==", - "clientInfo": "it-tests" - } -} - -17:24:07.460 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-17","status":200,"payload":{"storagePwd":"pwd-703441157847947","ok":true}} -17:24:07.462 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-18", - "payload": { - } -} - -17:24:07.468 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-18","status":200,"payload":{"sessions":[{"sessionId":"pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634247453},{"sessionId":"jcjPUfsTMOJX02lJHKp8OzVUmgFkG9wxW8n8pItS2Oc","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634247402},{"sessionId":"cWl0luB9lWuUpMaJd/JKxlwOE79boyJ6+R5HYglEjZA","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634247419}],"ok":true}} -17:24:07.470 [qtp587747978-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.473 [qtp587747978-32] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38774 -17:24:07.475 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-19", - "payload": { "login": "TestUser1" } -} - -17:24:07.477 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-19","status":200,"payload":{"authNonce":"/fbfIqWoqEaJXk/uWSYCclKBVPWYrHzFJYMj9zbza/o","ok":true}} -17:24:07.479 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-20", - "payload": { - "storagePwd": "pwd-703441264996047", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634247478, - "signatureB64": "v7uJtvVjPKDx5m9LlsEro7eVlL3a/omRpCx6dar/wWTAVL1FUz5GJkZ5izOsYAWt21VRIvPjEX526GYtGccyCg==", - "clientInfo": "it-tests" - } -} - -17:24:07.485 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-20","status":200,"payload":{"sessionId":"PZrBZtq5SNjs0GZHVx6BZ4lF0TRH1t5JtC3MYtDzhLU","ok":true}} -17:24:07.487 [qtp587747978-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.491 [qtp587747978-33] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38776 -17:24:07.492 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-21", - "payload": { - "sessionId": "pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w" - } -} - -17:24:07.494 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-21","status":200,"payload":{"nonce":"w+RUuMebXJHiP6Sx4c8FTCijnRkjV9fyG2AYfD2xXL0","ok":true}} -17:24:07.496 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-22", - "payload": { - "sessionId": "pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w", - "timeMs": 1772634247495, - "signatureB64": "dmvaHUX+beBBM+/zg3UyeRqQ0eFZ2nGAUAJ5rTdDXdjM8ZQOrrgg3yuZL4p5H5pLFOvxfoon4WGPcunABMgiCA==", - "clientInfo": "it-tests" - } -} - -17:24:07.504 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-22","status":200,"payload":{"storagePwd":"pwd-703441157847947","ok":true}} -17:24:07.505 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CloseActiveSession", - "requestId": "it-close-23", - "payload": { - "sessionId": "PZrBZtq5SNjs0GZHVx6BZ4lF0TRH1t5JtC3MYtDzhLU" - } -} - -17:24:07.516 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CloseActiveSession","requestId":"it-close-23","status":200,"payload":{"ok":true}} -17:24:07.517 [qtp587747978-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.521 [qtp587747978-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38778 -17:24:07.523 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-24", - "payload": { - "sessionId": "pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w" - } -} - -17:24:07.526 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-24","status":200,"payload":{"nonce":"0cnpcBWyN0r5iGVMFJDSsg9Z6hQDp2WaRUBNsQKKrG4","ok":true}} -17:24:07.528 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-25", - "payload": { - "sessionId": "pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w", - "timeMs": 1772634247527, - "signatureB64": "yNaUTBhwKn0KP7Lke71V5EGQI2OfI2CoKqOVrCPmd9O+Bkf0WTVPNsm1FxfOj5WPmnSWkGSk91N5HoAIVTEZDg==", - "clientInfo": "it-tests" - } -} - -17:24:07.537 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-25","status":200,"payload":{"storagePwd":"pwd-703441157847947","ok":true}} -17:24:07.539 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-26", - "payload": { - } -} - -17:24:07.541 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-26","status":200,"payload":{"sessions":[{"sessionId":"pzInHbo8fC/HcqfZN16eDGZflRoBl9HiHFS1JnQCp9w","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634247532},{"sessionId":"jcjPUfsTMOJX02lJHKp8OzVUmgFkG9wxW8n8pItS2Oc","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634247402},{"sessionId":"cWl0luB9lWuUpMaJd/JKxlwOE79boyJ6+R5HYglEjZA","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634247419}],"ok":true}} -17:24:07.543 [qtp587747978-31] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.547 [qtp587747978-43] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38784 -17:24:07.559 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-27", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGmoQIcAAAAAAAFTSGlOZQlUZXN0VXNlcjEBAPqFPDTDI8g/3E4pMShBs4Jo8Ziy7LaG3hTmhHWvAZuuJ9yU0Z8mAV3dem5NkwoNpPm2utg6OTdcB+yrrnvJsgc=" - } -} - -17:24:07.565 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:24:07.570 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=0, newHash=c77bc6b44e27b73bd4117dcd374baa58125bc6309be6fca0b856c3d0eb093d9c -17:24:07.572 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-27","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"c77bc6b44e27b73bd4117dcd374baa58125bc6309be6fca0b856c3d0eb093d9c","ok":true}} -17:24:07.578 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-28", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 1, - "prevBlockHash": "c77bc6b44e27b73bd4117dcd374baa58125bc6309be6fca0b856c3d0eb093d9c", - "blockBytesB64": "AADHe8a0Tie3O9QRfc03S6pYElvGMJvm/KC4VsPQ6wk9nAAAAIEAAAABAAAAAGmoQIcAAQAKAAEAAAAAAAAAAMd7xrROJ7c71BF9zTdLqlgSW8Ywm+b8oLhWw9DrCT2cAAAAAAAbVTE6IHN0b3J5L3Bvc3QgaW4gY2hhbm5lbCAwAQARi/Jfr0LK3WI3UerRrtpyQjAlouS5S7HsHXVQQcIGJwsNy1MTS9QbWdsAx0JdHSEewLeCQWbvlJ+uBTianHMJ" - } -} - -17:24:07.583 [ws-worker-12] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=0 prevLineNumber=0 thisLineNumber=0 prevLineHashLen=32 -17:24:07.587 [ws-worker-12] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=1, newHash=3ef821c36f340e3092cabd494418f9c0fe90a7d8ed3e830cb36834fe7601cf2a -17:24:07.587 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-28","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"3ef821c36f340e3092cabd494418f9c0fe90a7d8ed3e830cb36834fe7601cf2a","ok":true}} -17:24:07.589 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-29", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 2, - "prevBlockHash": "3ef821c36f340e3092cabd494418f9c0fe90a7d8ed3e830cb36834fe7601cf2a", - "blockBytesB64": "AAA++CHDbzQOMJLKvUlEGPnA/pCn2O0+gwyzaDT+dgHPKgAAAGkAAAACAAAAAGmoQIcAAAABAAEAAAAAAAAAAMd7xrROJ7c71BF9zTdLqlgSW8Ywm+b8oLhWw9DrCT2cAAAAAQROZXdzAQBMSQMEJbnkgN9Tfrbhqq7fQtJwjPmbmopdigKSp3ZFgQO0AiNNLJRl7hFzBt36+JqUCc/MFiyGqKUpNhGOj1UO" - } -} - -17:24:07.593 [ws-worker-13] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=1 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -17:24:07.597 [ws-worker-13] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=2, newHash=accb63727c5f12e2927c35141213474247bacd4de9b0a4fe1978de2afbeee673 -17:24:07.598 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-29","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"accb63727c5f12e2927c35141213474247bacd4de9b0a4fe1978de2afbeee673","ok":true}} -17:24:07.600 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-30", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 3, - "prevBlockHash": "accb63727c5f12e2927c35141213474247bacd4de9b0a4fe1978de2afbeee673", - "blockBytesB64": "AACsy2NyfF8S4pJ8NRQSE0dCR7rNTemwpP4ZeN4q++7mcwAAAHYAAAADAAAAAGmoQIcAAQAKAAEAAAACAAAAAqzLY3J8XxLiknw1FBITR0JHus1N6bCk/hl43ir77uZzAAAAAAAQVTE6IE5ld3MgcG9zdCAjMAEAsRNNstW+8BBv6CdQU/h+tbaIaLWFn8oykstLKe31GCiag16VYNS1uORCMBk1j6KQ0lXO2+Z7VlUMwonAHM93DQ==" - } -} - -17:24:07.607 [ws-worker-14] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=2 thisLineNumber=0 prevLineHashLen=32 -17:24:07.613 [ws-worker-14] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=3, newHash=af7df5040d5cadb450487a54f4f6a1c01988e0b5baa980a1afa61639c60c0399 -17:24:07.613 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-30","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"af7df5040d5cadb450487a54f4f6a1c01988e0b5baa980a1afa61639c60c0399","ok":true}} -17:24:07.616 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-31", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 4, - "prevBlockHash": "af7df5040d5cadb450487a54f4f6a1c01988e0b5baa980a1afa61639c60c0399", - "blockBytesB64": "AACvffUEDVyttFBIelT09qHAGYjgtbqpgKGvphY5xgwDmQAAAHYAAAAEAAAAAGmoQIcAAQAKAAEAAAACAAAAA6999QQNXK20UEh6VPT2ocAZiOC1uqmAoa+mFjnGDAOZAAAAAQAQVTE6IE5ld3MgcG9zdCAjMQEArNg4VSIg9SVO3HgOi+HixXB9aKuhAlYeTtr6L33JVg3qATh0R1bqQhyn5opkKBS3Q0Cm08YEncQsC6fxSK+tDQ==" - } -} - -17:24:07.619 [ws-worker-15] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=3 thisLineNumber=1 prevLineHashLen=32 -17:24:07.624 [ws-worker-15] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=4, newHash=edfa47ff99352e90f84778c41ace7a13d77dad405414ff7b40c503d43a8d52a9 -17:24:07.624 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-31","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"edfa47ff99352e90f84778c41ace7a13d77dad405414ff7b40c503d43a8d52a9","ok":true}} -17:24:07.626 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-32", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 5, - "prevBlockHash": "edfa47ff99352e90f84778c41ace7a13d77dad405414ff7b40c503d43a8d52a9", - "blockBytesB64": "AADt+kf/mTUukPhHeMQaznoT132tQFQU/3tAxQPUOo1SqQAAAKEAAAAFAAAAAGmoQIcAAQALAAEAAAACAAAABO36R/+ZNS6Q+Ed4xBrOehPXfa1AVBT/e0DFA9Q6jVKpAAAAAgAAAAOvffUEDVyttFBIelT09qHAGYjgtbqpgKGvphY5xgwDmQAXVTE6IE5ld3MgcG9zdCAjMCAoRURJVCkBAGN86Cx3mO94QQHMun8ZY74VGFCUcQWZt0O+LY48D3srAsNLJPBTYQXX5aneRpGufworGxnkehieeOYj3Qk1Jwc=" - } -} - -17:24:07.629 [ws-worker-16] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=11 lineCode=2 prevLineNumber=4 thisLineNumber=2 prevLineHashLen=32 -17:24:07.633 [ws-worker-16] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=5, newHash=6793912d9d9b542375c1e3efcdda97b17a8947b88724e651a641c61d57b2181d -17:24:07.634 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-32","status":200,"payload":{"serverLastGlobalNumber":5,"serverLastGlobalHash":"6793912d9d9b542375c1e3efcdda97b17a8947b88724e651a641c61d57b2181d","ok":true}} -17:24:07.636 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-33", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGmoQIcAAAAAAAFTSGlOZQlUZXN0VXNlcjIBAG3UOKOD19W+10PxHYz8TuWhDSJRbH4dcQYp9Ip8cpqG2W0bDUtZCZ80H2rhkR3tJHLJf8uun7Hv5GpPXP7KwAQ=" - } -} - -17:24:07.641 [ws-worker-1] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:24:07.645 [ws-worker-1] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=0, newHash=df27486aa71bfb2e2b179999458de5257fe5218b0bba0f468680964f5a7ca9c5 -17:24:07.646 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-33","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"df27486aa71bfb2e2b179999458de5257fe5218b0bba0f468680964f5a7ca9c5","ok":true}} -17:24:07.651 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-34", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 6, - "prevBlockHash": "6793912d9d9b542375c1e3efcdda97b17a8947b88724e651a641c61d57b2181d", - "blockBytesB64": "AABnk5EtnZtUI3XB4+/N2pexeolHuIck5lGmQcYdV7IYHQAAAJYAAAAGAAAAAGmoQIcAAwAeAAEAAAAAAAAAAMd7xrROJ7c71BF9zTdLqlgSW8Ywm+b8oLhWw9DrCT2cAAAAAQ1UZXN0VXNlcjItMDAxAAAAAN8nSGqnG/suKxeZmUWN5SV/5SGLC7oPRoaAlk9afKnFAQDv21FZ8ryiea56rA9pputRKHN076SDIZKl+VycBHFzN/TZ+ZMkHF7BtVQNm86LvG9ddsrJFAytc2iPXzYhrhMP" - } -} - -17:24:07.656 [ws-worker-2] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -17:24:07.662 [ws-worker-2] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=6, newHash=121b4bab9aebdf80e159b0721452c42b8fb1a59855796c86fbce83e9fe25a046 -17:24:07.662 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-34","status":200,"payload":{"serverLastGlobalNumber":6,"serverLastGlobalHash":"121b4bab9aebdf80e159b0721452c42b8fb1a59855796c86fbce83e9fe25a046","ok":true}} -17:24:07.665 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-35", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 1, - "prevBlockHash": "df27486aa71bfb2e2b179999458de5257fe5218b0bba0f468680964f5a7ca9c5", - "blockBytesB64": "AADfJ0hqpxv7LisXmZlFjeUlf+Uhiwu6D0aGgJZPWnypxQAAAJYAAAABAAAAAGmoQIcAAwAeAAEAAAAAAAAAAN8nSGqnG/suKxeZmUWN5SV/5SGLC7oPRoaAlk9afKnFAAAAAQ1UZXN0VXNlcjEtMDAxAAAAAqzLY3J8XxLiknw1FBITR0JHus1N6bCk/hl43ir77uZzAQBOFjAeh0R9rsjgfAcHVvwONTotL9KJj9/N4EZ0EXsFFrYeYZhEQ08r+wyo8l4PsJkv9DhrSk4RZdBNi4J+jdwI" - } -} - -17:24:07.669 [ws-worker-3] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -17:24:07.674 [ws-worker-3] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=1, newHash=76ee8f1f01d8641825ea3de0862240c99b40278dd5a382dc4743e23091ce2088 -17:24:07.675 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-35","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"76ee8f1f01d8641825ea3de0862240c99b40278dd5a382dc4743e23091ce2088","ok":true}} -17:24:07.677 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-36", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 7, - "prevBlockHash": "121b4bab9aebdf80e159b0721452c42b8fb1a59855796c86fbce83e9fe25a046", - "blockBytesB64": "AAASG0urmuvfgOFZsHIUUsQrj7GlmFV5bIb7zoPp/iWgRgAAAJYAAAAHAAAAAGmoQIcAAwAKAAEAAAAAAAAABhIbS6ua69+A4VmwchRSxCuPsaWYVXlshvvOg+n+JaBGAAAAAg1UZXN0VXNlcjItMDAxAAAAAN8nSGqnG/suKxeZmUWN5SV/5SGLC7oPRoaAlk9afKnFAQDYYrrhw9vy9HzRSKe92i0FWiEUYWYxdODwL+B3lo2xmvQP470oNc65KRy7Sl+rjPZP8JEYmTMjMMhpgqGTKNcL" - } -} - -17:24:07.680 [ws-worker-4] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=6 thisLineNumber=2 prevLineHashLen=32 -17:24:07.686 [ws-worker-4] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=7, newHash=62d926f8b2b2e70f08f5888806fb53692cb40d4e237b9a8d843e6add28ba7019 -17:24:07.686 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-36","status":200,"payload":{"serverLastGlobalNumber":7,"serverLastGlobalHash":"62d926f8b2b2e70f08f5888806fb53692cb40d4e237b9a8d843e6add28ba7019","ok":true}} -17:24:07.688 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-37", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 2, - "prevBlockHash": "76ee8f1f01d8641825ea3de0862240c99b40278dd5a382dc4743e23091ce2088", - "blockBytesB64": "AAB27o8fAdhkGCXqPeCGIkDJm0AnjdWjgtxHQ+Iwkc4giAAAAJYAAAACAAAAAGmoQIcAAwAKAAEAAAAAAAAAAXbujx8B2GQYJeo94IYiQMmbQCeN1aOC3EdD4jCRziCIAAAAAg1UZXN0VXNlcjEtMDAxAAAAAMd7xrROJ7c71BF9zTdLqlgSW8Ywm+b8oLhWw9DrCT2cAQDXySeqiGupCMIEd8/9xc7UzGzZk3EUZCzlKV5k6dWmQmaaBkqaQUdCvUnAVcnHiEtDVh5iiJ6pLHXmHBLEqj8O" - } -} - -17:24:07.695 [ws-worker-5] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=1 thisLineNumber=2 prevLineHashLen=32 -17:24:07.701 [ws-worker-5] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=2, newHash=ec26ae2df1d64cffa435134279ce42ba5f3e472dc22b97cf2c25be2ebb00dc7e -17:24:07.703 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-37","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"ec26ae2df1d64cffa435134279ce42ba5f3e472dc22b97cf2c25be2ebb00dc7e","ok":true}} -17:24:07.709 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-38", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 8, - "prevBlockHash": "62d926f8b2b2e70f08f5888806fb53692cb40d4e237b9a8d843e6add28ba7019", - "blockBytesB64": "AABi2Sb4srLnDwj1iIgG+1NpLLQNTiN7mo2EPmrdKLpwGQAAAJYAAAAIAAAAAGmoQIcAAwAUAAEAAAAAAAAAB2LZJviysucPCPWIiAb7U2kstA1OI3uajYQ+at0ounAZAAAAAw1UZXN0VXNlcjItMDAxAAAAAN8nSGqnG/suKxeZmUWN5SV/5SGLC7oPRoaAlk9afKnFAQDE71HG1bIQD/APIMF4RRITC6zcu23ESnTyTjcLnxaCcllRvio5+aT1Twvn4ZpIFTLuGUtUhYFP/DY59RnBPXMH" - } -} - -17:24:07.721 [ws-worker-6] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=7 thisLineNumber=3 prevLineHashLen=32 -17:24:07.729 [ws-worker-6] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=8, newHash=e069c806ebde5f884e81cff416420724b3bc2430a8f8b83c087aa4831a249d49 -17:24:07.730 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-38","status":200,"payload":{"serverLastGlobalNumber":8,"serverLastGlobalHash":"e069c806ebde5f884e81cff416420724b3bc2430a8f8b83c087aa4831a249d49","ok":true}} -17:24:07.734 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-39", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 3, - "prevBlockHash": "ec26ae2df1d64cffa435134279ce42ba5f3e472dc22b97cf2c25be2ebb00dc7e", - "blockBytesB64": "AADsJq4t8dZM/6Q1E0J5zkK6Xz5HLcIrl88sJb4uuwDcfgAAAJYAAAADAAAAAGmoQIcAAwAUAAEAAAAAAAAAAuwmri3x1kz/pDUTQnnOQrpfPkctwiuXzywlvi67ANx+AAAAAw1UZXN0VXNlcjEtMDAxAAAAAMd7xrROJ7c71BF9zTdLqlgSW8Ywm+b8oLhWw9DrCT2cAQBriBMYB4C/ZaXtOoAvhlSqAmcTFIxEgmEDJqZ7LKOJeSkdepEtnOEasT3kPYbg1a24SJzMGBtjWqbwz9q9ZYgP" - } -} - -17:24:07.739 [ws-worker-7] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=2 thisLineNumber=3 prevLineHashLen=32 -17:24:07.745 [ws-worker-7] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=3, newHash=94aeabbe47c279bde37d631041982e1c4eaf974a84869e9dc9b55d296e6e55a1 -17:24:07.746 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-39","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"94aeabbe47c279bde37d631041982e1c4eaf974a84869e9dc9b55d296e6e55a1","ok":true}} -17:24:07.751 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-40", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 4, - "prevBlockHash": "94aeabbe47c279bde37d631041982e1c4eaf974a84869e9dc9b55d296e6e55a1", - "blockBytesB64": "AACUrqu+R8J5veN9YxBBmC4cTq+XSoSGnp3JtV0pbm5VoQAAAJYAAAAEAAAAAGmoQIcAAQAUAAENVGVzdFVzZXIxLTAwMQAAAAOvffUEDVyttFBIelT09qHAGYjgtbqpgKGvphY5xgwDmQAqVTI6IHJlcGx5IHRvIFUxIE5ld3MgcG9zdCAjMCAoY3Jvc3MtY2hhaW4pAQBaYTCSUVcoV5rnBPxvpJp6VbtEYfrZRAcERcF5MY1qx4v7spJZNbRxT2L9YsV3XJN/oESXVs3B32euDdF89mcA" - } -} - -17:24:07.756 [ws-worker-8] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=20 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:24:07.763 [ws-worker-8] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=4, newHash=39845e5986926d5a2307954f76e5c4262bd7901ac74e6a737db4fb8f6f4382a7 -17:24:07.763 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-40","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"39845e5986926d5a2307954f76e5c4262bd7901ac74e6a737db4fb8f6f4382a7","ok":true}} -17:24:07.766 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-41", - "payload": { - "blockchainName": "TestUser3-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGmoQIcAAAAAAAFTSGlOZQlUZXN0VXNlcjMBAB3mkpUVc76/m8qxrTf4e8Im9BsbMTUFujRFzMxrjbyIosQJWr3wBFwmgEJl2o6hY+YILleIh16M8Ub7mRDvbQk=" - } -} - -17:24:07.770 [ws-worker-9] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:24:07.776 [ws-worker-9] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser3, blockchainName=TestUser3-001, blockNumber=0, newHash=adb67a13ab6ec25e6ed169eaa72139fc633b125f7b3a4c353041594f6bfd8691 -17:24:07.776 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-41","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"adb67a13ab6ec25e6ed169eaa72139fc633b125f7b3a4c353041594f6bfd8691","ok":true}} -17:24:07.779 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-42", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 9, - "prevBlockHash": "e069c806ebde5f884e81cff416420724b3bc2430a8f8b83c087aa4831a249d49", - "blockBytesB64": "AADgacgG695fiE6Bz/QWQgcks7wkMKj4uDwIeqSDGiSdSQAAAJYAAAAJAAAAAGmoQIcAAwAUAAEAAAAAAAAACOBpyAbr3l+IToHP9BZCBySzvCQwqPi4PAh6pIMaJJ1JAAAABA1UZXN0VXNlcjMtMDAxAAAAAK22ehOrbsJebtFp6qchOfxjOxJfezpMNTBBWU9r/YaRAQCDT/sI1whMau/8z56w/SkjVFGqER5Phh6ew7jWNxvWCKPecs8Uc/c8c5xsxoPqOOaB7OdmHrwn0oJSNk/UjCsC" - } -} - -17:24:07.784 [ws-worker-10] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=8 thisLineNumber=4 prevLineHashLen=32 -17:24:07.790 [ws-worker-10] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=9, newHash=aa2208f919ea78d9975e025d78b039682c332ffa72f23219ae20c98991454b61 -17:24:07.792 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-42","status":200,"payload":{"serverLastGlobalNumber":9,"serverLastGlobalHash":"aa2208f919ea78d9975e025d78b039682c332ffa72f23219ae20c98991454b61","ok":true}} -17:24:07.794 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-43", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 10, - "prevBlockHash": "aa2208f919ea78d9975e025d78b039682c332ffa72f23219ae20c98991454b61", - "blockBytesB64": "AACqIgj5Gep42ZdeAl14sDloLDMv+nLyMhmuIMmJkUVLYQAAAJYAAAAKAAAAAGmoQIcAAwAVAAEAAAAAAAAACaoiCPkZ6njZl14CXXiwOWgsMy/6cvIyGa4gyYmRRUthAAAABQ1UZXN0VXNlcjItMDAxAAAAAN8nSGqnG/suKxeZmUWN5SV/5SGLC7oPRoaAlk9afKnFAQBezbaHxsC5/SPS8Xw7pNvtIqFlVgzUeKKo+w3+3u8MbG6uckCGVu/9HyHoxZ211RV8JsVfnsrLbIZI/CcSBAII" - } -} - -17:24:07.798 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=21 lineCode=0 prevLineNumber=9 thisLineNumber=5 prevLineHashLen=32 -17:24:07.803 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=10, newHash=d213abb238e0e1aacca30db5939743f5e8a95baa9c4ffa09e33465db4eb1cde8 -17:24:07.804 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-43","status":200,"payload":{"serverLastGlobalNumber":10,"serverLastGlobalHash":"d213abb238e0e1aacca30db5939743f5e8a95baa9c4ffa09e33465db4eb1cde8","ok":true}} -17:24:07.806 [qtp587747978-43] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.815 [qtp587747978-38] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38786 -17:24:07.817 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-44", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1772634247807, - "value": "Anna", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "hn4cw/Xzk0bWcXvM3Lx1RIWwU+TVw/fbtstJHjkv9Blyi+kofNFpnte4ddjMVKxIxmwZrp5ck9dqRUS5A+oWBw==" - } -} - -17:24:07.824 [ws-worker-12] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1772634247807 -17:24:07.828 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-44","status":200,"payload":{"ok":true}} -17:24:07.829 [qtp587747978-38] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.833 [qtp587747978-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38802 -17:24:07.834 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-45", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -17:24:07.840 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-45","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1772634247807,"value":"Anna","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"hn4cw/Xzk0bWcXvM3Lx1RIWwU+TVw/fbtstJHjkv9Blyi+kofNFpnte4ddjMVKxIxmwZrp5ck9dqRUS5A+oWBw==","ok":true}} -17:24:07.843 [qtp587747978-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.848 [qtp587747978-58] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38814 -17:24:07.849 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-46", - "payload": { - "login": "TestUser1", - "param": "profile:city", - "time_ms": 1772634247817, - "value": "Amsterdam", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "ZhclC4leJeuhFXZ0RyH/bP/l8Tza4GWVWztgS1hwYXKKxm92brxj8VmhnjlMDsLuD2iSROffCQZ99ebeCaIMAg==" - } -} - -17:24:07.853 [ws-worker-14] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:city, time_ms=1772634247817 -17:24:07.855 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-46","status":200,"payload":{"ok":true}} -17:24:07.856 [qtp587747978-58] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.861 [qtp587747978-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38820 -17:24:07.862 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-47", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1772634247827, - "value": "Anna Updated", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "BbYNYQ3fIGAit1e4RNxVRKf9VI7bFyMd2zhL8gYYAIHh792hKEtW6zyH/2O147koZNXVwb6fGvKeiBIILmqvCw==" - } -} - -17:24:07.865 [ws-worker-15] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1772634247827 -17:24:07.867 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-47","status":200,"payload":{"ok":true}} -17:24:07.869 [qtp587747978-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.875 [qtp587747978-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38822 -17:24:07.876 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-48", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -17:24:07.879 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-48","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1772634247827,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"BbYNYQ3fIGAit1e4RNxVRKf9VI7bFyMd2zhL8gYYAIHh792hKEtW6zyH/2O147koZNXVwb6fGvKeiBIILmqvCw==","ok":true}} -17:24:07.880 [qtp587747978-28] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.884 [qtp587747978-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38828 -17:24:07.885 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListUserParams", - "requestId": "it-listparams-49", - "payload": { "login": "TestUser1" } -} - -17:24:07.890 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListUserParams","requestId":"it-listparams-49","status":200,"payload":{"login":"TestUser1","params":[{"login":"TestUser1","param":"profile:name","time_ms":1772634247827,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"BbYNYQ3fIGAit1e4RNxVRKf9VI7bFyMd2zhL8gYYAIHh792hKEtW6zyH/2O147koZNXVwb6fGvKeiBIILmqvCw=="},{"login":"TestUser1","param":"profile:city","time_ms":1772634247817,"value":"Amsterdam","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"ZhclC4leJeuhFXZ0RyH/bP/l8Tza4GWVWztgS1hwYXKKxm92brxj8VmhnjlMDsLuD2iSROffCQZ99ebeCaIMAg=="}],"ok":true}} -17:24:07.892 [qtp587747978-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:24:07.897 [qtp587747978-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:38838 -17:24:07.898 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-50", - "payload": { - "login": "TestUser1" - } -} - -17:24:07.902 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-50","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -17:24:07.906 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-51", - "payload": { - "login": "Testuser1" - } -} - -17:24:07.908 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-51","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -17:24:07.910 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-52", - "payload": { - "login": "TestUser2" - } -} - -17:24:07.911 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-52","status":200,"payload":{"login":"TestUser2","out_friends":["TestUser1"],"in_friends":["TestUser1"],"ok":true}} -17:24:07.912 [qtp587747978-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:46.815 [wsServer-thread] INFO s.ws.BlockchainTmpRecoveryOnStartup - 🟢 BlockchainTmpRecovery: временных *.tmp_bch файлов не найдено — восстановление не требуется. -17:35:46.888 [wsServer-thread] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.18+8-Ubuntu-124.04.1 -17:35:46.974 [wsServer-thread] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@4778f203{/,null,AVAILABLE} -17:35:46.984 [wsServer-thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@59721949{HTTP/1.1, (http/1.1)}{0.0.0.0:7070} -17:35:46.992 [wsServer-thread] INFO org.eclipse.jetty.server.Server - Started Server@71bdbbb3{STARTING}[11.0.20,sto=0] @1000ms -17:35:46.992 [wsServer-thread] INFO server.ws.WsServer - ✅ WS сервер запущен на ws://localhost:7070/ws -17:35:47.668 [qtp1534512182-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55366 -17:35:47.702 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-1", - "payload": { - "login": "TestUser1", - "blockchainName": "TestUser1-001", - "solanaKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "blockchainKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "deviceKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "bchLimit": 50000000 - } -} - -17:35:47.766 [ws-worker-1] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser1, blockchainName=TestUser1-001, limit=50000000 -17:35:47.781 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-1","status":200,"payload":{"ok":true}} -17:35:47.786 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-2", - "payload": { - "login": "TestUser1" - } -} - -17:35:47.791 [ws-worker-2] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -17:35:47.792 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-2","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -17:35:47.795 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-3", - "payload": { - "login": "TestUser2", - "blockchainName": "TestUser2-001", - "solanaKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "blockchainKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "deviceKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "bchLimit": 50000000 - } -} - -17:35:47.801 [ws-worker-3] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser2, blockchainName=TestUser2-001, limit=50000000 -17:35:47.801 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-3","status":200,"payload":{"ok":true}} -17:35:47.803 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-4", - "payload": { - "login": "TestUser2" - } -} - -17:35:47.806 [ws-worker-4] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser2, blockchainName=TestUser2-001 -17:35:47.806 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-4","status":200,"payload":{"exists":true,"login":"TestUser2","blockchainName":"TestUser2-001","solanaKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","blockchainKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","deviceKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","ok":true}} -17:35:47.809 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-5", - "payload": { - "login": "TestUser3", - "blockchainName": "TestUser3-001", - "solanaKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "blockchainKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "deviceKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "bchLimit": 50000000 - } -} - -17:35:47.814 [ws-worker-5] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser3, blockchainName=TestUser3-001, limit=50000000 -17:35:47.814 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-5","status":200,"payload":{"ok":true}} -17:35:47.816 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-6", - "payload": { - "login": "TestUser3" - } -} - -17:35:47.818 [ws-worker-6] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser3, blockchainName=TestUser3-001 -17:35:47.818 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-6","status":200,"payload":{"exists":true,"login":"TestUser3","blockchainName":"TestUser3-001","solanaKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","blockchainKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","deviceKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","ok":true}} -17:35:47.822 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-7", - "payload": { - "login": "Testuser1" - } -} - -17:35:47.824 [ws-worker-7] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -17:35:47.825 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-7","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -17:35:47.827 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-8", - "payload": { - "login": "NoSuchUser_987654321" - } -} - -17:35:47.829 [ws-worker-8] INFO s.l.w.J.h.t.Net_GetUser_Handler - ℹ️ GetUser: not found for login=NoSuchUser_987654321 -17:35:47.829 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-8","status":200,"payload":{"exists":false,"ok":true}} -17:35:47.832 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SearchUsers", - "requestId": "it-searchusers-9", - "payload": { - "prefix": "Tes" - } -} - -17:35:47.836 [ws-worker-9] INFO s.l.w.J.h.t.Net_SearchUsers_Handler - ✅ SearchUsers ok: prefix='Tes' -> 3 -17:35:47.839 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SearchUsers","requestId":"it-searchusers-9","status":200,"payload":{"logins":["TestUser1","TestUser2","TestUser3"],"ok":true}} -17:35:47.847 [qtp1534512182-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:47.851 [qtp1534512182-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55370 -17:35:47.854 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-10", - "payload": { "login": "TestUser1" } -} - -17:35:47.858 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-10","status":200,"payload":{"authNonce":"4MroIbv26AJzk81cjSB0kdxNKje0le2CBVbI9CLMpCw","ok":true}} -17:35:47.871 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-11", - "payload": { - "storagePwd": "pwd-704141649191027", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634947862, - "signatureB64": "MxpLJvSun43nt38sagsCE9/+cbmS9SK/osnGBUWZ4KjIbTnkFuJNEhnBvioJ7C7kMZIGi4mHtp2K/yRd35XUDA==", - "clientInfo": "it-tests" - } -} - -17:35:47.883 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-11","status":200,"payload":{"sessionId":"M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0","ok":true}} -17:35:47.885 [qtp1534512182-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:47.889 [qtp1534512182-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55376 -17:35:47.890 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-12", - "payload": { "login": "TestUser1" } -} - -17:35:47.893 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-12","status":200,"payload":{"authNonce":"3slrhytuXoja+ilgy5UjDtuYmcwe7RwEk2MrdoXQbzQ","ok":true}} -17:35:47.896 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-13", - "payload": { - "storagePwd": "pwd-704141680946131", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634947894, - "signatureB64": "FLVVKX/t0a2wxWHhqmMK/wGEFRnhaElLvm6hn6dwx8e6zsnbkPvCHBvxGAnrOmv9DwJ11y+qTLBFSjhTAKNaAQ==", - "clientInfo": "it-tests" - } -} - -17:35:47.902 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-13","status":200,"payload":{"sessionId":"/SqVa2wCAMHw03PHKhxoOP3oCDnY8UPS+aS1B9NWuj4","ok":true}} -17:35:47.904 [qtp1534512182-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:47.908 [qtp1534512182-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55388 -17:35:47.909 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-14", - "payload": { "login": "TestUser1" } -} - -17:35:47.912 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-14","status":200,"payload":{"authNonce":"x/O2M6PgyNNIkE18UXR0BWKvrq6FB7/G0C6/ZO1C4dU","ok":true}} -17:35:47.914 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-15", - "payload": { - "storagePwd": "pwd-704141699608691", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634947912, - "signatureB64": "GZiroGxDii78HA9wEAR1VWCJPMfu0z8l5AAhphtqo3Uetw0x5LAl3DBQWdGopXtYgKRTUXzTP8uhrCb70OI9Dw==", - "clientInfo": "it-tests" - } -} - -17:35:47.921 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-15","status":200,"payload":{"sessionId":"HItCoeIf2Kebt6pidZyOADa3u2Fo3/sKJFngfeY1nGU","ok":true}} -17:35:47.923 [qtp1534512182-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:47.926 [qtp1534512182-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55392 -17:35:47.928 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-16", - "payload": { - "sessionId": "M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0" - } -} - -17:35:47.934 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-16","status":200,"payload":{"nonce":"zk9xt3tAwauZSVpQ9VJkI8fnWcHElwATTjwf8a6atII","ok":true}} -17:35:47.937 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-17", - "payload": { - "sessionId": "M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0", - "timeMs": 1772634947936, - "signatureB64": "hoFbnAnR4kqX6aIrD01BCA1vbW3SXNnjdEeOeRGnOrQNGpk74y5jqZEWdDDzSH5pDNms92oc9YWHx6/uc/1bCg==", - "clientInfo": "it-tests" - } -} - -17:35:47.948 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-17","status":200,"payload":{"storagePwd":"pwd-704141649191027","ok":true}} -17:35:47.951 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-18", - "payload": { - } -} - -17:35:47.958 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-18","status":200,"payload":{"sessions":[{"sessionId":"M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634947942},{"sessionId":"/SqVa2wCAMHw03PHKhxoOP3oCDnY8UPS+aS1B9NWuj4","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634947897},{"sessionId":"HItCoeIf2Kebt6pidZyOADa3u2Fo3/sKJFngfeY1nGU","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634947916}],"ok":true}} -17:35:47.960 [qtp1534512182-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:47.964 [qtp1534512182-31] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55394 -17:35:47.965 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-19", - "payload": { "login": "TestUser1" } -} - -17:35:47.967 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-19","status":200,"payload":{"authNonce":"ehysOegzPXd+m0Nzxid4r77sNF6AlBlo4eA4EavP2jw","ok":true}} -17:35:47.969 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-20", - "payload": { - "storagePwd": "pwd-704141754913052", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1772634947968, - "signatureB64": "tQxyT2/BbPm/Nc4PCmjfXTWUUMIgUOFArEqOdrnszIX80cmTP/L9HZiKV+fyJOHRoLkxu0St6+yicAZ6T583BQ==", - "clientInfo": "it-tests" - } -} - -17:35:47.978 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-20","status":200,"payload":{"sessionId":"BtO81W6Lx9aEb/R6pkeO9qnRGsHCh0NXIhrGXTGgQLI","ok":true}} -17:35:47.979 [qtp1534512182-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:47.984 [qtp1534512182-32] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55410 -17:35:47.985 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-21", - "payload": { - "sessionId": "M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0" - } -} - -17:35:47.987 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-21","status":200,"payload":{"nonce":"2aeBQJHsTw9eENnyncLifgdvuRlVryJOG50JelHNcrA","ok":true}} -17:35:47.989 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-22", - "payload": { - "sessionId": "M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0", - "timeMs": 1772634947988, - "signatureB64": "W9GN0zn3tYBbVPzjOKOvSpG1ML32vpDOEjHzQArVqlOW6vla5Mr+7rH1qTy6KQ8HQUNpbUUOTdLI1bnUuxIKCA==", - "clientInfo": "it-tests" - } -} - -17:35:47.997 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-22","status":200,"payload":{"storagePwd":"pwd-704141649191027","ok":true}} -17:35:47.999 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CloseActiveSession", - "requestId": "it-close-23", - "payload": { - "sessionId": "BtO81W6Lx9aEb/R6pkeO9qnRGsHCh0NXIhrGXTGgQLI" - } -} - -17:35:48.005 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CloseActiveSession","requestId":"it-close-23","status":200,"payload":{"ok":true}} -17:35:48.007 [qtp1534512182-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.009 [qtp1534512182-25] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55412 -17:35:48.011 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-24", - "payload": { - "sessionId": "M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0" - } -} - -17:35:48.012 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-24","status":200,"payload":{"nonce":"MPK3Yj1OX20OxSx79YlGh6ygUn/B7E2B5yxg5IB0tU0","ok":true}} -17:35:48.014 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-25", - "payload": { - "sessionId": "M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0", - "timeMs": 1772634948013, - "signatureB64": "hmie95asxbxcL5wjS4xOEWd8b6cZNlNnCZwjeGVCx49icWyYJp/QLk7JsZ4hxGuVbFZfOLv+E/gaMTiuaa/iDQ==", - "clientInfo": "it-tests" - } -} - -17:35:48.021 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-25","status":200,"payload":{"storagePwd":"pwd-704141649191027","ok":true}} -17:35:48.022 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-26", - "payload": { - } -} - -17:35:48.027 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-26","status":200,"payload":{"sessions":[{"sessionId":"M9dSe+50tvuZw+jNTlU9NjDmqHKa5mylhEz66wV5Qs0","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634948016},{"sessionId":"/SqVa2wCAMHw03PHKhxoOP3oCDnY8UPS+aS1B9NWuj4","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634947897},{"sessionId":"HItCoeIf2Kebt6pidZyOADa3u2Fo3/sKJFngfeY1nGU","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1772634947916}],"ok":true}} -17:35:48.029 [qtp1534512182-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.036 [qtp1534512182-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55416 -17:35:48.065 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-27", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGmoQ0QAAAAAAAFTSGlOZQlUZXN0VXNlcjEBAN9wpLJH6yZeIJYTY2q+E/xUI2nKF7Eqz1zSVBGL7d02ilvi8aLCF64bFnxhuDNctWJe8Co/X+xNA7UPfLHdGww=" - } -} - -17:35:48.071 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:35:48.076 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=0, newHash=d25af52611a37f97616c9514c52bd68bfaa7936ef376669408061d082c773a26 -17:35:48.078 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-27","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"d25af52611a37f97616c9514c52bd68bfaa7936ef376669408061d082c773a26","ok":true}} -17:35:48.083 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-28", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 1, - "prevBlockHash": "d25af52611a37f97616c9514c52bd68bfaa7936ef376669408061d082c773a26", - "blockBytesB64": "AADSWvUmEaN/l2FslRTFK9aL+qeTbvN2ZpQIBh0ILHc6JgAAAIEAAAABAAAAAGmoQ0QAAQAKAAEAAAAAAAAAANJa9SYRo3+XYWyVFMUr1ov6p5Nu83ZmlAgGHQgsdzomAAAAAAAbVTE6IHN0b3J5L3Bvc3QgaW4gY2hhbm5lbCAwAQAMz4VXh5ADCSXQXJkAI9hxnsYHQUqH1mNKcv+21jm+KwqIhMikP7LRLbH1aEkp3JajN5lhGA0A1j9KtGk8wzIB" - } -} - -17:35:48.086 [ws-worker-12] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=0 prevLineNumber=0 thisLineNumber=0 prevLineHashLen=32 -17:35:48.090 [ws-worker-12] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=1, newHash=c5c0f2eef6fca62c053cc74d4140f3f1b625c39c78ea477fcb983e4455ac63a0 -17:35:48.091 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-28","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"c5c0f2eef6fca62c053cc74d4140f3f1b625c39c78ea477fcb983e4455ac63a0","ok":true}} -17:35:48.093 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-29", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 2, - "prevBlockHash": "c5c0f2eef6fca62c053cc74d4140f3f1b625c39c78ea477fcb983e4455ac63a0", - "blockBytesB64": "AADFwPLu9vymLAU8x01BQPPxtiXDnHjqR3/LmD5EVaxjoAAAAGkAAAACAAAAAGmoQ0QAAAABAAEAAAAAAAAAANJa9SYRo3+XYWyVFMUr1ov6p5Nu83ZmlAgGHQgsdzomAAAAAQROZXdzAQCFTpv0v7FSTvGrQosQV6jFyu3PYPUy64mKpFB0rIJMZleuVhPJsyfZrJJjAceLfX/GKy2nl674sXNrSEWC43wN" - } -} - -17:35:48.097 [ws-worker-13] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=1 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -17:35:48.102 [ws-worker-13] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=2, newHash=88f2f027ba158d3bce519fb28c7f3f5847e4d47089e30ac7f8f6d8494c76862f -17:35:48.102 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-29","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"88f2f027ba158d3bce519fb28c7f3f5847e4d47089e30ac7f8f6d8494c76862f","ok":true}} -17:35:48.105 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-30", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 3, - "prevBlockHash": "88f2f027ba158d3bce519fb28c7f3f5847e4d47089e30ac7f8f6d8494c76862f", - "blockBytesB64": "AACI8vAnuhWNO85Rn7KMfz9YR+TUcInjCsf49thJTHaGLwAAAHYAAAADAAAAAGmoQ0QAAQAKAAEAAAACAAAAAojy8Ce6FY07zlGfsox/P1hH5NRwieMKx/j22ElMdoYvAAAAAAAQVTE6IE5ld3MgcG9zdCAjMAEAqWuGtTrkJVg2f7UvO9Nn5a9zl6EPdCnpRseIa5MlKiFMa5OK5HHQ8eGydO6tOyXfrNpvfk0fszublsjkXLIaAA==" - } -} - -17:35:48.109 [ws-worker-14] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=2 thisLineNumber=0 prevLineHashLen=32 -17:35:48.113 [ws-worker-14] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=3, newHash=dc22bd31596c102731f72748358ba0cb45178bb5e9c28587751d5ea109702ccb -17:35:48.114 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-30","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"dc22bd31596c102731f72748358ba0cb45178bb5e9c28587751d5ea109702ccb","ok":true}} -17:35:48.116 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-31", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 4, - "prevBlockHash": "dc22bd31596c102731f72748358ba0cb45178bb5e9c28587751d5ea109702ccb", - "blockBytesB64": "AADcIr0xWWwQJzH3J0g1i6DLRReLtenChYd1HV6hCXAsywAAAHYAAAAEAAAAAGmoQ0QAAQAKAAEAAAACAAAAA9wivTFZbBAnMfcnSDWLoMtFF4u16cKFh3UdXqEJcCzLAAAAAQAQVTE6IE5ld3MgcG9zdCAjMQEAIA3+vEjBY98WJsEe1pNNbJG8QvR2QYAgTg51RodeCH70Rg5F+9KRMg7fqcEXhoQkWlltLTi+qFx2cHNnK35mCA==" - } -} - -17:35:48.119 [ws-worker-15] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=3 thisLineNumber=1 prevLineHashLen=32 -17:35:48.123 [ws-worker-15] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=4, newHash=6707766490ddf182f8d9fc4a0277521bc412e75b36e2cdd2991190c0150df83b -17:35:48.124 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-31","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"6707766490ddf182f8d9fc4a0277521bc412e75b36e2cdd2991190c0150df83b","ok":true}} -17:35:48.126 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-32", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 5, - "prevBlockHash": "6707766490ddf182f8d9fc4a0277521bc412e75b36e2cdd2991190c0150df83b", - "blockBytesB64": "AABnB3ZkkN3xgvjZ/EoCd1IbxBLnWzbizdKZEZDAFQ34OwAAAKEAAAAFAAAAAGmoQ0QAAQALAAEAAAACAAAABGcHdmSQ3fGC+Nn8SgJ3UhvEEudbNuLN0pkRkMAVDfg7AAAAAgAAAAPcIr0xWWwQJzH3J0g1i6DLRReLtenChYd1HV6hCXAsywAXVTE6IE5ld3MgcG9zdCAjMCAoRURJVCkBACrlA5VlFrji8YgM/drBn3jseDHPO/FgnSLLoycUreUHxJAuz76t+hRdVwXE/Qkc/nN7fbMk2382f7thsrr0zww=" - } -} - -17:35:48.132 [ws-worker-16] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=11 lineCode=2 prevLineNumber=4 thisLineNumber=2 prevLineHashLen=32 -17:35:48.136 [ws-worker-16] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=5, newHash=ff4b21b995b5c437153043f3568e3d5b357bb33db28378da8a3dabb8bffa81ae -17:35:48.137 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-32","status":200,"payload":{"serverLastGlobalNumber":5,"serverLastGlobalHash":"ff4b21b995b5c437153043f3568e3d5b357bb33db28378da8a3dabb8bffa81ae","ok":true}} -17:35:48.139 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-33", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGmoQ0QAAAAAAAFTSGlOZQlUZXN0VXNlcjIBAF6tAFvD+svMBllV9BrJwNq1724+HoswAZ0wUTwSJNdkM71DM+qGuhugnxtQH/97l8M/2mo/8BwEpXlr+slNewU=" - } -} - -17:35:48.142 [ws-worker-1] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:35:48.146 [ws-worker-1] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=0, newHash=c16c8d0bee0f5a36736fd9c557c940f9c0a262d23adc99d5aa842795f9908622 -17:35:48.146 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-33","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"c16c8d0bee0f5a36736fd9c557c940f9c0a262d23adc99d5aa842795f9908622","ok":true}} -17:35:48.152 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-34", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 6, - "prevBlockHash": "ff4b21b995b5c437153043f3568e3d5b357bb33db28378da8a3dabb8bffa81ae", - "blockBytesB64": "AAD/SyG5lbXENxUwQ/NWjj1bNXuzPbKDeNqKPau4v/qBrgAAAJYAAAAGAAAAAGmoQ0QAAwAeAAEAAAAAAAAAANJa9SYRo3+XYWyVFMUr1ov6p5Nu83ZmlAgGHQgsdzomAAAAAQ1UZXN0VXNlcjItMDAxAAAAAMFsjQvuD1o2c2/ZxVfJQPnAomLSOtyZ1aqEJ5X5kIYiAQCRv/4Y0pRXiPXv/74s+/stBgLyN5Lm1wvhhOO/cEu38eXZeextm6LdAVQAr2aUMD7RjU4HFLTTOHLwmBMWANEP" - } -} - -17:35:48.155 [ws-worker-2] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -17:35:48.160 [ws-worker-2] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=6, newHash=6260e1ddd548d91db006f7a68651ce9601002c0d46f58ebfe8d339e7e86f7eb9 -17:35:48.161 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-34","status":200,"payload":{"serverLastGlobalNumber":6,"serverLastGlobalHash":"6260e1ddd548d91db006f7a68651ce9601002c0d46f58ebfe8d339e7e86f7eb9","ok":true}} -17:35:48.163 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-35", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 1, - "prevBlockHash": "c16c8d0bee0f5a36736fd9c557c940f9c0a262d23adc99d5aa842795f9908622", - "blockBytesB64": "AADBbI0L7g9aNnNv2cVXyUD5wKJi0jrcmdWqhCeV+ZCGIgAAAJYAAAABAAAAAGmoQ0QAAwAeAAEAAAAAAAAAAMFsjQvuD1o2c2/ZxVfJQPnAomLSOtyZ1aqEJ5X5kIYiAAAAAQ1UZXN0VXNlcjEtMDAxAAAAAojy8Ce6FY07zlGfsox/P1hH5NRwieMKx/j22ElMdoYvAQC8yaM1oCr7p+dzEy6afkQVra/2azh5Do7SdeJoz5RcwrulKawEZ8KLLf/TZe6MrMhntLID5cUJEH/K1ziBYhoJ" - } -} - -17:35:48.167 [ws-worker-3] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -17:35:48.172 [ws-worker-3] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=1, newHash=888c2ce7202f0aed36794f99ce2edea6289dc53363e4add74bc4ff99ef9b15e0 -17:35:48.173 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-35","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"888c2ce7202f0aed36794f99ce2edea6289dc53363e4add74bc4ff99ef9b15e0","ok":true}} -17:35:48.175 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-36", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 7, - "prevBlockHash": "6260e1ddd548d91db006f7a68651ce9601002c0d46f58ebfe8d339e7e86f7eb9", - "blockBytesB64": "AABiYOHd1UjZHbAG96aGUc6WAQAsDUb1jr/o0znn6G9+uQAAAJYAAAAHAAAAAGmoQ0QAAwAKAAEAAAAAAAAABmJg4d3VSNkdsAb3poZRzpYBACwNRvWOv+jTOefob365AAAAAg1UZXN0VXNlcjItMDAxAAAAAMFsjQvuD1o2c2/ZxVfJQPnAomLSOtyZ1aqEJ5X5kIYiAQBvQkqgI8ZviPQZYF0rc6APK6gEheU9yFq8KoV/ayGtv57UEu6v4QO4GiB3IRux8q2iSJVjF29tK14v8baMdhYD" - } -} - -17:35:48.178 [ws-worker-4] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=6 thisLineNumber=2 prevLineHashLen=32 -17:35:48.184 [ws-worker-4] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=7, newHash=dfd2dc801385bfb50e4663912f85a91e7ff5c70e9490779643a773f0c35a2383 -17:35:48.184 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-36","status":200,"payload":{"serverLastGlobalNumber":7,"serverLastGlobalHash":"dfd2dc801385bfb50e4663912f85a91e7ff5c70e9490779643a773f0c35a2383","ok":true}} -17:35:48.186 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-37", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 2, - "prevBlockHash": "888c2ce7202f0aed36794f99ce2edea6289dc53363e4add74bc4ff99ef9b15e0", - "blockBytesB64": "AACIjCznIC8K7TZ5T5nOLt6mKJ3FM2PkrddLxP+Z75sV4AAAAJYAAAACAAAAAGmoQ0QAAwAKAAEAAAAAAAAAAYiMLOcgLwrtNnlPmc4u3qYoncUzY+St10vE/5nvmxXgAAAAAg1UZXN0VXNlcjEtMDAxAAAAANJa9SYRo3+XYWyVFMUr1ov6p5Nu83ZmlAgGHQgsdzomAQDDRxWvgDiRGpQew7Kh9z8MYj/3prWEQIs01QhozwWWnzilshzygIGqJneDPY7ZLw6TDF1PV/vDoaKNQBvWuKcL" - } -} - -17:35:48.190 [ws-worker-5] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=1 thisLineNumber=2 prevLineHashLen=32 -17:35:48.195 [ws-worker-5] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=2, newHash=f07662b735330e05401c63a7ebed50e31656a3b792f388c41177ef627de41e00 -17:35:48.195 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-37","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"f07662b735330e05401c63a7ebed50e31656a3b792f388c41177ef627de41e00","ok":true}} -17:35:48.198 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-38", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 8, - "prevBlockHash": "dfd2dc801385bfb50e4663912f85a91e7ff5c70e9490779643a773f0c35a2383", - "blockBytesB64": "AADf0tyAE4W/tQ5GY5Evhakef/XHDpSQd5ZDp3Pww1ojgwAAAJYAAAAIAAAAAGmoQ0QAAwAUAAEAAAAAAAAAB9/S3IAThb+1DkZjkS+FqR5/9ccOlJB3lkOnc/DDWiODAAAAAw1UZXN0VXNlcjItMDAxAAAAAMFsjQvuD1o2c2/ZxVfJQPnAomLSOtyZ1aqEJ5X5kIYiAQA90jaPRKxqcJArNH8Ekcsx45wCKdXYgphwpCyq1+v9UdQ2K2XMZaKHBrMHcppm5PvIGs9qb4XJDVPABKeTjpEK" - } -} - -17:35:48.202 [ws-worker-6] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=7 thisLineNumber=3 prevLineHashLen=32 -17:35:48.207 [ws-worker-6] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=8, newHash=0c5cdf5cca8ae7cb51cd3163959bddd672f3f3dd608bd10ee0c3eeb7444f62c1 -17:35:48.207 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-38","status":200,"payload":{"serverLastGlobalNumber":8,"serverLastGlobalHash":"0c5cdf5cca8ae7cb51cd3163959bddd672f3f3dd608bd10ee0c3eeb7444f62c1","ok":true}} -17:35:48.210 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-39", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 3, - "prevBlockHash": "f07662b735330e05401c63a7ebed50e31656a3b792f388c41177ef627de41e00", - "blockBytesB64": "AADwdmK3NTMOBUAcY6fr7VDjFlajt5LziMQRd+9ifeQeAAAAAJYAAAADAAAAAGmoQ0QAAwAUAAEAAAAAAAAAAvB2Yrc1Mw4FQBxjp+vtUOMWVqO3kvOIxBF372J95B4AAAAAAw1UZXN0VXNlcjEtMDAxAAAAANJa9SYRo3+XYWyVFMUr1ov6p5Nu83ZmlAgGHQgsdzomAQDQUxJKz82MNXhMf6B3G1u3j6AutUlRu7u/CppbM/61phx6eMpbdlu+BvSYlNN/H0XnU4ni7/Mpwk2TxwGRingN" - } -} - -17:35:48.213 [ws-worker-7] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=2 thisLineNumber=3 prevLineHashLen=32 -17:35:48.218 [ws-worker-7] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=3, newHash=e8cf983dc0419f48417093465580080f6888f6b184c9be14469f337b04c7b6ef -17:35:48.218 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-39","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"e8cf983dc0419f48417093465580080f6888f6b184c9be14469f337b04c7b6ef","ok":true}} -17:35:48.221 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-40", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 4, - "prevBlockHash": "e8cf983dc0419f48417093465580080f6888f6b184c9be14469f337b04c7b6ef", - "blockBytesB64": "AADoz5g9wEGfSEFwk0ZVgAgPaIj2sYTJvhRGnzN7BMe27wAAAJYAAAAEAAAAAGmoQ0QAAQAUAAENVGVzdFVzZXIxLTAwMQAAAAPcIr0xWWwQJzH3J0g1i6DLRReLtenChYd1HV6hCXAsywAqVTI6IHJlcGx5IHRvIFUxIE5ld3MgcG9zdCAjMCAoY3Jvc3MtY2hhaW4pAQAOOK1wlQK1S+Bg4/IVespq2JuTR01MPPf8Z2UxRLWBaS8HiT3rlEXOQ2i4naxWEUZ+qd+OY9V0BgPQdtMTvPsD" - } -} - -17:35:48.223 [ws-worker-8] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=20 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:35:48.228 [ws-worker-8] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=4, newHash=51580ad4926307f946cb37100313ab41f88213e24d13fce160d38e3dfcf965a4 -17:35:48.228 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-40","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"51580ad4926307f946cb37100313ab41f88213e24d13fce160d38e3dfcf965a4","ok":true}} -17:35:48.231 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-41", - "payload": { - "blockchainName": "TestUser3-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGmoQ0QAAAAAAAFTSGlOZQlUZXN0VXNlcjMBAJLuVP4cQPDmksboKm2uXGXYsCO4c+Sx/vpP5PWjH5OshbYpaYfEn0GqimPqZECekOlCZRHuWDSnKkTzSIzazwQ=" - } -} - -17:35:48.235 [ws-worker-9] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -17:35:48.239 [ws-worker-9] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser3, blockchainName=TestUser3-001, blockNumber=0, newHash=202cc24f8483c0068f14d95e303079ae9925eb9657c04bbce020020fa6380a2e -17:35:48.239 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-41","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"202cc24f8483c0068f14d95e303079ae9925eb9657c04bbce020020fa6380a2e","ok":true}} -17:35:48.241 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-42", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 9, - "prevBlockHash": "0c5cdf5cca8ae7cb51cd3163959bddd672f3f3dd608bd10ee0c3eeb7444f62c1", - "blockBytesB64": "AAAMXN9cyorny1HNMWOVm93WcvPz3WCL0Q7gw+63RE9iwQAAAJYAAAAJAAAAAGmoQ0QAAwAUAAEAAAAAAAAACAxc31zKiufLUc0xY5Wb3dZy8/PdYIvRDuDD7rdET2LBAAAABA1UZXN0VXNlcjMtMDAxAAAAACAswk+Eg8AGjxTZXjAwea6ZJeuWV8BLvOAgAg+mOAouAQDfZKXZWXyYa1XD9rlnlgFnSqb/+g2ZlxpyX8SgcXmL5eT5TnpZofGjt+Y95Xpy1afW9HYLKofC6GS2nECy/l4G" - } -} - -17:35:48.246 [ws-worker-10] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=8 thisLineNumber=4 prevLineHashLen=32 -17:35:48.252 [ws-worker-10] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=9, newHash=14c72bf2b05e409e6017dbe451440530f938508a8d758e964c904de1adc20da1 -17:35:48.254 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-42","status":200,"payload":{"serverLastGlobalNumber":9,"serverLastGlobalHash":"14c72bf2b05e409e6017dbe451440530f938508a8d758e964c904de1adc20da1","ok":true}} -17:35:48.256 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-43", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 10, - "prevBlockHash": "14c72bf2b05e409e6017dbe451440530f938508a8d758e964c904de1adc20da1", - "blockBytesB64": "AAAUxyvysF5AnmAX2+RRRAUw+ThQio11jpZMkE3hrcINoQAAAJYAAAAKAAAAAGmoQ0QAAwAVAAEAAAAAAAAACRTHK/KwXkCeYBfb5FFEBTD5OFCKjXWOlkyQTeGtwg2hAAAABQ1UZXN0VXNlcjItMDAxAAAAAMFsjQvuD1o2c2/ZxVfJQPnAomLSOtyZ1aqEJ5X5kIYiAQAvuIDiuAg8x1DlwBauYGu8YVqDRAHd3rgvyGsUrfpjzvpCs/ver5kV/P2BMOS1NaxjJDBmuzArQ/q0pFoy47IC" - } -} - -17:35:48.261 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=21 lineCode=0 prevLineNumber=9 thisLineNumber=5 prevLineHashLen=32 -17:35:48.267 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=10, newHash=77c5d0ae5f1c9d9deadf3155839bcd04eab575256eff3199dfd2bc5bd601aee5 -17:35:48.267 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-43","status":200,"payload":{"serverLastGlobalNumber":10,"serverLastGlobalHash":"77c5d0ae5f1c9d9deadf3155839bcd04eab575256eff3199dfd2bc5bd601aee5","ok":true}} -17:35:48.269 [qtp1534512182-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.279 [qtp1534512182-37] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55428 -17:35:48.282 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-44", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1772634948270, - "value": "Anna", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "saMbpoHHk6X0uV9sWVbWFaJtbkPk3yNxoZ9BIQ4XzwpfKlsqJo0yU2rk8gmO0TGXybLD0v1lTUv8kBWoVJMfBQ==" - } -} - -17:35:48.290 [ws-worker-12] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1772634948270 -17:35:48.295 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-44","status":200,"payload":{"ok":true}} -17:35:48.297 [qtp1534512182-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.304 [qtp1534512182-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55432 -17:35:48.307 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-45", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -17:35:48.312 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-45","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1772634948270,"value":"Anna","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"saMbpoHHk6X0uV9sWVbWFaJtbkPk3yNxoZ9BIQ4XzwpfKlsqJo0yU2rk8gmO0TGXybLD0v1lTUv8kBWoVJMfBQ==","ok":true}} -17:35:48.315 [qtp1534512182-26] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.321 [qtp1534512182-57] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55436 -17:35:48.323 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-46", - "payload": { - "login": "TestUser1", - "param": "profile:city", - "time_ms": 1772634948280, - "value": "Amsterdam", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "VkmT3DHnpMHFMMHc7ZojjuiwRFji1x/ziWyFTVRHSG2lOXNNWJ8d9/NPPyDd+pVWGRFncsXfBY405Mjs5IVsBw==" - } -} - -17:35:48.327 [ws-worker-14] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:city, time_ms=1772634948280 -17:35:48.330 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-46","status":200,"payload":{"ok":true}} -17:35:48.332 [qtp1534512182-57] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.337 [qtp1534512182-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55440 -17:35:48.339 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-47", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1772634948290, - "value": "Anna Updated", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "nNueZz1I6Ztrf6GYsv07g6aUFnKIlid9pVOFkg/ccmgDin4zlUScU/nsmge81qtijpuMwtDeGxqkpbqhqWxSDQ==" - } -} - -17:35:48.342 [ws-worker-15] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1772634948290 -17:35:48.344 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-47","status":200,"payload":{"ok":true}} -17:35:48.346 [qtp1534512182-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.350 [qtp1534512182-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55448 -17:35:48.351 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-48", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -17:35:48.353 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-48","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1772634948290,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"nNueZz1I6Ztrf6GYsv07g6aUFnKIlid9pVOFkg/ccmgDin4zlUScU/nsmge81qtijpuMwtDeGxqkpbqhqWxSDQ==","ok":true}} -17:35:48.355 [qtp1534512182-28] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.359 [qtp1534512182-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55464 -17:35:48.360 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListUserParams", - "requestId": "it-listparams-49", - "payload": { "login": "TestUser1" } -} - -17:35:48.366 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListUserParams","requestId":"it-listparams-49","status":200,"payload":{"login":"TestUser1","params":[{"login":"TestUser1","param":"profile:name","time_ms":1772634948290,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"nNueZz1I6Ztrf6GYsv07g6aUFnKIlid9pVOFkg/ccmgDin4zlUScU/nsmge81qtijpuMwtDeGxqkpbqhqWxSDQ=="},{"login":"TestUser1","param":"profile:city","time_ms":1772634948280,"value":"Amsterdam","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"VkmT3DHnpMHFMMHc7ZojjuiwRFji1x/ziWyFTVRHSG2lOXNNWJ8d9/NPPyDd+pVWGRFncsXfBY405Mjs5IVsBw=="}],"ok":true}} -17:35:48.368 [qtp1534512182-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -17:35:48.374 [qtp1534512182-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:55468 -17:35:48.375 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-50", - "payload": { - "login": "TestUser1" - } -} - -17:35:48.381 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-50","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -17:35:48.384 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-51", - "payload": { - "login": "Testuser1" - } -} - -17:35:48.386 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-51","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -17:35:48.388 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-52", - "payload": { - "login": "TestUser2" - } -} - -17:35:48.390 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-52","status":200,"payload":{"login":"TestUser2","out_friends":["TestUser1"],"in_friends":["TestUser1"],"ok":true}} -17:35:48.392 [qtp1534512182-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye diff --git a/logs/app.log b/logs/app.log deleted file mode 100644 index a2f17b7..0000000 --- a/logs/app.log +++ /dev/null @@ -1,3240 +0,0 @@ -19:50:43.993 [wsServer-thread] INFO s.ws.BlockchainTmpRecoveryOnStartup - 🟢 BlockchainTmpRecovery: временных *.tmp_bch файлов не найдено — восстановление не требуется. -19:50:44.067 [wsServer-thread] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.18+8-Ubuntu-124.04.1 -19:50:44.122 [wsServer-thread] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@1343e032{/,null,AVAILABLE} -19:50:44.129 [wsServer-thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@742a3118{HTTP/1.1, (http/1.1)}{0.0.0.0:7070} -19:50:44.137 [wsServer-thread] INFO org.eclipse.jetty.server.Server - Started Server@7615bc30{STARTING}[11.0.20,sto=0] @904ms -19:50:44.137 [wsServer-thread] INFO server.ws.WsServer - ✅ WS сервер запущен на ws://localhost:7070/ws -19:50:44.883 [qtp341972345-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49556 -19:50:44.922 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-1", - "payload": { - "login": "TestUser1", - "blockchainName": "TestUser1-001", - "solanaKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "blockchainKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "deviceKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "bchLimit": 50000000 - } -} - -19:50:44.976 [ws-worker-1] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser1, blockchainName=TestUser1-001, limit=50000000 -19:50:44.989 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-1","status":200,"payload":{"ok":true}} -19:50:44.993 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-2", - "payload": { - "login": "TestUser1" - } -} - -19:50:44.998 [ws-worker-2] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -19:50:45.001 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-2","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -19:50:45.004 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-3", - "payload": { - "login": "TestUser2", - "blockchainName": "TestUser2-001", - "solanaKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "blockchainKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "deviceKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "bchLimit": 50000000 - } -} - -19:50:45.009 [ws-worker-3] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser2, blockchainName=TestUser2-001, limit=50000000 -19:50:45.010 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-3","status":200,"payload":{"ok":true}} -19:50:45.012 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-4", - "payload": { - "login": "TestUser2" - } -} - -19:50:45.014 [ws-worker-4] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser2, blockchainName=TestUser2-001 -19:50:45.014 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-4","status":200,"payload":{"exists":true,"login":"TestUser2","blockchainName":"TestUser2-001","solanaKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","blockchainKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","deviceKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","ok":true}} -19:50:45.017 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-5", - "payload": { - "login": "TestUser3", - "blockchainName": "TestUser3-001", - "solanaKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "blockchainKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "deviceKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "bchLimit": 50000000 - } -} - -19:50:45.021 [ws-worker-5] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser3, blockchainName=TestUser3-001, limit=50000000 -19:50:45.022 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-5","status":200,"payload":{"ok":true}} -19:50:45.025 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-6", - "payload": { - "login": "TestUser3" - } -} - -19:50:45.028 [ws-worker-6] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser3, blockchainName=TestUser3-001 -19:50:45.028 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-6","status":200,"payload":{"exists":true,"login":"TestUser3","blockchainName":"TestUser3-001","solanaKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","blockchainKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","deviceKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","ok":true}} -19:50:45.034 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-7", - "payload": { - "login": "Testuser1" - } -} - -19:50:45.036 [ws-worker-7] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -19:50:45.037 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-7","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -19:50:45.041 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-8", - "payload": { - "login": "NoSuchUser_987654321" - } -} - -19:50:45.042 [ws-worker-8] INFO s.l.w.J.h.t.Net_GetUser_Handler - ℹ️ GetUser: not found for login=NoSuchUser_987654321 -19:50:45.043 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-8","status":200,"payload":{"exists":false,"ok":true}} -19:50:45.044 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SearchUsers", - "requestId": "it-searchusers-9", - "payload": { - "prefix": "Tes" - } -} - -19:50:45.049 [ws-worker-9] INFO s.l.w.J.h.t.Net_SearchUsers_Handler - ✅ SearchUsers ok: prefix='Tes' -> 3 -19:50:45.051 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SearchUsers","requestId":"it-searchusers-9","status":200,"payload":{"logins":["TestUser1","TestUser2","TestUser3"],"ok":true}} -19:50:45.058 [qtp341972345-38] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.061 [qtp341972345-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49572 -19:50:45.064 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-10", - "payload": { "login": "TestUser1" } -} - -19:50:45.067 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-10","status":200,"payload":{"authNonce":"bNbzTc/Jfphi+0wFnf+rB3QKHxdveteAFx9560tb86s","ok":true}} -19:50:45.077 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-11", - "payload": { - "storagePwd": "pwd-1550596922725", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852645071, - "signatureB64": "PTRvSD+Wdfg8Rjr1f/uyDwJHa0iq0QiB/C8Wdapdl2aTH6JniG/dakilA8tnZVtjDS8Jb1A0RbqyGBV8oJxqBQ==", - "clientInfo": "it-tests" - } -} - -19:50:45.091 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-11","status":200,"payload":{"sessionId":"rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I","ok":true}} -19:50:45.093 [qtp341972345-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.096 [qtp341972345-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49576 -19:50:45.098 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-12", - "payload": { "login": "TestUser1" } -} - -19:50:45.101 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-12","status":200,"payload":{"authNonce":"oLIXdFUnRV3onA+9jSv29SOPEwGcnY+NT3h1gGAHUV0","ok":true}} -19:50:45.104 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-13", - "payload": { - "storagePwd": "pwd-1550627512500", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852645102, - "signatureB64": "m67e3tVvdhTRYevjnXyuJjXO4kbgAJwsuAP7vILx+PrSxrMM755oVdsfU0lw4jsKYGDgJqp+B1+twYJBnY8OBA==", - "clientInfo": "it-tests" - } -} - -19:50:45.111 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-13","status":200,"payload":{"sessionId":"1etEIK/rETleOyEPOXKPRqDCCN3T+yVJ1uSyfqjGAxM","ok":true}} -19:50:45.113 [qtp341972345-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.117 [qtp341972345-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49582 -19:50:45.118 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-14", - "payload": { "login": "TestUser1" } -} - -19:50:45.120 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-14","status":200,"payload":{"authNonce":"5vLyx8N0UGXj7V5npO39C+N+rjija1UwIDZQd4bPAa4","ok":true}} -19:50:45.123 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-15", - "payload": { - "storagePwd": "pwd-1550646744975", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852645121, - "signatureB64": "36S8uCdu+ebLXCQ+023DgOORcFc/olbJctZusAFJevHlF3hBjs+nR+c4MGKQ2s5Yz2K++oel4fkwNp7nQL4GDQ==", - "clientInfo": "it-tests" - } -} - -19:50:45.129 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-15","status":200,"payload":{"sessionId":"mrE7FCfwwbV2QK4bs1+ITW5nQLLjEGnvgvNHRGWBPZw","ok":true}} -19:50:45.131 [qtp341972345-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.134 [qtp341972345-31] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49588 -19:50:45.136 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-16", - "payload": { - "sessionId": "rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I" - } -} - -19:50:45.144 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-16","status":200,"payload":{"nonce":"LH6Qccn1VVuQl7/9oxf6JVnaqrvWwvLfx9LhDPcNh6o","ok":true}} -19:50:45.146 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-17", - "payload": { - "sessionId": "rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I", - "timeMs": 1773852645145, - "signatureB64": "E+hOxX+7mFM1r7uMBDsCiHUmogNUqXBqSAHz9iL228WGF9iaTMXaCglUq60eZPoJiac5hZ+3eO1au0D/OkJuBg==", - "clientInfo": "it-tests" - } -} - -19:50:45.157 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-17","status":200,"payload":{"storagePwd":"pwd-1550596922725","ok":true}} -19:50:45.161 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-18", - "payload": { - } -} - -19:50:45.167 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-18","status":200,"payload":{"sessions":[{"sessionId":"rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852645151},{"sessionId":"1etEIK/rETleOyEPOXKPRqDCCN3T+yVJ1uSyfqjGAxM","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852645105},{"sessionId":"mrE7FCfwwbV2QK4bs1+ITW5nQLLjEGnvgvNHRGWBPZw","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852645124}],"ok":true}} -19:50:45.168 [qtp341972345-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.172 [qtp341972345-32] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49592 -19:50:45.174 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-19", - "payload": { "login": "TestUser1" } -} - -19:50:45.176 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-19","status":200,"payload":{"authNonce":"L8HiwLlxqMwL4Mb1NuV7Kg/lKDsfn9O9VgJwK1UKjZ8","ok":true}} -19:50:45.178 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-20", - "payload": { - "storagePwd": "pwd-1550703151095", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852645177, - "signatureB64": "eY17e/Zruj7bsKyw0wqwB4BUZWC2tMsACLR/I4vzdICUVgfvzz6SuYfQ1XRDI8dmpb3Oco7wLBavGbkHfUw8Bg==", - "clientInfo": "it-tests" - } -} - -19:50:45.184 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-20","status":200,"payload":{"sessionId":"YqNbSmG90Zu05zNPSvq45+zgcDjlwQBbyradW8skSew","ok":true}} -19:50:45.186 [qtp341972345-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.190 [qtp341972345-33] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49596 -19:50:45.192 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-21", - "payload": { - "sessionId": "rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I" - } -} - -19:50:45.193 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-21","status":200,"payload":{"nonce":"9s1xHZn3eGx7BSUtOkLYnroRX0Vtm5SoaoFDiaMD6NQ","ok":true}} -19:50:45.195 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-22", - "payload": { - "sessionId": "rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I", - "timeMs": 1773852645194, - "signatureB64": "XzUe7vqeMBUqa5m6eOuRRktcd99G13nQzeKrWw1hh8BIDgOhQrYzjIR2cUepbkrdYWuBRzHPtlbxLNVPN8eKAQ==", - "clientInfo": "it-tests" - } -} - -19:50:45.203 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-22","status":200,"payload":{"storagePwd":"pwd-1550596922725","ok":true}} -19:50:45.204 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CloseActiveSession", - "requestId": "it-close-23", - "payload": { - "sessionId": "YqNbSmG90Zu05zNPSvq45+zgcDjlwQBbyradW8skSew" - } -} - -19:50:45.212 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CloseActiveSession","requestId":"it-close-23","status":200,"payload":{"ok":true}} -19:50:45.213 [qtp341972345-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.216 [qtp341972345-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49608 -19:50:45.217 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-24", - "payload": { - "sessionId": "rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I" - } -} - -19:50:45.219 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-24","status":200,"payload":{"nonce":"AVEI1I5YguWbRQhsPi5pb+rBOc3+k5EU0nnCab76Hng","ok":true}} -19:50:45.220 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-25", - "payload": { - "sessionId": "rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I", - "timeMs": 1773852645219, - "signatureB64": "LLYvZL9AuWOMMU7IK8YklSh5qSTpOURJTuJS9SNVJgQ7utRBtKx7x3mbh6TbQ6RUt7LNiOCYZBUFbgdt72gpBA==", - "clientInfo": "it-tests" - } -} - -19:50:45.227 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-25","status":200,"payload":{"storagePwd":"pwd-1550596922725","ok":true}} -19:50:45.228 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-26", - "payload": { - } -} - -19:50:45.230 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-26","status":200,"payload":{"sessions":[{"sessionId":"rTsFoL3Ocac7TYT2BVTJ+xL0SjqX95n0F4JU6ut9N2I","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852645222},{"sessionId":"1etEIK/rETleOyEPOXKPRqDCCN3T+yVJ1uSyfqjGAxM","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852645105},{"sessionId":"mrE7FCfwwbV2QK4bs1+ITW5nQLLjEGnvgvNHRGWBPZw","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852645124}],"ok":true}} -19:50:45.232 [qtp341972345-31] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.238 [qtp341972345-43] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49612 -19:50:45.261 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-27", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm61+UAAAAAAAFTSGlOZQlUZXN0VXNlcjEBAKkzag/QBI97FU7F+yGoMc50tj0AVwFvZvEPwXAnYhkWXrDbWGbPZg6m1mhXPO/b8XPWobARNp3rOuJLDrgnVQY=" - } -} - -19:50:45.277 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:45.284 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=0, newHash=7f3edc6081d6b7655495f973667825310bc28fe0aeb4c62c47a29e6f136a9a24 -19:50:45.286 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-27","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"7f3edc6081d6b7655495f973667825310bc28fe0aeb4c62c47a29e6f136a9a24","ok":true}} -19:50:45.293 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-28", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 1, - "prevBlockHash": "7f3edc6081d6b7655495f973667825310bc28fe0aeb4c62c47a29e6f136a9a24", - "blockBytesB64": "AAB/Ptxggda3ZVSV+XNmeCUxC8KP4K60xixHop5vE2qaJAAAAIEAAAABAAAAAGm61+UAAQAKAAEAAAAAAAAAAH8+3GCB1rdlVJX5c2Z4JTELwo/grrTGLEeinm8TapokAAAAAAAbVTE6IHN0b3J5L3Bvc3QgaW4gY2hhbm5lbCAwAQAVJnAqJ2Wb7nAcX92w6JlX+8VAHp7aq1torwb4NHZnNKqGxtNo3xCyq574UJR4K3hCc3AE+703gNx3sekuUwwK" - } -} - -19:50:45.299 [ws-worker-12] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=0 prevLineNumber=0 thisLineNumber=0 prevLineHashLen=32 -19:50:45.305 [ws-worker-12] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=1, newHash=40d1f4f642b3fb91f2a513928917d8d834cdec92a0765ab6b595c666a459ed8b -19:50:45.306 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-28","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"40d1f4f642b3fb91f2a513928917d8d834cdec92a0765ab6b595c666a459ed8b","ok":true}} -19:50:45.309 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-29", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 2, - "prevBlockHash": "40d1f4f642b3fb91f2a513928917d8d834cdec92a0765ab6b595c666a459ed8b", - "blockBytesB64": "AABA0fT2QrP7kfKlE5KJF9jYNM3skqB2Wra1lcZmpFntiwAAAGkAAAACAAAAAGm61+UAAAABAAEAAAAAAAAAAH8+3GCB1rdlVJX5c2Z4JTELwo/grrTGLEeinm8TapokAAAAAQROZXdzAQBiw40zOwlJcKewyK4zyy0TQ3uMNhhR/llKnL0JcNa/1RUFxTP5VtnEPRXr2vDSv6mm2zT3TJHTr+eHnqph/WoO" - } -} - -19:50:45.314 [ws-worker-13] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=1 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -19:50:45.318 [ws-worker-13] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=2, newHash=081e50cb72251c9b8fd89d1f5922840d010f56b3ac902541e1ccb102580631c6 -19:50:45.319 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-29","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"081e50cb72251c9b8fd89d1f5922840d010f56b3ac902541e1ccb102580631c6","ok":true}} -19:50:45.321 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-30", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 3, - "prevBlockHash": "081e50cb72251c9b8fd89d1f5922840d010f56b3ac902541e1ccb102580631c6", - "blockBytesB64": "AAAIHlDLciUcm4/YnR9ZIoQNAQ9Ws6yQJUHhzLECWAYxxgAAAHYAAAADAAAAAGm61+UAAQAKAAEAAAACAAAAAggeUMtyJRybj9idH1kihA0BD1azrJAlQeHMsQJYBjHGAAAAAAAQVTE6IE5ld3MgcG9zdCAjMAEAjQdKW8XUk0jD3naQmkYsfXo2nwL2veEFnJMFIShOaf4QofmvDgVe/FFK6qla+siqbVFtulIwScUPr4LZvD1VCQ==" - } -} - -19:50:45.326 [ws-worker-14] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=2 thisLineNumber=0 prevLineHashLen=32 -19:50:45.331 [ws-worker-14] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=3, newHash=88b6ecbfc386f0efaf8fa481ce66c6840f3f6b4bcfcc849d5938198bbb3d71ef -19:50:45.331 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-30","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"88b6ecbfc386f0efaf8fa481ce66c6840f3f6b4bcfcc849d5938198bbb3d71ef","ok":true}} -19:50:45.333 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-31", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 4, - "prevBlockHash": "88b6ecbfc386f0efaf8fa481ce66c6840f3f6b4bcfcc849d5938198bbb3d71ef", - "blockBytesB64": "AACItuy/w4bw76+PpIHOZsaEDz9rS8/MhJ1ZOBmLuz1x7wAAAHYAAAAEAAAAAGm61+UAAQAKAAEAAAACAAAAA4i27L/DhvDvr4+kgc5mxoQPP2tLz8yEnVk4GYu7PXHvAAAAAQAQVTE6IE5ld3MgcG9zdCAjMQEASXl5ISSGMmZVdwCaL/lnGIZtW6KR3ST9tPzmPcVPxGtZjPOKeGJnq9A8umpj3eJpljVymVOINP8ouxQCvvqsDA==" - } -} - -19:50:45.338 [ws-worker-15] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=3 thisLineNumber=1 prevLineHashLen=32 -19:50:45.342 [ws-worker-15] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=4, newHash=ecde23195777f9dcd97dbf08b4801b4bc84f1f691f369c84ec63ee993bf19354 -19:50:45.343 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-31","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"ecde23195777f9dcd97dbf08b4801b4bc84f1f691f369c84ec63ee993bf19354","ok":true}} -19:50:45.345 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-32", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 5, - "prevBlockHash": "ecde23195777f9dcd97dbf08b4801b4bc84f1f691f369c84ec63ee993bf19354", - "blockBytesB64": "AADs3iMZV3f53Nl9vwi0gBtLyE8faR82nITsY+6ZO/GTVAAAAKEAAAAFAAAAAGm61+UAAQALAAEAAAACAAAABOzeIxlXd/nc2X2/CLSAG0vITx9pHzachOxj7pk78ZNUAAAAAgAAAAOItuy/w4bw76+PpIHOZsaEDz9rS8/MhJ1ZOBmLuz1x7wAXVTE6IE5ld3MgcG9zdCAjMCAoRURJVCkBAMWOdvgyG274PRwiRgzejLjomLflJ0m24j5Zaxx8gf835NnD0iAoPOa5JRJ7KqGSLc366kOOEiz2Gy16hzltYw8=" - } -} - -19:50:45.348 [ws-worker-16] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=11 lineCode=2 prevLineNumber=4 thisLineNumber=2 prevLineHashLen=32 -19:50:45.352 [ws-worker-16] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=5, newHash=fdcf9bd40f11da4d294bab4b56269e28ef95c8a4c3f100f44eb581150c9dbc84 -19:50:45.352 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-32","status":200,"payload":{"serverLastGlobalNumber":5,"serverLastGlobalHash":"fdcf9bd40f11da4d294bab4b56269e28ef95c8a4c3f100f44eb581150c9dbc84","ok":true}} -19:50:45.355 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-33", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm61+UAAAAAAAFTSGlOZQlUZXN0VXNlcjIBAG5vzH2pTasnxtSn8UqimbSHU1zcpCsv44b6jvAWJGBvySE5n9clVedgBFchzUI4c6NZgQ80996gsgXBzI7ZEQE=" - } -} - -19:50:45.360 [ws-worker-1] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:45.366 [ws-worker-1] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=0, newHash=3d719b9a231458859c388532165551969683e196c30dfc54b1deeeeb456604b6 -19:50:45.366 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-33","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"3d719b9a231458859c388532165551969683e196c30dfc54b1deeeeb456604b6","ok":true}} -19:50:45.372 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-34", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 6, - "prevBlockHash": "fdcf9bd40f11da4d294bab4b56269e28ef95c8a4c3f100f44eb581150c9dbc84", - "blockBytesB64": "AAD9z5vUDxHaTSlLq0tWJp4o75XIpMPxAPROtYEVDJ28hAAAAJYAAAAGAAAAAGm61+UAAwAeAAEAAAAAAAAAAH8+3GCB1rdlVJX5c2Z4JTELwo/grrTGLEeinm8TapokAAAAAQ1UZXN0VXNlcjItMDAxAAAAAD1xm5ojFFiFnDiFMhZVUZaWg+GWww38VLHe7utFZgS2AQA8eutQJEc/pzuFFw+n7P5EUrQ961LrBTYKfZBA0Gq2cbTGsdMwC9Jr6RV0ovbNXLd2jNfClahh3DgIaYM/CrIH" - } -} - -19:50:45.377 [ws-worker-2] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -19:50:45.382 [ws-worker-2] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=6, newHash=04c04bc1b77f119265dc23dd8177aa05be9a04610fc75c9d8bb65fa17efa79b1 -19:50:45.382 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-34","status":200,"payload":{"serverLastGlobalNumber":6,"serverLastGlobalHash":"04c04bc1b77f119265dc23dd8177aa05be9a04610fc75c9d8bb65fa17efa79b1","ok":true}} -19:50:45.384 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-35", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 1, - "prevBlockHash": "3d719b9a231458859c388532165551969683e196c30dfc54b1deeeeb456604b6", - "blockBytesB64": "AAA9cZuaIxRYhZw4hTIWVVGWloPhlsMN/FSx3u7rRWYEtgAAAJYAAAABAAAAAGm61+UAAwAeAAEAAAAAAAAAAD1xm5ojFFiFnDiFMhZVUZaWg+GWww38VLHe7utFZgS2AAAAAQ1UZXN0VXNlcjEtMDAxAAAAAggeUMtyJRybj9idH1kihA0BD1azrJAlQeHMsQJYBjHGAQD07JxLiXLXgoOtYdQgmx0GLkA+bD8vuPTiTx0XYY5F6abwZ2xRyX3o1fPvA56GzZ/KVlH33gLtleEKf3OWtQ4C" - } -} - -19:50:45.387 [ws-worker-3] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -19:50:45.392 [ws-worker-3] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=1, newHash=ee9bbcf630962956990a7457edb9738b20632dff7ff61964baaf8c0b9939bf5f -19:50:45.392 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-35","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"ee9bbcf630962956990a7457edb9738b20632dff7ff61964baaf8c0b9939bf5f","ok":true}} -19:50:45.394 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-36", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 7, - "prevBlockHash": "04c04bc1b77f119265dc23dd8177aa05be9a04610fc75c9d8bb65fa17efa79b1", - "blockBytesB64": "AAAEwEvBt38RkmXcI92Bd6oFvpoEYQ/HXJ2Ltl+hfvp5sQAAAJYAAAAHAAAAAGm61+UAAwAKAAEAAAAAAAAABgTAS8G3fxGSZdwj3YF3qgW+mgRhD8dcnYu2X6F++nmxAAAAAg1UZXN0VXNlcjItMDAxAAAAAD1xm5ojFFiFnDiFMhZVUZaWg+GWww38VLHe7utFZgS2AQAMiKuAnBBsaxsBS5LYNypci2TmaqPd0shshwGGECwrh+GYi/hPUsFeZ97S2GUMv2rh0ER6mArsRdz9FnRztlEG" - } -} - -19:50:45.399 [ws-worker-4] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=6 thisLineNumber=2 prevLineHashLen=32 -19:50:45.405 [ws-worker-4] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=7, newHash=e0a56e9edbb31b2b07b55ccd316db9d812edc07153060d0c15dd903044f5a7bd -19:50:45.405 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-36","status":200,"payload":{"serverLastGlobalNumber":7,"serverLastGlobalHash":"e0a56e9edbb31b2b07b55ccd316db9d812edc07153060d0c15dd903044f5a7bd","ok":true}} -19:50:45.407 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-37", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 2, - "prevBlockHash": "ee9bbcf630962956990a7457edb9738b20632dff7ff61964baaf8c0b9939bf5f", - "blockBytesB64": "AADum7z2MJYpVpkKdFftuXOLIGMt/3/2GWS6r4wLmTm/XwAAAJYAAAACAAAAAGm61+UAAwAKAAEAAAAAAAAAAe6bvPYwlilWmQp0V+25c4sgYy3/f/YZZLqvjAuZOb9fAAAAAg1UZXN0VXNlcjEtMDAxAAAAAH8+3GCB1rdlVJX5c2Z4JTELwo/grrTGLEeinm8TapokAQDZ6SjRexJ7JaJoyaBLL5CXXbmqX9HoT+7QjHaAXmtiebCzr6d5xBX/3sXwjET6fmroQLrb4yP5uyqmCSS4BsgD" - } -} - -19:50:45.412 [ws-worker-5] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=1 thisLineNumber=2 prevLineHashLen=32 -19:50:45.417 [ws-worker-5] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=2, newHash=e46ba9c82252f7ded81f73777e9d37ffb52139cb15c4bc6e2fc4311959a75ab7 -19:50:45.417 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-37","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"e46ba9c82252f7ded81f73777e9d37ffb52139cb15c4bc6e2fc4311959a75ab7","ok":true}} -19:50:45.419 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-38", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 8, - "prevBlockHash": "e0a56e9edbb31b2b07b55ccd316db9d812edc07153060d0c15dd903044f5a7bd", - "blockBytesB64": "AADgpW6e27MbKwe1XM0xbbnYEu3AcVMGDQwV3ZAwRPWnvQAAAJYAAAAIAAAAAGm61+UAAwAUAAEAAAAAAAAAB+Clbp7bsxsrB7VczTFtudgS7cBxUwYNDBXdkDBE9ae9AAAAAw1UZXN0VXNlcjItMDAxAAAAAD1xm5ojFFiFnDiFMhZVUZaWg+GWww38VLHe7utFZgS2AQCJ89QwcXBdefMbVVVLgqm0W2aXCJIpQUIiDueIR+CzCudKmNkjlwjSPMbr5zAWskJtZUUThaoMJc5BGk3BI0sJ" - } -} - -19:50:45.424 [ws-worker-6] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=7 thisLineNumber=3 prevLineHashLen=32 -19:50:45.429 [ws-worker-6] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=8, newHash=b55d33a568c225e3d340de66e7dd9aba62890cd1210d178117f10227964c0eb1 -19:50:45.430 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-38","status":200,"payload":{"serverLastGlobalNumber":8,"serverLastGlobalHash":"b55d33a568c225e3d340de66e7dd9aba62890cd1210d178117f10227964c0eb1","ok":true}} -19:50:45.432 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-39", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 3, - "prevBlockHash": "e46ba9c82252f7ded81f73777e9d37ffb52139cb15c4bc6e2fc4311959a75ab7", - "blockBytesB64": "AADka6nIIlL33tgfc3d+nTf/tSE5yxXEvG4vxDEZWadatwAAAJYAAAADAAAAAGm61+UAAwAUAAEAAAAAAAAAAuRrqcgiUvfe2B9zd36dN/+1ITnLFcS8bi/EMRlZp1q3AAAAAw1UZXN0VXNlcjEtMDAxAAAAAH8+3GCB1rdlVJX5c2Z4JTELwo/grrTGLEeinm8TapokAQBbe+ePvxRroc9UiAwoiuUcd8rxVwjfC7Vh3q1p5RrtrlWDJ6YI6ewJhqkCmAfuu1CfM1Qwx4aKoEtfzEgRAsUI" - } -} - -19:50:45.435 [ws-worker-7] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=2 thisLineNumber=3 prevLineHashLen=32 -19:50:45.440 [ws-worker-7] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=3, newHash=8cb8c973fbbf8efc4efe077da6114f1d73ebed663641d30d76bb360cb1dc36ad -19:50:45.441 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-39","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"8cb8c973fbbf8efc4efe077da6114f1d73ebed663641d30d76bb360cb1dc36ad","ok":true}} -19:50:45.443 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-40", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 4, - "prevBlockHash": "8cb8c973fbbf8efc4efe077da6114f1d73ebed663641d30d76bb360cb1dc36ad", - "blockBytesB64": "AACMuMlz+7+O/E7+B32mEU8dc+vtZjZB0w12uzYMsdw2rQAAAJYAAAAEAAAAAGm61+UAAQAUAAENVGVzdFVzZXIxLTAwMQAAAAOItuy/w4bw76+PpIHOZsaEDz9rS8/MhJ1ZOBmLuz1x7wAqVTI6IHJlcGx5IHRvIFUxIE5ld3MgcG9zdCAjMCAoY3Jvc3MtY2hhaW4pAQAc1YXEtD97qMRY2WAIimcBOHn44MLD84dPO1CPZiKuCtzAv4HT7lu9dtQaFWWpmx1jJndJFM+wNxJXPMxIW18H" - } -} - -19:50:45.446 [ws-worker-8] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=20 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:45.450 [ws-worker-8] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=4, newHash=89227edb9938ea148fa69dd2f8b8da06074e17b083d8f34cd5e136f02c781c58 -19:50:45.450 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-40","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"89227edb9938ea148fa69dd2f8b8da06074e17b083d8f34cd5e136f02c781c58","ok":true}} -19:50:45.452 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-41", - "payload": { - "blockchainName": "TestUser3-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm61+UAAAAAAAFTSGlOZQlUZXN0VXNlcjMBADNpNoHZaMvPb/KvQfakO5cfMSc8zVbYtS7O7Md2WinnVcdAY0+n67cTz0h4AOUHfRKC54jfbuCKR1KkwxTlqQI=" - } -} - -19:50:45.455 [ws-worker-9] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:45.459 [ws-worker-9] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser3, blockchainName=TestUser3-001, blockNumber=0, newHash=1b5b1a572b3d5c94319eef2e6916aa63b1a3357f4d648d8a7f8ad6d84b8b2168 -19:50:45.459 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-41","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"1b5b1a572b3d5c94319eef2e6916aa63b1a3357f4d648d8a7f8ad6d84b8b2168","ok":true}} -19:50:45.461 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-42", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 9, - "prevBlockHash": "b55d33a568c225e3d340de66e7dd9aba62890cd1210d178117f10227964c0eb1", - "blockBytesB64": "AAC1XTOlaMIl49NA3mbn3Zq6YokM0SENF4EX8QInlkwOsQAAAJYAAAAJAAAAAGm61+UAAwAUAAEAAAAAAAAACLVdM6VowiXj00DeZufdmrpiiQzRIQ0XgRfxAieWTA6xAAAABA1UZXN0VXNlcjMtMDAxAAAAABtbGlcrPVyUMZ7vLmkWqmOxozV/TWSNin+K1thLiyFoAQCiQSMDr+1YjBpf8gaYxW2ruMb9eN30e357u8uvQX+mw9u+4GbPwu+DLB06YdPX6TG4qkrdrKs5Pagvzepg/JMA" - } -} - -19:50:45.465 [ws-worker-10] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=8 thisLineNumber=4 prevLineHashLen=32 -19:50:45.470 [ws-worker-10] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=9, newHash=da3f018b5585a0ba093af8413e72330e676006137642bbc0887c16434e6ff986 -19:50:45.472 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-42","status":200,"payload":{"serverLastGlobalNumber":9,"serverLastGlobalHash":"da3f018b5585a0ba093af8413e72330e676006137642bbc0887c16434e6ff986","ok":true}} -19:50:45.474 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-43", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 10, - "prevBlockHash": "da3f018b5585a0ba093af8413e72330e676006137642bbc0887c16434e6ff986", - "blockBytesB64": "AADaPwGLVYWgugk6+EE+cjMOZ2AGE3ZCu8CIfBZDTm/5hgAAAJYAAAAKAAAAAGm61+UAAwAVAAEAAAAAAAAACdo/AYtVhaC6CTr4QT5yMw5nYAYTdkK7wIh8FkNOb/mGAAAABQ1UZXN0VXNlcjItMDAxAAAAAD1xm5ojFFiFnDiFMhZVUZaWg+GWww38VLHe7utFZgS2AQBbHDXPE4sB/kPUQLEA1Av8Ax9WC7GinQ4IJ+VYgbco3yTkqzv9N58F8UgGW/RZazI70KFWl/pHc8Btf3+Nl6cJ" - } -} - -19:50:45.480 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=21 lineCode=0 prevLineNumber=9 thisLineNumber=5 prevLineHashLen=32 -19:50:45.486 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=10, newHash=c99f38663a8f47eea9a8cb3d417a6e976b0390a5feff2d232c3aaf91a288cc9d -19:50:45.487 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-43","status":200,"payload":{"serverLastGlobalNumber":10,"serverLastGlobalHash":"c99f38663a8f47eea9a8cb3d417a6e976b0390a5feff2d232c3aaf91a288cc9d","ok":true}} -19:50:45.488 [qtp341972345-43] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.496 [qtp341972345-38] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49622 -19:50:45.498 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-44", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773852645489, - "value": "Anna", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "OW6XmkXuWVv5G+woqEl+dBV9r1bLrogEX/xdoa1njWbCQwKnLp5DU1ttu7vqCUR26Nm7OBGyREn+A/aZfjeYDQ==" - } -} - -19:50:45.504 [ws-worker-12] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773852645489 -19:50:45.509 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-44","status":200,"payload":{"ok":true}} -19:50:45.510 [qtp341972345-38] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.516 [qtp341972345-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49638 -19:50:45.517 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-45", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -19:50:45.522 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-45","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773852645489,"value":"Anna","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"OW6XmkXuWVv5G+woqEl+dBV9r1bLrogEX/xdoa1njWbCQwKnLp5DU1ttu7vqCUR26Nm7OBGyREn+A/aZfjeYDQ==","ok":true}} -19:50:45.524 [qtp341972345-28] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.529 [qtp341972345-58] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49640 -19:50:45.531 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-46", - "payload": { - "login": "TestUser1", - "param": "profile:city", - "time_ms": 1773852645499, - "value": "Amsterdam", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "I+1K1lZsZaiSMO5ScflBlMZu42XYOeuAp8URsanjPaTfYbx8KlgVylGB5/OWZ4XlhJnYdpXM4PJRVrfPUmRIBg==" - } -} - -19:50:45.534 [ws-worker-14] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:city, time_ms=1773852645499 -19:50:45.537 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-46","status":200,"payload":{"ok":true}} -19:50:45.538 [qtp341972345-58] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.542 [qtp341972345-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49642 -19:50:45.543 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-47", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773852645509, - "value": "Anna Updated", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "r1bb8R8Z8ZqLw005GkqRK6qrhfqPcZIqNzxzGML07fS2qkHQOmJu8kqymXYMNDRpam9xqA3CF6/iPkSPmAOYAw==" - } -} - -19:50:45.547 [ws-worker-15] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773852645509 -19:50:45.550 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-47","status":200,"payload":{"ok":true}} -19:50:45.551 [qtp341972345-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.556 [qtp341972345-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49644 -19:50:45.558 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-48", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -19:50:45.560 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-48","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773852645509,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"r1bb8R8Z8ZqLw005GkqRK6qrhfqPcZIqNzxzGML07fS2qkHQOmJu8kqymXYMNDRpam9xqA3CF6/iPkSPmAOYAw==","ok":true}} -19:50:45.561 [qtp341972345-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.567 [qtp341972345-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49652 -19:50:45.568 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListUserParams", - "requestId": "it-listparams-49", - "payload": { "login": "TestUser1" } -} - -19:50:45.574 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListUserParams","requestId":"it-listparams-49","status":200,"payload":{"login":"TestUser1","params":[{"login":"TestUser1","param":"profile:name","time_ms":1773852645509,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"r1bb8R8Z8ZqLw005GkqRK6qrhfqPcZIqNzxzGML07fS2qkHQOmJu8kqymXYMNDRpam9xqA3CF6/iPkSPmAOYAw=="},{"login":"TestUser1","param":"profile:city","time_ms":1773852645499,"value":"Amsterdam","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"I+1K1lZsZaiSMO5ScflBlMZu42XYOeuAp8URsanjPaTfYbx8KlgVylGB5/OWZ4XlhJnYdpXM4PJRVrfPUmRIBg=="}],"ok":true}} -19:50:45.576 [qtp341972345-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:45.581 [qtp341972345-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:49664 -19:50:45.583 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-50", - "payload": { - "login": "TestUser1" - } -} - -19:50:45.587 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-50","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -19:50:45.592 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-51", - "payload": { - "login": "Testuser1" - } -} - -19:50:45.593 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-51","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -19:50:45.595 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-52", - "payload": { - "login": "TestUser2" - } -} - -19:50:45.597 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-52","status":200,"payload":{"login":"TestUser2","out_friends":["TestUser1"],"in_friends":["TestUser1"],"ok":true}} -19:50:45.598 [qtp341972345-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:54.938 [wsServer-thread] INFO s.ws.BlockchainTmpRecoveryOnStartup - 🟢 BlockchainTmpRecovery: временных *.tmp_bch файлов не найдено — восстановление не требуется. -19:50:54.996 [wsServer-thread] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.18+8-Ubuntu-124.04.1 -19:50:55.044 [wsServer-thread] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@2b7f2622{/,null,AVAILABLE} -19:50:55.050 [wsServer-thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@56ee516b{HTTP/1.1, (http/1.1)}{0.0.0.0:7070} -19:50:55.054 [wsServer-thread] INFO org.eclipse.jetty.server.Server - Started Server@3171580c{STARTING}[11.0.20,sto=0] @766ms -19:50:55.054 [wsServer-thread] INFO server.ws.WsServer - ✅ WS сервер запущен на ws://localhost:7070/ws -19:50:55.806 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56402 -19:50:55.834 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-1", - "payload": { - "login": "TestUser1", - "blockchainName": "TestUser1-001", - "solanaKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "blockchainKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "deviceKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "bchLimit": 50000000 - } -} - -19:50:55.884 [ws-worker-1] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser1, blockchainName=TestUser1-001, limit=50000000 -19:50:55.895 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-1","status":200,"payload":{"ok":true}} -19:50:55.899 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-2", - "payload": { - "login": "TestUser1" - } -} - -19:50:55.904 [ws-worker-2] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -19:50:55.906 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-2","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -19:50:55.909 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-3", - "payload": { - "login": "TestUser2", - "blockchainName": "TestUser2-001", - "solanaKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "blockchainKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "deviceKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "bchLimit": 50000000 - } -} - -19:50:55.914 [ws-worker-3] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser2, blockchainName=TestUser2-001, limit=50000000 -19:50:55.915 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-3","status":200,"payload":{"ok":true}} -19:50:55.916 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-4", - "payload": { - "login": "TestUser2" - } -} - -19:50:55.917 [ws-worker-4] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser2, blockchainName=TestUser2-001 -19:50:55.917 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-4","status":200,"payload":{"exists":true,"login":"TestUser2","blockchainName":"TestUser2-001","solanaKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","blockchainKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","deviceKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","ok":true}} -19:50:55.920 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-5", - "payload": { - "login": "TestUser3", - "blockchainName": "TestUser3-001", - "solanaKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "blockchainKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "deviceKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "bchLimit": 50000000 - } -} - -19:50:55.924 [ws-worker-5] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser3, blockchainName=TestUser3-001, limit=50000000 -19:50:55.924 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-5","status":200,"payload":{"ok":true}} -19:50:55.926 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-6", - "payload": { - "login": "TestUser3" - } -} - -19:50:55.927 [ws-worker-6] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser3, blockchainName=TestUser3-001 -19:50:55.928 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-6","status":200,"payload":{"exists":true,"login":"TestUser3","blockchainName":"TestUser3-001","solanaKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","blockchainKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","deviceKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","ok":true}} -19:50:55.931 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-7", - "payload": { - "login": "Testuser1" - } -} - -19:50:55.932 [ws-worker-7] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -19:50:55.933 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-7","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -19:50:55.934 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-8", - "payload": { - "login": "NoSuchUser_987654321" - } -} - -19:50:55.938 [ws-worker-8] INFO s.l.w.J.h.t.Net_GetUser_Handler - ℹ️ GetUser: not found for login=NoSuchUser_987654321 -19:50:55.938 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-8","status":200,"payload":{"exists":false,"ok":true}} -19:50:55.941 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SearchUsers", - "requestId": "it-searchusers-9", - "payload": { - "prefix": "Tes" - } -} - -19:50:55.946 [ws-worker-9] INFO s.l.w.J.h.t.Net_SearchUsers_Handler - ✅ SearchUsers ok: prefix='Tes' -> 3 -19:50:55.949 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SearchUsers","requestId":"it-searchusers-9","status":200,"payload":{"logins":["TestUser1","TestUser2","TestUser3"],"ok":true}} -19:50:55.954 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:55.960 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56410 -19:50:55.963 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-10", - "payload": { "login": "TestUser1" } -} - -19:50:55.967 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-10","status":200,"payload":{"authNonce":"1VKkHEQ8n+32/bIfNDnPlsHFwnob+0SxaQlfIB87F54","ok":true}} -19:50:55.975 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-11", - "payload": { - "storagePwd": "pwd-1561496456144", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852655971, - "signatureB64": "SIW6hT/PoOMi1WbM+pkC4AHbzNFBOGzcyV4tME1ipEZiJ+GbjomGgp9beyUdBB9pX7bLFHGaVFxV+N0k0b2zDg==", - "clientInfo": "it-tests" - } -} - -19:50:55.988 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-11","status":200,"payload":{"sessionId":"TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM","ok":true}} -19:50:55.990 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:55.993 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56424 -19:50:55.995 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-12", - "payload": { "login": "TestUser1" } -} - -19:50:55.998 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-12","status":200,"payload":{"authNonce":"SKxkARLTgIbNSWnDiLCQnPvmevGdeY6Tnr1Gx1W4bv0","ok":true}} -19:50:56.000 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-13", - "payload": { - "storagePwd": "pwd-1561524531814", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852655999, - "signatureB64": "JK3vVvPMtZCl3jRIOMN82lyT2MjPZxu44tS8fBQhMkjLSP9RrmfxXzihnAyae4kvf2tj4tM9fn/IcNfn5ASNAQ==", - "clientInfo": "it-tests" - } -} - -19:50:56.007 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-13","status":200,"payload":{"sessionId":"+E+LA1lX18sqoNHhOHbKdmypSUyhUwRJPF3IY2D1Hb8","ok":true}} -19:50:56.008 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.012 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56436 -19:50:56.014 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-14", - "payload": { "login": "TestUser1" } -} - -19:50:56.016 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-14","status":200,"payload":{"authNonce":"XGm4shpOLP0hkO9o0BTQSmn55Lwm7IiIKKfl2UeLWdc","ok":true}} -19:50:56.018 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-15", - "payload": { - "storagePwd": "pwd-1561542374783", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852656016, - "signatureB64": "YTzj6ppdEwxJcK4c9s3S526+ubYGl+tlfIEXwmTu1DKyjW5FOASEVyU++BN9JB/EDIDNCdYjoyHyXF8iEK/GCw==", - "clientInfo": "it-tests" - } -} - -19:50:56.025 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-15","status":200,"payload":{"sessionId":"aSOHVAjq9tzp6nJJHKn8323jNpCKb/BsU//XXpY+Lak","ok":true}} -19:50:56.027 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.031 [qtp1582446160-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56442 -19:50:56.032 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-16", - "payload": { - "sessionId": "TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM" - } -} - -19:50:56.038 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-16","status":200,"payload":{"nonce":"tig894FQos+GpFoRi+TlVSLFUkJf4DxKnrRESS6/s9c","ok":true}} -19:50:56.041 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-17", - "payload": { - "sessionId": "TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM", - "timeMs": 1773852656040, - "signatureB64": "7LvQOB2ynnAJvKhuW3rPdfu6mZvUqjNhSzl6VU80vOrhQmAEvA5PnH8bsurKohnSoT9hxfics7Op6K5Rf8tKCQ==", - "clientInfo": "it-tests" - } -} - -19:50:56.050 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-17","status":200,"payload":{"storagePwd":"pwd-1561496456144","ok":true}} -19:50:56.052 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-18", - "payload": { - } -} - -19:50:56.059 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-18","status":200,"payload":{"sessions":[{"sessionId":"TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852656045},{"sessionId":"+E+LA1lX18sqoNHhOHbKdmypSUyhUwRJPF3IY2D1Hb8","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852656001},{"sessionId":"aSOHVAjq9tzp6nJJHKn8323jNpCKb/BsU//XXpY+Lak","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852656020}],"ok":true}} -19:50:56.061 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.064 [qtp1582446160-31] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56446 -19:50:56.065 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-19", - "payload": { "login": "TestUser1" } -} - -19:50:56.067 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-19","status":200,"payload":{"authNonce":"HEqcPqZhwnpz/2s02N3OMdFH/AflLM2u6PbQHQ0NYPo","ok":true}} -19:50:56.069 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-20", - "payload": { - "storagePwd": "pwd-1561593617147", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773852656068, - "signatureB64": "CrjDINsQdwSwWK4FhxCg4cB99LslI8WbeXPkC4jowiz/+TN3PjJgekyCRbHgs/Dd+Yo29EFZXsKvciO4hW6EAg==", - "clientInfo": "it-tests" - } -} - -19:50:56.075 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-20","status":200,"payload":{"sessionId":"fRMWJdCvl+SAcNpbvYLJniSvfVdUnI5zwjNslSTI8Ng","ok":true}} -19:50:56.076 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.080 [qtp1582446160-32] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56458 -19:50:56.081 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-21", - "payload": { - "sessionId": "TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM" - } -} - -19:50:56.083 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-21","status":200,"payload":{"nonce":"DY3L7NYkqaxQqGf3S0psG38X2P6uxTbKEskvN4YhyPM","ok":true}} -19:50:56.085 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-22", - "payload": { - "sessionId": "TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM", - "timeMs": 1773852656084, - "signatureB64": "f1SYf5Sk/w/DwYDR3hPSmmNngZCKal7rVuU6CXHm77H6m01loElJeQ9q0/DNxImKxAlaILggpb8qmmoxHV1tBw==", - "clientInfo": "it-tests" - } -} - -19:50:56.091 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-22","status":200,"payload":{"storagePwd":"pwd-1561496456144","ok":true}} -19:50:56.092 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CloseActiveSession", - "requestId": "it-close-23", - "payload": { - "sessionId": "fRMWJdCvl+SAcNpbvYLJniSvfVdUnI5zwjNslSTI8Ng" - } -} - -19:50:56.099 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CloseActiveSession","requestId":"it-close-23","status":200,"payload":{"ok":true}} -19:50:56.100 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.103 [qtp1582446160-25] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56470 -19:50:56.104 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-24", - "payload": { - "sessionId": "TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM" - } -} - -19:50:56.105 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-24","status":200,"payload":{"nonce":"HDTPQYiObr9ky+OFbaIKrjjzBiapuxzMegq5ZtgsKGU","ok":true}} -19:50:56.106 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-25", - "payload": { - "sessionId": "TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM", - "timeMs": 1773852656106, - "signatureB64": "S+Xt+VVSnj2ZX5rlPX2NObE8shj7c8d7vgGq+X26fEyHC4vEWtz4bVER5/xONMqy9XNI0BT9jZ3uXPeFBelOAg==", - "clientInfo": "it-tests" - } -} - -19:50:56.112 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-25","status":200,"payload":{"storagePwd":"pwd-1561496456144","ok":true}} -19:50:56.113 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-26", - "payload": { - } -} - -19:50:56.115 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-26","status":200,"payload":{"sessions":[{"sessionId":"TdKMlRxK6sZQdTmk/Zej+oLUZAag3D/DsF6ky+xjvKM","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852656108},{"sessionId":"+E+LA1lX18sqoNHhOHbKdmypSUyhUwRJPF3IY2D1Hb8","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852656001},{"sessionId":"aSOHVAjq9tzp6nJJHKn8323jNpCKb/BsU//XXpY+Lak","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773852656020}],"ok":true}} -19:50:56.116 [qtp1582446160-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.119 [qtp1582446160-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56476 -19:50:56.130 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-27", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm61/AAAAAAAAFTSGlOZQlUZXN0VXNlcjEBAPBQW1/Oq5s3AhVwxaNPkLuPn1hS1VVDODEI6P+rIIgR/zdD3p3aImYKQjxhbbDxkixyMMYbx2pvVvc2GpM5tww=" - } -} - -19:50:56.134 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:56.138 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=0, newHash=59a60815cef1b2ae3430b58c4c94625c6763ae795360eb8acca0763448974f7d -19:50:56.139 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-27","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"59a60815cef1b2ae3430b58c4c94625c6763ae795360eb8acca0763448974f7d","ok":true}} -19:50:56.143 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-28", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 1, - "prevBlockHash": "59a60815cef1b2ae3430b58c4c94625c6763ae795360eb8acca0763448974f7d", - "blockBytesB64": "AABZpggVzvGyrjQwtYxMlGJcZ2OueVNg64rMoHY0SJdPfQAAAIEAAAABAAAAAGm61/AAAQAKAAEAAAAAAAAAAFmmCBXO8bKuNDC1jEyUYlxnY655U2DrisygdjRIl099AAAAAAAbVTE6IHN0b3J5L3Bvc3QgaW4gY2hhbm5lbCAwAQBrNmwubu2vyvxdV9aFH041qn9kbdnt5e8UA1s42R7Jl8IrgKJgsYkKM4xc21CxJSNYaht8GNzKKTkt8VMXu1QG" - } -} - -19:50:56.146 [ws-worker-12] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=0 prevLineNumber=0 thisLineNumber=0 prevLineHashLen=32 -19:50:56.150 [ws-worker-12] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=1, newHash=30e09879c810de976bbaa44f487172bf2f6de2e1ea9c2b7bd498efe386ac3b59 -19:50:56.150 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-28","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"30e09879c810de976bbaa44f487172bf2f6de2e1ea9c2b7bd498efe386ac3b59","ok":true}} -19:50:56.152 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-29", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 2, - "prevBlockHash": "30e09879c810de976bbaa44f487172bf2f6de2e1ea9c2b7bd498efe386ac3b59", - "blockBytesB64": "AAAw4Jh5yBDel2u6pE9IcXK/L23i4eqcK3vUmO/jhqw7WQAAAGkAAAACAAAAAGm61/AAAAABAAEAAAAAAAAAAFmmCBXO8bKuNDC1jEyUYlxnY655U2DrisygdjRIl099AAAAAQROZXdzAQABoj0RWksPQPwsstm/QneWEzL9Fv9m0u6OqZ8hFiE/zKXQWlSLuPvDsKBR8QXa7xQReNOHIPgFHZy+brry+7AC" - } -} - -19:50:56.156 [ws-worker-13] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=1 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -19:50:56.160 [ws-worker-13] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=2, newHash=426d50df0a32b8f893ab6c8163873f5bd8783fa58eb988ea32e90fc1d8602579 -19:50:56.160 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-29","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"426d50df0a32b8f893ab6c8163873f5bd8783fa58eb988ea32e90fc1d8602579","ok":true}} -19:50:56.162 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-30", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 3, - "prevBlockHash": "426d50df0a32b8f893ab6c8163873f5bd8783fa58eb988ea32e90fc1d8602579", - "blockBytesB64": "AABCbVDfCjK4+JOrbIFjhz9b2Hg/pY65iOoy6Q/B2GAleQAAAHYAAAADAAAAAGm61/AAAQAKAAEAAAACAAAAAkJtUN8KMrj4k6tsgWOHP1vYeD+ljrmI6jLpD8HYYCV5AAAAAAAQVTE6IE5ld3MgcG9zdCAjMAEAfDYm9CT4EGKhYj81dnxVOozrJapkZLr6OySBtgtNlYhchWuWyAf/ndnesWp5w5Gsw+ZGxxqg8JQhtKaf1qC5DQ==" - } -} - -19:50:56.167 [ws-worker-14] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=2 thisLineNumber=0 prevLineHashLen=32 -19:50:56.171 [ws-worker-14] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=3, newHash=3a6cb60e2bfeb001d544a68564c62ee480bf2c62e08d62926e0ce89fca4957b0 -19:50:56.171 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-30","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"3a6cb60e2bfeb001d544a68564c62ee480bf2c62e08d62926e0ce89fca4957b0","ok":true}} -19:50:56.173 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-31", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 4, - "prevBlockHash": "3a6cb60e2bfeb001d544a68564c62ee480bf2c62e08d62926e0ce89fca4957b0", - "blockBytesB64": "AAA6bLYOK/6wAdVEpoVkxi7kgL8sYuCNYpJuDOifyklXsAAAAHYAAAAEAAAAAGm61/AAAQAKAAEAAAACAAAAAzpstg4r/rAB1USmhWTGLuSAvyxi4I1ikm4M6J/KSVewAAAAAQAQVTE6IE5ld3MgcG9zdCAjMQEAa2I9XJAnMu6DsAw8jtabte/yWY1/gxkoZyGQyrnaXZIc2HKyKZctzmpJmf1j0a+MhyOmLVKDh+o+2zhc0+ZoAQ==" - } -} - -19:50:56.177 [ws-worker-15] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=3 thisLineNumber=1 prevLineHashLen=32 -19:50:56.181 [ws-worker-15] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=4, newHash=19880937218627be0e363b2777e9806a11f88207e075cef525c94f5fafec9dd8 -19:50:56.181 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-31","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"19880937218627be0e363b2777e9806a11f88207e075cef525c94f5fafec9dd8","ok":true}} -19:50:56.183 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-32", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 5, - "prevBlockHash": "19880937218627be0e363b2777e9806a11f88207e075cef525c94f5fafec9dd8", - "blockBytesB64": "AAAZiAk3IYYnvg42Oyd36YBqEfiCB+B1zvUlyU9fr+yd2AAAAKEAAAAFAAAAAGm61/AAAQALAAEAAAACAAAABBmICTchhie+DjY7J3fpgGoR+IIH4HXO9SXJT1+v7J3YAAAAAgAAAAM6bLYOK/6wAdVEpoVkxi7kgL8sYuCNYpJuDOifyklXsAAXVTE6IE5ld3MgcG9zdCAjMCAoRURJVCkBAAvnk2gD+CI2Bf/S5T1tXv/aN9MxlY0SWQUgnsEqiiXc2OwIh1AyaJ16lVJ0vb5Rot2tJcfY5dnAxnKXAQNa+Qk=" - } -} - -19:50:56.185 [ws-worker-16] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=11 lineCode=2 prevLineNumber=4 thisLineNumber=2 prevLineHashLen=32 -19:50:56.189 [ws-worker-16] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=5, newHash=af0e59f3867349bc9bb0d88eb5b2b81c69625ae3776eec165fa751cbef134f00 -19:50:56.189 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-32","status":200,"payload":{"serverLastGlobalNumber":5,"serverLastGlobalHash":"af0e59f3867349bc9bb0d88eb5b2b81c69625ae3776eec165fa751cbef134f00","ok":true}} -19:50:56.191 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-33", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm61/AAAAAAAAFTSGlOZQlUZXN0VXNlcjIBANhRCWAKugrXoQwcWU821VDAg2U96Si9r3hx5irscfyN/N70vJJhkigC955nD9cWwoWSkEHvK2BZHzr9GpiNuAY=" - } -} - -19:50:56.193 [ws-worker-1] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:56.196 [ws-worker-1] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=0, newHash=1f9c4b8ae39fa0b21fe15187a0a5655ddbbda995f187a7fd704e3caf4ceb74d6 -19:50:56.197 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-33","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"1f9c4b8ae39fa0b21fe15187a0a5655ddbbda995f187a7fd704e3caf4ceb74d6","ok":true}} -19:50:56.201 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-34", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 6, - "prevBlockHash": "af0e59f3867349bc9bb0d88eb5b2b81c69625ae3776eec165fa751cbef134f00", - "blockBytesB64": "AACvDlnzhnNJvJuw2I61srgcaWJa43du7BZfp1HL7xNPAAAAAJYAAAAGAAAAAGm61/AAAwAeAAEAAAAAAAAAAFmmCBXO8bKuNDC1jEyUYlxnY655U2DrisygdjRIl099AAAAAQ1UZXN0VXNlcjItMDAxAAAAAB+cS4rjn6CyH+FRh6ClZV3bvamV8Yen/XBOPK9M63TWAQD8tAwtHMnZeLy3SRlkvch66YGTpCJbJpIkjazVTdup//T1VmwTJuLmXO08g7Mod1CrlA4oDKv5CXps86tGnqcI" - } -} - -19:50:56.205 [ws-worker-2] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -19:50:56.210 [ws-worker-2] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=6, newHash=401ad9dc2b51f8c1977bdc9d4591b6d49d6c1d9fe33267c248db6ce57c6d2d15 -19:50:56.210 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-34","status":200,"payload":{"serverLastGlobalNumber":6,"serverLastGlobalHash":"401ad9dc2b51f8c1977bdc9d4591b6d49d6c1d9fe33267c248db6ce57c6d2d15","ok":true}} -19:50:56.212 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-35", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 1, - "prevBlockHash": "1f9c4b8ae39fa0b21fe15187a0a5655ddbbda995f187a7fd704e3caf4ceb74d6", - "blockBytesB64": "AAAfnEuK45+gsh/hUYegpWVd272plfGHp/1wTjyvTOt01gAAAJYAAAABAAAAAGm61/AAAwAeAAEAAAAAAAAAAB+cS4rjn6CyH+FRh6ClZV3bvamV8Yen/XBOPK9M63TWAAAAAQ1UZXN0VXNlcjEtMDAxAAAAAkJtUN8KMrj4k6tsgWOHP1vYeD+ljrmI6jLpD8HYYCV5AQDIJqgT1fT4+j3ZxgFaigE7ABtClx3/tJEh68nOE8D4fua7J2ox4qg1zEb/11gtJYYDkii6Az2qm2EYBVnUgwoB" - } -} - -19:50:56.214 [ws-worker-3] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -19:50:56.219 [ws-worker-3] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=1, newHash=4cbc32616dc1760746990e9f5a82fef9609c758d4469f6bd59dccbec8d1703c3 -19:50:56.219 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-35","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"4cbc32616dc1760746990e9f5a82fef9609c758d4469f6bd59dccbec8d1703c3","ok":true}} -19:50:56.220 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-36", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 7, - "prevBlockHash": "401ad9dc2b51f8c1977bdc9d4591b6d49d6c1d9fe33267c248db6ce57c6d2d15", - "blockBytesB64": "AABAGtncK1H4wZd73J1FkbbUnWwdn+MyZ8JI22zlfG0tFQAAAJYAAAAHAAAAAGm61/AAAwAKAAEAAAAAAAAABkAa2dwrUfjBl3vcnUWRttSdbB2f4zJnwkjbbOV8bS0VAAAAAg1UZXN0VXNlcjItMDAxAAAAAB+cS4rjn6CyH+FRh6ClZV3bvamV8Yen/XBOPK9M63TWAQDd4/dCQKjbT1K0bwf3dpVrxqJ1gcZPPBv1jXDYI46ou2E9u9JYb3+PyBmbd07NeTVBywrfBCp1bslxJhh6yisG" - } -} - -19:50:56.225 [ws-worker-4] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=6 thisLineNumber=2 prevLineHashLen=32 -19:50:56.230 [ws-worker-4] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=7, newHash=3643c4e7602cbdd1883896562fb19d3c78153c6966f39cc243b8cbe743307b75 -19:50:56.231 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-36","status":200,"payload":{"serverLastGlobalNumber":7,"serverLastGlobalHash":"3643c4e7602cbdd1883896562fb19d3c78153c6966f39cc243b8cbe743307b75","ok":true}} -19:50:56.232 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-37", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 2, - "prevBlockHash": "4cbc32616dc1760746990e9f5a82fef9609c758d4469f6bd59dccbec8d1703c3", - "blockBytesB64": "AABMvDJhbcF2B0aZDp9agv75YJx1jURp9r1Z3MvsjRcDwwAAAJYAAAACAAAAAGm61/AAAwAKAAEAAAAAAAAAAUy8MmFtwXYHRpkOn1qC/vlgnHWNRGn2vVncy+yNFwPDAAAAAg1UZXN0VXNlcjEtMDAxAAAAAFmmCBXO8bKuNDC1jEyUYlxnY655U2DrisygdjRIl099AQDI5NhZqKj0KKq7s33Oc/GOUPuEVO1cNS5HvrfGwFFIZQfNQUlcFDwo3CDVBandL0RHiVO9KfQkZKtMLv7omU4E" - } -} - -19:50:56.235 [ws-worker-5] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=1 thisLineNumber=2 prevLineHashLen=32 -19:50:56.240 [ws-worker-5] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=2, newHash=e67b3e4744f422c6c6d2a3bca793ec252eb8178ba2ed6bce502e74a4c0526d3c -19:50:56.240 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-37","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"e67b3e4744f422c6c6d2a3bca793ec252eb8178ba2ed6bce502e74a4c0526d3c","ok":true}} -19:50:56.241 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-38", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 8, - "prevBlockHash": "3643c4e7602cbdd1883896562fb19d3c78153c6966f39cc243b8cbe743307b75", - "blockBytesB64": "AAA2Q8TnYCy90Yg4llYvsZ08eBU8aWbznMJDuMvnQzB7dQAAAJYAAAAIAAAAAGm61/AAAwAUAAEAAAAAAAAABzZDxOdgLL3RiDiWVi+xnTx4FTxpZvOcwkO4y+dDMHt1AAAAAw1UZXN0VXNlcjItMDAxAAAAAB+cS4rjn6CyH+FRh6ClZV3bvamV8Yen/XBOPK9M63TWAQAjACwOB1sNz4Li/YRA9eVzZlIhK1yXBTW+HloMfP/fq6VxGLUcSNcNpFVQfRDNxqjavr78u7hzoWtET/k3c90L" - } -} - -19:50:56.244 [ws-worker-6] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=7 thisLineNumber=3 prevLineHashLen=32 -19:50:56.249 [ws-worker-6] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=8, newHash=4697759870b65758d327a88c5abb276d6070c4ff6b4f9e32ece019aeb7e111f2 -19:50:56.249 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-38","status":200,"payload":{"serverLastGlobalNumber":8,"serverLastGlobalHash":"4697759870b65758d327a88c5abb276d6070c4ff6b4f9e32ece019aeb7e111f2","ok":true}} -19:50:56.251 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-39", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 3, - "prevBlockHash": "e67b3e4744f422c6c6d2a3bca793ec252eb8178ba2ed6bce502e74a4c0526d3c", - "blockBytesB64": "AADmez5HRPQixsbSo7ynk+wlLrgXi6Lta85QLnSkwFJtPAAAAJYAAAADAAAAAGm61/AAAwAUAAEAAAAAAAAAAuZ7PkdE9CLGxtKjvKeT7CUuuBeLou1rzlAudKTAUm08AAAAAw1UZXN0VXNlcjEtMDAxAAAAAFmmCBXO8bKuNDC1jEyUYlxnY655U2DrisygdjRIl099AQCdSKrQxe0sq/H/uEoMsd94syx5mbYeuxg2OFaAy2YENnExx+D63/r0otn+Z+qiy3wfjEypipVm5LLrz/7z0q0C" - } -} - -19:50:56.254 [ws-worker-7] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=2 thisLineNumber=3 prevLineHashLen=32 -19:50:56.259 [ws-worker-7] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=3, newHash=0cf2cafaac646999f5812035e7facff61a31daa0bfdb61ddd04a7af752a20965 -19:50:56.259 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-39","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"0cf2cafaac646999f5812035e7facff61a31daa0bfdb61ddd04a7af752a20965","ok":true}} -19:50:56.262 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-40", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 4, - "prevBlockHash": "0cf2cafaac646999f5812035e7facff61a31daa0bfdb61ddd04a7af752a20965", - "blockBytesB64": "AAAM8sr6rGRpmfWBIDXn+s/2GjHaoL/bYd3QSnr3UqIJZQAAAJYAAAAEAAAAAGm61/AAAQAUAAENVGVzdFVzZXIxLTAwMQAAAAM6bLYOK/6wAdVEpoVkxi7kgL8sYuCNYpJuDOifyklXsAAqVTI6IHJlcGx5IHRvIFUxIE5ld3MgcG9zdCAjMCAoY3Jvc3MtY2hhaW4pAQDW+riA6uBA4VqymW7NpnDwO8jG4RVlc7Asj6GgWVY0dD8NoTY8MxYEWuR6pgVpcbUVp6p+KxiIIdCkj1M/UmkJ" - } -} - -19:50:56.265 [ws-worker-8] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=20 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:56.268 [ws-worker-8] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=4, newHash=a85ebca5a4d1491704fcd09cd40ae34eba090b5c21a5f4db28480a1895ced0fe -19:50:56.269 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-40","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"a85ebca5a4d1491704fcd09cd40ae34eba090b5c21a5f4db28480a1895ced0fe","ok":true}} -19:50:56.270 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-41", - "payload": { - "blockchainName": "TestUser3-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm61/AAAAAAAAFTSGlOZQlUZXN0VXNlcjMBAHKyHu3y8867ERkfBKikcgE7hNiko/RPTLAetaDtAFdnr2iFiE5utbqxlPJQA1zG9qoYqSuEVNjOJ7eBDv87pQI=" - } -} - -19:50:56.272 [ws-worker-9] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -19:50:56.277 [ws-worker-9] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser3, blockchainName=TestUser3-001, blockNumber=0, newHash=c9309a758fd36eaeab81b59333e91a9a05741ad1529ae81e3a278bc8b8328a59 -19:50:56.278 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-41","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"c9309a758fd36eaeab81b59333e91a9a05741ad1529ae81e3a278bc8b8328a59","ok":true}} -19:50:56.280 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-42", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 9, - "prevBlockHash": "4697759870b65758d327a88c5abb276d6070c4ff6b4f9e32ece019aeb7e111f2", - "blockBytesB64": "AABGl3WYcLZXWNMnqIxauydtYHDE/2tPnjLs4Bmut+ER8gAAAJYAAAAJAAAAAGm61/AAAwAUAAEAAAAAAAAACEaXdZhwtldY0yeojFq7J21gcMT/a0+eMuzgGa634RHyAAAABA1UZXN0VXNlcjMtMDAxAAAAAMkwmnWP026uq4G1kzPpGpoFdBrRUproHjoni8i4MopZAQCuydaccgr+tCKgUtg7JdGATOfpp3jjWUHV78RKkwGM9aHUVX1xVE5GrGNw9ShtzVi9yolZrTZZxvM7xk/VElIK" - } -} - -19:50:56.285 [ws-worker-10] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=8 thisLineNumber=4 prevLineHashLen=32 -19:50:56.289 [ws-worker-10] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=9, newHash=2633e67844d24dc028944bea2191782976a7da354f817d8c2d8e53b65084e364 -19:50:56.290 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-42","status":200,"payload":{"serverLastGlobalNumber":9,"serverLastGlobalHash":"2633e67844d24dc028944bea2191782976a7da354f817d8c2d8e53b65084e364","ok":true}} -19:50:56.291 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-43", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 10, - "prevBlockHash": "2633e67844d24dc028944bea2191782976a7da354f817d8c2d8e53b65084e364", - "blockBytesB64": "AAAmM+Z4RNJNwCiUS+ohkXgpdqfaNU+BfYwtjlO2UITjZAAAAJYAAAAKAAAAAGm61/AAAwAVAAEAAAAAAAAACSYz5nhE0k3AKJRL6iGReCl2p9o1T4F9jC2OU7ZQhONkAAAABQ1UZXN0VXNlcjItMDAxAAAAAB+cS4rjn6CyH+FRh6ClZV3bvamV8Yen/XBOPK9M63TWAQAQXUCyi/p3y72IvGiA4Whjyn38C2bLdDmXv9IPeWHeA9N5GTPIxv+1FY7WswwOUQQHXQT1UN2F8fVjS0VdwgQP" - } -} - -19:50:56.295 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=21 lineCode=0 prevLineNumber=9 thisLineNumber=5 prevLineHashLen=32 -19:50:56.300 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=10, newHash=a185cbfed7d38bd93430792e35da84a06f5b3f490e5db626bf69962c9c94218a -19:50:56.301 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-43","status":200,"payload":{"serverLastGlobalNumber":10,"serverLastGlobalHash":"a185cbfed7d38bd93430792e35da84a06f5b3f490e5db626bf69962c9c94218a","ok":true}} -19:50:56.302 [qtp1582446160-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.308 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56484 -19:50:56.310 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-44", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773852656302, - "value": "Anna", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "YEwwP8LeJCRumLWz71hsSoIgy6DT0HbTIZVtnm6Fzyohmg2tuV06AHPaaUj4EEXgOLUBBoF+lmQ0fkBP2ggFDg==" - } -} - -19:50:56.315 [ws-worker-12] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773852656302 -19:50:56.319 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-44","status":200,"payload":{"ok":true}} -19:50:56.321 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.323 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56488 -19:50:56.324 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-45", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -19:50:56.329 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-45","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773852656302,"value":"Anna","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"YEwwP8LeJCRumLWz71hsSoIgy6DT0HbTIZVtnm6Fzyohmg2tuV06AHPaaUj4EEXgOLUBBoF+lmQ0fkBP2ggFDg==","ok":true}} -19:50:56.331 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.334 [qtp1582446160-57] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56500 -19:50:56.335 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-46", - "payload": { - "login": "TestUser1", - "param": "profile:city", - "time_ms": 1773852656312, - "value": "Amsterdam", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "XuuU9rHiiDu7YQYDRoa0fBXeqjOiCpC0KEtb8Lnm3BCspzFgHoRKWRweDZNbHfI8s2SeQI6lA0QhquWE/CP4BA==" - } -} - -19:50:56.337 [ws-worker-14] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:city, time_ms=1773852656312 -19:50:56.339 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-46","status":200,"payload":{"ok":true}} -19:50:56.340 [qtp1582446160-57] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.343 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56512 -19:50:56.344 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-47", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773852656322, - "value": "Anna Updated", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "mK60/dI/E6T1PoMgrIP8ekEwcCKSXr6QeAVwIca+rTniFu9MMirNMJixi7MFQ3del0lt6Ke87nt6rTMGCnBACg==" - } -} - -19:50:56.347 [ws-worker-15] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773852656322 -19:50:56.350 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-47","status":200,"payload":{"ok":true}} -19:50:56.351 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.354 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56526 -19:50:56.354 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-48", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -19:50:56.356 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-48","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773852656322,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"mK60/dI/E6T1PoMgrIP8ekEwcCKSXr6QeAVwIca+rTniFu9MMirNMJixi7MFQ3del0lt6Ke87nt6rTMGCnBACg==","ok":true}} -19:50:56.357 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.359 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56532 -19:50:56.360 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListUserParams", - "requestId": "it-listparams-49", - "payload": { "login": "TestUser1" } -} - -19:50:56.363 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListUserParams","requestId":"it-listparams-49","status":200,"payload":{"login":"TestUser1","params":[{"login":"TestUser1","param":"profile:name","time_ms":1773852656322,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"mK60/dI/E6T1PoMgrIP8ekEwcCKSXr6QeAVwIca+rTniFu9MMirNMJixi7MFQ3del0lt6Ke87nt6rTMGCnBACg=="},{"login":"TestUser1","param":"profile:city","time_ms":1773852656312,"value":"Amsterdam","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"XuuU9rHiiDu7YQYDRoa0fBXeqjOiCpC0KEtb8Lnm3BCspzFgHoRKWRweDZNbHfI8s2SeQI6lA0QhquWE/CP4BA=="}],"ok":true}} -19:50:56.364 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -19:50:56.367 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:56542 -19:50:56.368 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-50", - "payload": { - "login": "TestUser1" - } -} - -19:50:56.371 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-50","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -19:50:56.372 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-51", - "payload": { - "login": "Testuser1" - } -} - -19:50:56.374 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-51","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -19:50:56.375 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-52", - "payload": { - "login": "TestUser2" - } -} - -19:50:56.378 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-52","status":200,"payload":{"login":"TestUser2","out_friends":["TestUser1"],"in_friends":["TestUser1"],"ok":true}} -19:50:56.380 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:06.372 [wsServer-thread] INFO s.ws.BlockchainTmpRecoveryOnStartup - 🟢 BlockchainTmpRecovery: временных *.tmp_bch файлов не найдено — восстановление не требуется. -20:03:06.416 [wsServer-thread] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.18+8-Ubuntu-124.04.1 -20:03:06.463 [wsServer-thread] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@2b7f2622{/,null,AVAILABLE} -20:03:06.469 [wsServer-thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@56ee516b{HTTP/1.1, (http/1.1)}{0.0.0.0:7070} -20:03:06.473 [wsServer-thread] INFO org.eclipse.jetty.server.Server - Started Server@3171580c{STARTING}[11.0.20,sto=0] @722ms -20:03:06.473 [wsServer-thread] INFO server.ws.WsServer - ✅ WS сервер запущен на ws://localhost:7070/ws -20:03:07.292 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43900 -20:03:07.321 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-1", - "payload": { - "login": "TestUser1", - "blockchainName": "TestUser1-001", - "solanaKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "blockchainKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "deviceKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "bchLimit": 50000000 - } -} - -20:03:07.383 [ws-worker-1] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser1, blockchainName=TestUser1-001, limit=50000000 -20:03:07.397 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-1","status":200,"payload":{"ok":true}} -20:03:07.402 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-2", - "payload": { - "login": "TestUser1" - } -} - -20:03:07.406 [ws-worker-2] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -20:03:07.409 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-2","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -20:03:07.413 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-3", - "payload": { - "login": "TestUser2", - "blockchainName": "TestUser2-001", - "solanaKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "blockchainKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "deviceKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "bchLimit": 50000000 - } -} - -20:03:07.418 [ws-worker-3] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser2, blockchainName=TestUser2-001, limit=50000000 -20:03:07.419 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-3","status":200,"payload":{"ok":true}} -20:03:07.420 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-4", - "payload": { - "login": "TestUser2" - } -} - -20:03:07.422 [ws-worker-4] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser2, blockchainName=TestUser2-001 -20:03:07.422 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-4","status":200,"payload":{"exists":true,"login":"TestUser2","blockchainName":"TestUser2-001","solanaKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","blockchainKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","deviceKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","ok":true}} -20:03:07.426 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-5", - "payload": { - "login": "TestUser3", - "blockchainName": "TestUser3-001", - "solanaKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "blockchainKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "deviceKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "bchLimit": 50000000 - } -} - -20:03:07.432 [ws-worker-5] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser3, blockchainName=TestUser3-001, limit=50000000 -20:03:07.432 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-5","status":200,"payload":{"ok":true}} -20:03:07.434 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-6", - "payload": { - "login": "TestUser3" - } -} - -20:03:07.436 [ws-worker-6] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser3, blockchainName=TestUser3-001 -20:03:07.436 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-6","status":200,"payload":{"exists":true,"login":"TestUser3","blockchainName":"TestUser3-001","solanaKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","blockchainKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","deviceKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","ok":true}} -20:03:07.441 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-7", - "payload": { - "login": "Testuser1" - } -} - -20:03:07.442 [ws-worker-7] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -20:03:07.443 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-7","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -20:03:07.445 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-8", - "payload": { - "login": "NoSuchUser_987654321" - } -} - -20:03:07.448 [ws-worker-8] INFO s.l.w.J.h.t.Net_GetUser_Handler - ℹ️ GetUser: not found for login=NoSuchUser_987654321 -20:03:07.448 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-8","status":200,"payload":{"exists":false,"ok":true}} -20:03:07.451 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SearchUsers", - "requestId": "it-searchusers-9", - "payload": { - "prefix": "Tes" - } -} - -20:03:07.454 [ws-worker-9] INFO s.l.w.J.h.t.Net_SearchUsers_Handler - ✅ SearchUsers ok: prefix='Tes' -> 3 -20:03:07.457 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SearchUsers","requestId":"it-searchusers-9","status":200,"payload":{"logins":["TestUser1","TestUser2","TestUser3"],"ok":true}} -20:03:07.464 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.467 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43912 -20:03:07.469 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-10", - "payload": { "login": "TestUser1" } -} - -20:03:07.474 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-10","status":200,"payload":{"authNonce":"sSuymbw7nDzzKPjkrbvq9OIsPHTCzY2fVRrkhDqFW5c","ok":true}} -20:03:07.484 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-11", - "payload": { - "storagePwd": "pwd-2292340076703", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773853387479, - "signatureB64": "5vW5sYpz03DvfvjjybWGUDj7RfJRUiK910qaU+T0uIUXB0FQypj2rfrazTm8d4vuE7HnP3BDEDstyqKQaUoaAA==", - "clientInfo": "it-tests" - } -} - -20:03:07.499 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-11","status":200,"payload":{"sessionId":"m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ","ok":true}} -20:03:07.501 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.503 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43928 -20:03:07.504 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-12", - "payload": { "login": "TestUser1" } -} - -20:03:07.506 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-12","status":200,"payload":{"authNonce":"u20qOyJllqsoZW5+IWJ5Hl1QkSQN75l60od1sMrRmac","ok":true}} -20:03:07.508 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-13", - "payload": { - "storagePwd": "pwd-2292368793590", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773853387507, - "signatureB64": "1xnPh6e8C6zSB71Iy7kfPxJvcAQ4V6pV9++4gdKwUguMUHlmOi10vl3zNk9sJ/dXwTuX8jLxO7RTz+UoKvSuDQ==", - "clientInfo": "it-tests" - } -} - -20:03:07.513 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-13","status":200,"payload":{"sessionId":"/y+FLlx7puXqypi/ZG7X/Cw5jPJjQQW6IgnH8RLpxrY","ok":true}} -20:03:07.515 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.518 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43940 -20:03:07.519 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-14", - "payload": { "login": "TestUser1" } -} - -20:03:07.522 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-14","status":200,"payload":{"authNonce":"VUifLSSNr7VzzgIEC6TmaB1vQwIw7j+JkqvAj196o5w","ok":true}} -20:03:07.523 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-15", - "payload": { - "storagePwd": "pwd-2292384075619", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773853387522, - "signatureB64": "U5yubgoD8aztttjB2MoKOgyXc0OiZRYd5CLPf+5VblKNMCFFGoZq8ptbrqMQQtK92cgU7V10/U/ZJ0EjwhNECg==", - "clientInfo": "it-tests" - } -} - -20:03:07.530 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-15","status":200,"payload":{"sessionId":"FMGRbmx9bFk4Hbt+lZmCqioGYqI6YWUFN/GCVKTTWDs","ok":true}} -20:03:07.531 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.534 [qtp1582446160-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43946 -20:03:07.536 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-16", - "payload": { - "sessionId": "m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ" - } -} - -20:03:07.541 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-16","status":200,"payload":{"nonce":"spjb1JqHiEmT8rQ0tSsRKmU5wT6hgfvtcEt7B74CXZo","ok":true}} -20:03:07.545 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-17", - "payload": { - "sessionId": "m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ", - "timeMs": 1773853387543, - "signatureB64": "sRkFWbDfBYEjg81elF0REtPwFjNnSwdnKv7jxOGg4VgbGTj2jD9v1YaOMJUuKHwMHS270j/rRE550nCywFMMBw==", - "clientInfo": "it-tests" - } -} - -20:03:07.553 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-17","status":200,"payload":{"storagePwd":"pwd-2292340076703","ok":true}} -20:03:07.555 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-18", - "payload": { - } -} - -20:03:07.561 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-18","status":200,"payload":{"sessions":[{"sessionId":"m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773853387549},{"sessionId":"/y+FLlx7puXqypi/ZG7X/Cw5jPJjQQW6IgnH8RLpxrY","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773853387509},{"sessionId":"FMGRbmx9bFk4Hbt+lZmCqioGYqI6YWUFN/GCVKTTWDs","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773853387525}],"ok":true}} -20:03:07.563 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.566 [qtp1582446160-31] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43948 -20:03:07.567 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-19", - "payload": { "login": "TestUser1" } -} - -20:03:07.569 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-19","status":200,"payload":{"authNonce":"PiAdHZ2A009XEjNyh2vwa+1193seaS6VCCrjYgovBrE","ok":true}} -20:03:07.570 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-20", - "payload": { - "storagePwd": "pwd-2292431150330", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773853387569, - "signatureB64": "nGzeNeXv2hwq4AT10AbVlYaU2pkWZ6dAVd/xsBdRRm5pJDu2ayNEBcpFW0hsLgmC1YxDrNLi1Nx/dt1orooEDg==", - "clientInfo": "it-tests" - } -} - -20:03:07.576 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-20","status":200,"payload":{"sessionId":"kUDSYfGd80ox+TUezRJAMjJ+x3lL8itjN5wjLPGbYmM","ok":true}} -20:03:07.577 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.579 [qtp1582446160-32] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43964 -20:03:07.580 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-21", - "payload": { - "sessionId": "m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ" - } -} - -20:03:07.583 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-21","status":200,"payload":{"nonce":"WZAxPWMlNVqx50PKR4VRAeaduoqxGZO1SWRsaZkcCdY","ok":true}} -20:03:07.584 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-22", - "payload": { - "sessionId": "m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ", - "timeMs": 1773853387583, - "signatureB64": "NCzekdhx3YUxCGzINi2trKjkSMxCDCGTMI0z58rqwraWy7oReFCcF21H9X96sdJos4tD/1hT2DG+/Qv32CecBA==", - "clientInfo": "it-tests" - } -} - -20:03:07.591 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-22","status":200,"payload":{"storagePwd":"pwd-2292340076703","ok":true}} -20:03:07.592 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CloseActiveSession", - "requestId": "it-close-23", - "payload": { - "sessionId": "kUDSYfGd80ox+TUezRJAMjJ+x3lL8itjN5wjLPGbYmM" - } -} - -20:03:07.599 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CloseActiveSession","requestId":"it-close-23","status":200,"payload":{"ok":true}} -20:03:07.600 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.602 [qtp1582446160-25] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43972 -20:03:07.603 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-24", - "payload": { - "sessionId": "m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ" - } -} - -20:03:07.605 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-24","status":200,"payload":{"nonce":"wfnMsI4cjfDcCbUvbuHtcgtigQmEX+CP/7c3TgiI+lI","ok":true}} -20:03:07.606 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-25", - "payload": { - "sessionId": "m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ", - "timeMs": 1773853387605, - "signatureB64": "832omfc69LF/5UW3Ay+qtaKzau88gY+6g1nQvQjaAtewWmHgnSjcNzUxj+Qpm2pGCfKBliVUEco6LXSzgqTfDg==", - "clientInfo": "it-tests" - } -} - -20:03:07.613 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-25","status":200,"payload":{"storagePwd":"pwd-2292340076703","ok":true}} -20:03:07.614 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-26", - "payload": { - } -} - -20:03:07.617 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-26","status":200,"payload":{"sessions":[{"sessionId":"m9AKXbbaru+SuoW1Y8XRBnLnMC8/wahapgrkJ9/B5uQ","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773853387609},{"sessionId":"/y+FLlx7puXqypi/ZG7X/Cw5jPJjQQW6IgnH8RLpxrY","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773853387509},{"sessionId":"FMGRbmx9bFk4Hbt+lZmCqioGYqI6YWUFN/GCVKTTWDs","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773853387525}],"ok":true}} -20:03:07.619 [qtp1582446160-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.622 [qtp1582446160-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43982 -20:03:07.634 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-27", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm62ssAAAAAAAFTSGlOZQlUZXN0VXNlcjEBAJ9Okxv/F54WE85v9jW8Cq+aBnIpzTLS8EEfIWlKJ1KWV85vq/K7MnDCAjpcxqiza9Km6mqsRO9VZDwnvjXYegU=" - } -} - -20:03:07.641 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:03:07.646 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=0, newHash=acda2f54ccf6b0cc02254c5e02541dfa12a47c2c125c95668df002a6a3f941a9 -20:03:07.649 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-27","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"acda2f54ccf6b0cc02254c5e02541dfa12a47c2c125c95668df002a6a3f941a9","ok":true}} -20:03:07.653 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-28", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 1, - "prevBlockHash": "acda2f54ccf6b0cc02254c5e02541dfa12a47c2c125c95668df002a6a3f941a9", - "blockBytesB64": "AACs2i9UzPawzAIlTF4CVB36EqR8LBJclWaN8AKmo/lBqQAAAIEAAAABAAAAAGm62ssAAQAKAAEAAAAAAAAAAKzaL1TM9rDMAiVMXgJUHfoSpHwsElyVZo3wAqaj+UGpAAAAAAAbVTE6IHN0b3J5L3Bvc3QgaW4gY2hhbm5lbCAwAQB2XMPmEhmbArjkZNa/QvlXQXhTYJwygItvflkbMwjKWt6/ooExeG+MYnOhGLafoLQNrXmyw5VyRwYOlk89DAwP" - } -} - -20:03:07.658 [ws-worker-12] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=0 prevLineNumber=0 thisLineNumber=0 prevLineHashLen=32 -20:03:07.663 [ws-worker-12] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=1, newHash=d4a1d4159f856eca79465add4578abf150394dbb58c05c6dfca07f120295f9e0 -20:03:07.663 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-28","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"d4a1d4159f856eca79465add4578abf150394dbb58c05c6dfca07f120295f9e0","ok":true}} -20:03:07.665 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-29", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 2, - "prevBlockHash": "d4a1d4159f856eca79465add4578abf150394dbb58c05c6dfca07f120295f9e0", - "blockBytesB64": "AADUodQVn4VuynlGWt1FeKvxUDlNu1jAXG38oH8SApX54AAAAGkAAAACAAAAAGm62ssAAAABAAEAAAAAAAAAAKzaL1TM9rDMAiVMXgJUHfoSpHwsElyVZo3wAqaj+UGpAAAAAQROZXdzAQA1hJQKmCFm0GqtgIFi/+M5BkrpQ53RMBcNgZdYyOuUm3mUoMves2YTVmzattXWC9hnQwVuMcL9eurzxPqta2QL" - } -} - -20:03:07.670 [ws-worker-13] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=1 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:03:07.675 [ws-worker-13] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=2, newHash=02776649caa3367594083f995f01a87b169a664969b01573401ab3d9be3ab4a2 -20:03:07.675 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-29","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"02776649caa3367594083f995f01a87b169a664969b01573401ab3d9be3ab4a2","ok":true}} -20:03:07.678 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-30", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 3, - "prevBlockHash": "02776649caa3367594083f995f01a87b169a664969b01573401ab3d9be3ab4a2", - "blockBytesB64": "AAACd2ZJyqM2dZQIP5lfAah7FppmSWmwFXNAGrPZvjq0ogAAAHYAAAADAAAAAGm62ssAAQAKAAEAAAACAAAAAgJ3ZknKozZ1lAg/mV8BqHsWmmZJabAVc0Aas9m+OrSiAAAAAAAQVTE6IE5ld3MgcG9zdCAjMAEADfWHKHYR9K9woIATsvkCeig2DbNGBmopJMxp/1FgsLB8HxR2jkeeZTqvX8Na5BfhhSTpFQMQFV4KsCtiqJYICQ==" - } -} - -20:03:07.683 [ws-worker-14] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=2 thisLineNumber=0 prevLineHashLen=32 -20:03:07.688 [ws-worker-14] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=3, newHash=dcbc2f265f7cbaf22bc70eb370c99057adc71adb6f63666725edf7b76cacd42d -20:03:07.688 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-30","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"dcbc2f265f7cbaf22bc70eb370c99057adc71adb6f63666725edf7b76cacd42d","ok":true}} -20:03:07.691 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-31", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 4, - "prevBlockHash": "dcbc2f265f7cbaf22bc70eb370c99057adc71adb6f63666725edf7b76cacd42d", - "blockBytesB64": "AADcvC8mX3y68ivHDrNwyZBXrcca229jZmcl7fe3bKzULQAAAHYAAAAEAAAAAGm62ssAAQAKAAEAAAACAAAAA9y8LyZffLryK8cOs3DJkFetxxrbb2NmZyXt97dsrNQtAAAAAQAQVTE6IE5ld3MgcG9zdCAjMQEAzpAcw0so8t6KPQhlCUsiH2hff3SXKG6j5YDrUynvoRoVJgTtZaB7vgZ+9VNYEHfvQjkOP1BA9DS+dfN4sbKZCg==" - } -} - -20:03:07.697 [ws-worker-15] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=3 thisLineNumber=1 prevLineHashLen=32 -20:03:07.702 [ws-worker-15] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=4, newHash=89cca68bf6cc44260666a122fd4c6dab71c8307f4877c789fe34c503c1d53239 -20:03:07.702 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-31","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"89cca68bf6cc44260666a122fd4c6dab71c8307f4877c789fe34c503c1d53239","ok":true}} -20:03:07.704 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-32", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 5, - "prevBlockHash": "89cca68bf6cc44260666a122fd4c6dab71c8307f4877c789fe34c503c1d53239", - "blockBytesB64": "AACJzKaL9sxEJgZmoSL9TG2rccgwf0h3x4n+NMUDwdUyOQAAAKEAAAAFAAAAAGm62ssAAQALAAEAAAACAAAABInMpov2zEQmBmahIv1MbatxyDB/SHfHif40xQPB1TI5AAAAAgAAAAPcvC8mX3y68ivHDrNwyZBXrcca229jZmcl7fe3bKzULQAXVTE6IE5ld3MgcG9zdCAjMCAoRURJVCkBANmyDxYZqiZqGQnB4ntuLXIdfQZSRAwH0nwXvJq8oy63uLyrpFH6Jvpslec+zdLFEnTYfCmxqeV4V8sR3qBhzQ8=" - } -} - -20:03:07.706 [ws-worker-16] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=11 lineCode=2 prevLineNumber=4 thisLineNumber=2 prevLineHashLen=32 -20:03:07.710 [ws-worker-16] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=5, newHash=09add1c64325dae730c19046ee3810d35132e060aec4ffba443ffaf3bd8da0ba -20:03:07.710 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-32","status":200,"payload":{"serverLastGlobalNumber":5,"serverLastGlobalHash":"09add1c64325dae730c19046ee3810d35132e060aec4ffba443ffaf3bd8da0ba","ok":true}} -20:03:07.712 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-33", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm62ssAAAAAAAFTSGlOZQlUZXN0VXNlcjIBAJzp6aNoXBfgvdhp3Q82Dn1btF+NuLhi/Setz7afB+zLRoM8N21weBl4d7smID1kDA0xEpJQalxqviXAT5k/QQ4=" - } -} - -20:03:07.714 [ws-worker-1] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:03:07.719 [ws-worker-1] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=0, newHash=518a5c00368b9cfa172d12af0c3929edaf0b1e4aa28917845e7f4667968080b7 -20:03:07.719 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-33","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"518a5c00368b9cfa172d12af0c3929edaf0b1e4aa28917845e7f4667968080b7","ok":true}} -20:03:07.725 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-34", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 6, - "prevBlockHash": "09add1c64325dae730c19046ee3810d35132e060aec4ffba443ffaf3bd8da0ba", - "blockBytesB64": "AAAJrdHGQyXa5zDBkEbuOBDTUTLgYK7E/7pEP/rzvY2gugAAAJYAAAAGAAAAAGm62ssAAwAeAAEAAAAAAAAAAKzaL1TM9rDMAiVMXgJUHfoSpHwsElyVZo3wAqaj+UGpAAAAAQ1UZXN0VXNlcjItMDAxAAAAAFGKXAA2i5z6Fy0Srww5Ke2vCx5KookXhF5/RmeWgIC3AQCblT45B+DhKBZ5ZTdTnK1TB74c8VPfccwFhT6Ugcac9MMsTAWfSPJ0/gfOu8islgUduOg4jvUsYiy7NwB8OGAE" - } -} - -20:03:07.731 [ws-worker-2] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:03:07.736 [ws-worker-2] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=6, newHash=74508c35a6f1140e327894851f8dc1b56a35ea6d9169aa8fd129d241628a9edd -20:03:07.737 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-34","status":200,"payload":{"serverLastGlobalNumber":6,"serverLastGlobalHash":"74508c35a6f1140e327894851f8dc1b56a35ea6d9169aa8fd129d241628a9edd","ok":true}} -20:03:07.738 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-35", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 1, - "prevBlockHash": "518a5c00368b9cfa172d12af0c3929edaf0b1e4aa28917845e7f4667968080b7", - "blockBytesB64": "AABRilwANouc+hctEq8MOSntrwseSqKJF4Ref0ZnloCAtwAAAJYAAAABAAAAAGm62ssAAwAeAAEAAAAAAAAAAFGKXAA2i5z6Fy0Srww5Ke2vCx5KookXhF5/RmeWgIC3AAAAAQ1UZXN0VXNlcjEtMDAxAAAAAgJ3ZknKozZ1lAg/mV8BqHsWmmZJabAVc0Aas9m+OrSiAQASX9no/OV+1G+dRtexhicmlhQn3Klz99gOOJRsqqcmTWGNua2ZnqkBTGPf5HAJ6MwEhSnaiI6Ha87gn72BKPsK" - } -} - -20:03:07.741 [ws-worker-3] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:03:07.746 [ws-worker-3] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=1, newHash=1bdf45271c7af830af5d7dc101ce51dc9b166ddabff1510d151da2ca23dcd1df -20:03:07.746 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-35","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"1bdf45271c7af830af5d7dc101ce51dc9b166ddabff1510d151da2ca23dcd1df","ok":true}} -20:03:07.747 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-36", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 7, - "prevBlockHash": "74508c35a6f1140e327894851f8dc1b56a35ea6d9169aa8fd129d241628a9edd", - "blockBytesB64": "AAB0UIw1pvEUDjJ4lIUfjcG1ajXqbZFpqo/RKdJBYoqe3QAAAJYAAAAHAAAAAGm62ssAAwAKAAEAAAAAAAAABnRQjDWm8RQOMniUhR+NwbVqNeptkWmqj9Ep0kFiip7dAAAAAg1UZXN0VXNlcjItMDAxAAAAAFGKXAA2i5z6Fy0Srww5Ke2vCx5KookXhF5/RmeWgIC3AQCxmYWpyGB/0drGHJ0wcqtOhE32yPetAbH5kwC65pifot9hhG35sg2PLCLyXgSZZWPc1cPn3eaYB0xrs/HIu3YK" - } -} - -20:03:07.751 [ws-worker-4] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=6 thisLineNumber=2 prevLineHashLen=32 -20:03:07.756 [ws-worker-4] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=7, newHash=ee7c2d5ed8df4a2caf75751bdeb6f10c5537f0c1288d6d567baec1dc86c708d2 -20:03:07.757 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-36","status":200,"payload":{"serverLastGlobalNumber":7,"serverLastGlobalHash":"ee7c2d5ed8df4a2caf75751bdeb6f10c5537f0c1288d6d567baec1dc86c708d2","ok":true}} -20:03:07.759 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-37", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 2, - "prevBlockHash": "1bdf45271c7af830af5d7dc101ce51dc9b166ddabff1510d151da2ca23dcd1df", - "blockBytesB64": "AAAb30UnHHr4MK9dfcEBzlHcmxZt2r/xUQ0VHaLKI9zR3wAAAJYAAAACAAAAAGm62ssAAwAKAAEAAAAAAAAAARvfRSccevgwr119wQHOUdybFm3av/FRDRUdosoj3NHfAAAAAg1UZXN0VXNlcjEtMDAxAAAAAKzaL1TM9rDMAiVMXgJUHfoSpHwsElyVZo3wAqaj+UGpAQC+3lFQhIy0Q/b9CSTEOPUlwr/oq4vwtaGW6Z+yUVO41IeXTgnB94uiiF8g0uJf2fjwSYoKe2WM7P6oaf5xrUID" - } -} - -20:03:07.764 [ws-worker-5] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=1 thisLineNumber=2 prevLineHashLen=32 -20:03:07.770 [ws-worker-5] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=2, newHash=e07154cea2df8177d23521d84d0df05bc6665cabb6fdcc2f357787973beda6a2 -20:03:07.770 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-37","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"e07154cea2df8177d23521d84d0df05bc6665cabb6fdcc2f357787973beda6a2","ok":true}} -20:03:07.772 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-38", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 8, - "prevBlockHash": "ee7c2d5ed8df4a2caf75751bdeb6f10c5537f0c1288d6d567baec1dc86c708d2", - "blockBytesB64": "AADufC1e2N9KLK91dRvetvEMVTfwwSiNbVZ7rsHchscI0gAAAJYAAAAIAAAAAGm62ssAAwAUAAEAAAAAAAAAB+58LV7Y30osr3V1G9628QxVN/DBKI1tVnuuwdyGxwjSAAAAAw1UZXN0VXNlcjItMDAxAAAAAFGKXAA2i5z6Fy0Srww5Ke2vCx5KookXhF5/RmeWgIC3AQCFGa/7bgaThcQ+7qcWuZOXmuJ/yInAJ6/HOHH+NnlP4eBmH5PGG5ohSPIzeFCs3COWtuh2YH02XVSxOM5NG+wH" - } -} - -20:03:07.777 [ws-worker-6] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=7 thisLineNumber=3 prevLineHashLen=32 -20:03:07.782 [ws-worker-6] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=8, newHash=450c1ea4c850b5e635ed3c37c73765eb0b384f48bb574bc9ae35b5757c9a6f40 -20:03:07.783 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-38","status":200,"payload":{"serverLastGlobalNumber":8,"serverLastGlobalHash":"450c1ea4c850b5e635ed3c37c73765eb0b384f48bb574bc9ae35b5757c9a6f40","ok":true}} -20:03:07.785 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-39", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 3, - "prevBlockHash": "e07154cea2df8177d23521d84d0df05bc6665cabb6fdcc2f357787973beda6a2", - "blockBytesB64": "AADgcVTOot+Bd9I1IdhNDfBbxmZcq7b9zC81d4eXO+2mogAAAJYAAAADAAAAAGm62ssAAwAUAAEAAAAAAAAAAuBxVM6i34F30jUh2E0N8FvGZlyrtv3MLzV3h5c77aaiAAAAAw1UZXN0VXNlcjEtMDAxAAAAAKzaL1TM9rDMAiVMXgJUHfoSpHwsElyVZo3wAqaj+UGpAQDjrjBdljtb8M51wqaj8v7MvNmCB8PD1vHhJ4dV8wkPMG8YSw2hLbf5op/KFYI3VJN3CBuSAar1F2jwkEYgJM8G" - } -} - -20:03:07.788 [ws-worker-7] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=2 thisLineNumber=3 prevLineHashLen=32 -20:03:07.793 [ws-worker-7] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=3, newHash=db482d9ea235a9bfb7df2dad6458853176cf5388d014a876d2082eaaeb303e65 -20:03:07.793 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-39","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"db482d9ea235a9bfb7df2dad6458853176cf5388d014a876d2082eaaeb303e65","ok":true}} -20:03:07.796 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-40", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 4, - "prevBlockHash": "db482d9ea235a9bfb7df2dad6458853176cf5388d014a876d2082eaaeb303e65", - "blockBytesB64": "AADbSC2eojWpv7ffLa1kWIUxds9TiNAUqHbSCC6q6zA+ZQAAAJYAAAAEAAAAAGm62ssAAQAUAAENVGVzdFVzZXIxLTAwMQAAAAPcvC8mX3y68ivHDrNwyZBXrcca229jZmcl7fe3bKzULQAqVTI6IHJlcGx5IHRvIFUxIE5ld3MgcG9zdCAjMCAoY3Jvc3MtY2hhaW4pAQCAHNVVYPjXv+GzMK3HJlYdxYJXJX3mC2NOa0zlpnxAU1ze0dBxg2T4hPCqFYGfW4oQ8AcXHxU69sn/1IFTiJ0G" - } -} - -20:03:07.798 [ws-worker-8] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=20 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:03:07.802 [ws-worker-8] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=4, newHash=94fddd34180ba45661a3bd8d6da96ed4b3df89f285367fcf9bb2c0757f7f41cf -20:03:07.803 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-40","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"94fddd34180ba45661a3bd8d6da96ed4b3df89f285367fcf9bb2c0757f7f41cf","ok":true}} -20:03:07.804 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-41", - "payload": { - "blockchainName": "TestUser3-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm62ssAAAAAAAFTSGlOZQlUZXN0VXNlcjMBANOfpG7EAU4AmiawUmIHJHuV+Czes+VVLeOZNcuGzrlBtMG2oJMVaRAKxqIJg5qtgTQqRovSJyONW8b8hS8j+w8=" - } -} - -20:03:07.807 [ws-worker-9] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:03:07.811 [ws-worker-9] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser3, blockchainName=TestUser3-001, blockNumber=0, newHash=f10c4b73671a89952f357e22e3675dff5485493082c3c36547c7a946f129bc6c -20:03:07.811 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-41","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"f10c4b73671a89952f357e22e3675dff5485493082c3c36547c7a946f129bc6c","ok":true}} -20:03:07.812 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-42", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 9, - "prevBlockHash": "450c1ea4c850b5e635ed3c37c73765eb0b384f48bb574bc9ae35b5757c9a6f40", - "blockBytesB64": "AABFDB6kyFC15jXtPDfHN2XrCzhPSLtXS8muNbV1fJpvQAAAAJYAAAAJAAAAAGm62ssAAwAUAAEAAAAAAAAACEUMHqTIULXmNe08N8c3ZesLOE9Iu1dLya41tXV8mm9AAAAABA1UZXN0VXNlcjMtMDAxAAAAAPEMS3NnGomVLzV+IuNnXf9UhUkwgsPDZUfHqUbxKbxsAQDgco2tnp0wpv9Puoixjo5A7sDF83fexCK7+Tv6KF9urQzZQNuDTlk2c0AK5DRFniRYd7kclE91B6vq3O8vvDsI" - } -} - -20:03:07.816 [ws-worker-10] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=8 thisLineNumber=4 prevLineHashLen=32 -20:03:07.820 [ws-worker-10] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=9, newHash=9bb3393a23e448e7dd94b8f2ffa9ec99159254c7d63bb233997ae6d43eee5cb7 -20:03:07.821 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-42","status":200,"payload":{"serverLastGlobalNumber":9,"serverLastGlobalHash":"9bb3393a23e448e7dd94b8f2ffa9ec99159254c7d63bb233997ae6d43eee5cb7","ok":true}} -20:03:07.822 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-43", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 10, - "prevBlockHash": "9bb3393a23e448e7dd94b8f2ffa9ec99159254c7d63bb233997ae6d43eee5cb7", - "blockBytesB64": "AACbszk6I+RI592UuPL/qeyZFZJUx9Y7sjOZeubUPu5ctwAAAJYAAAAKAAAAAGm62ssAAwAVAAEAAAAAAAAACZuzOToj5Ejn3ZS48v+p7JkVklTH1juyM5l65tQ+7ly3AAAABQ1UZXN0VXNlcjItMDAxAAAAAFGKXAA2i5z6Fy0Srww5Ke2vCx5KookXhF5/RmeWgIC3AQDCyzKB1j8koFOO1aqdtIhjk/4auUhFNgbXMOF5b3ZC1UZ8K+e1UIPhe0pnGOGdecXSKdWAC67s5aSyMuQP36EO" - } -} - -20:03:07.826 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=21 lineCode=0 prevLineNumber=9 thisLineNumber=5 prevLineHashLen=32 -20:03:07.831 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=10, newHash=b4ed134ef386f2cc8e86ebd9bacce8339fa5c707bdb0ade674205fd6137df522 -20:03:07.831 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-43","status":200,"payload":{"serverLastGlobalNumber":10,"serverLastGlobalHash":"b4ed134ef386f2cc8e86ebd9bacce8339fa5c707bdb0ade674205fd6137df522","ok":true}} -20:03:07.832 [qtp1582446160-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.837 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43986 -20:03:07.839 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-44", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773853387832, - "value": "Anna", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "PXYSV7dgrpIicBrOb2lSVRNQBpn9BMCwBQqt/j2b/zJxK9+Glo3L2sWuTm3xOn1kaOaHqHewYQSvblwhC1IiBA==" - } -} - -20:03:07.844 [ws-worker-12] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773853387832 -20:03:07.847 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-44","status":200,"payload":{"ok":true}} -20:03:07.849 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.852 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:43992 -20:03:07.854 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-45", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -20:03:07.859 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-45","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773853387832,"value":"Anna","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"PXYSV7dgrpIicBrOb2lSVRNQBpn9BMCwBQqt/j2b/zJxK9+Glo3L2sWuTm3xOn1kaOaHqHewYQSvblwhC1IiBA==","ok":true}} -20:03:07.861 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.865 [qtp1582446160-57] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44008 -20:03:07.866 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-46", - "payload": { - "login": "TestUser1", - "param": "profile:city", - "time_ms": 1773853387842, - "value": "Amsterdam", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "x1TGiWZYO/XCeXBkwOuq5UO5RvD5zFKtw1dJdmFmUfwFIN8Boc8ukfe8BfmA72tS4XTmfsqmCGcptR1RlJaVCw==" - } -} - -20:03:07.869 [ws-worker-14] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:city, time_ms=1773853387842 -20:03:07.872 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-46","status":200,"payload":{"ok":true}} -20:03:07.873 [qtp1582446160-57] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.876 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44020 -20:03:07.877 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-47", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773853387852, - "value": "Anna Updated", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "MrUl5B8N88NSfF63QqOobd5F+Pq0WFT8E+sWSny8gs3VqIKQTM/6WcwaGJeIdw0HxBE48jvyOqgM1pPod58kBg==" - } -} - -20:03:07.879 [ws-worker-15] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773853387852 -20:03:07.882 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-47","status":200,"payload":{"ok":true}} -20:03:07.883 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.886 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44028 -20:03:07.887 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-48", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -20:03:07.888 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-48","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773853387852,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"MrUl5B8N88NSfF63QqOobd5F+Pq0WFT8E+sWSny8gs3VqIKQTM/6WcwaGJeIdw0HxBE48jvyOqgM1pPod58kBg==","ok":true}} -20:03:07.889 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.892 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44032 -20:03:07.893 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListUserParams", - "requestId": "it-listparams-49", - "payload": { "login": "TestUser1" } -} - -20:03:07.896 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListUserParams","requestId":"it-listparams-49","status":200,"payload":{"login":"TestUser1","params":[{"login":"TestUser1","param":"profile:name","time_ms":1773853387852,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"MrUl5B8N88NSfF63QqOobd5F+Pq0WFT8E+sWSny8gs3VqIKQTM/6WcwaGJeIdw0HxBE48jvyOqgM1pPod58kBg=="},{"login":"TestUser1","param":"profile:city","time_ms":1773853387842,"value":"Amsterdam","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"x1TGiWZYO/XCeXBkwOuq5UO5RvD5zFKtw1dJdmFmUfwFIN8Boc8ukfe8BfmA72tS4XTmfsqmCGcptR1RlJaVCw=="}],"ok":true}} -20:03:07.898 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:03:07.901 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44040 -20:03:07.902 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-50", - "payload": { - "login": "TestUser1" - } -} - -20:03:07.905 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-50","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -20:03:07.907 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-51", - "payload": { - "login": "Testuser1" - } -} - -20:03:07.908 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-51","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -20:03:07.909 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-52", - "payload": { - "login": "TestUser2" - } -} - -20:03:07.910 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-52","status":200,"payload":{"login":"TestUser2","out_friends":["TestUser1"],"in_friends":["TestUser1"],"ok":true}} -20:03:07.911 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:51.478 [wsServer-thread] INFO s.ws.BlockchainTmpRecoveryOnStartup - 🟢 BlockchainTmpRecovery: временных *.tmp_bch файлов не найдено — восстановление не требуется. -20:13:51.550 [wsServer-thread] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.18+8-Ubuntu-124.04.1 -20:13:51.600 [wsServer-thread] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@244d5426{/,null,AVAILABLE} -20:13:51.608 [wsServer-thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@4663b900{HTTP/1.1, (http/1.1)}{0.0.0.0:7070} -20:13:51.612 [wsServer-thread] INFO org.eclipse.jetty.server.Server - Started Server@3c6d529{STARTING}[11.0.20,sto=0] @788ms -20:13:51.612 [wsServer-thread] INFO server.ws.WsServer - ✅ WS сервер запущен на ws://localhost:7070/ws -20:13:52.401 [qtp396378551-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46000 -20:13:52.430 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-1", - "payload": { - "login": "TestUser1", - "blockchainName": "TestUser1-001", - "solanaKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "blockchainKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "deviceKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "bchLimit": 50000000 - } -} - -20:13:52.488 [ws-worker-1] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser1, blockchainName=TestUser1-001, limit=50000000 -20:13:52.500 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-1","status":200,"payload":{"ok":true}} -20:13:52.504 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-2", - "payload": { - "login": "TestUser1" - } -} - -20:13:52.507 [ws-worker-2] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -20:13:52.509 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-2","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -20:13:52.511 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-3", - "payload": { - "login": "TestUser2", - "blockchainName": "TestUser2-001", - "solanaKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "blockchainKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "deviceKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "bchLimit": 50000000 - } -} - -20:13:52.519 [ws-worker-3] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser2, blockchainName=TestUser2-001, limit=50000000 -20:13:52.519 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-3","status":200,"payload":{"ok":true}} -20:13:52.521 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-4", - "payload": { - "login": "TestUser2" - } -} - -20:13:52.523 [ws-worker-4] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser2, blockchainName=TestUser2-001 -20:13:52.524 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-4","status":200,"payload":{"exists":true,"login":"TestUser2","blockchainName":"TestUser2-001","solanaKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","blockchainKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","deviceKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","ok":true}} -20:13:52.526 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-5", - "payload": { - "login": "TestUser3", - "blockchainName": "TestUser3-001", - "solanaKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "blockchainKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "deviceKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "bchLimit": 50000000 - } -} - -20:13:52.531 [ws-worker-5] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser3, blockchainName=TestUser3-001, limit=50000000 -20:13:52.531 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-5","status":200,"payload":{"ok":true}} -20:13:52.533 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-6", - "payload": { - "login": "TestUser3" - } -} - -20:13:52.535 [ws-worker-6] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser3, blockchainName=TestUser3-001 -20:13:52.535 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-6","status":200,"payload":{"exists":true,"login":"TestUser3","blockchainName":"TestUser3-001","solanaKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","blockchainKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","deviceKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","ok":true}} -20:13:52.538 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-7", - "payload": { - "login": "Testuser1" - } -} - -20:13:52.540 [ws-worker-7] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -20:13:52.540 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-7","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -20:13:52.542 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-8", - "payload": { - "login": "NoSuchUser_987654321" - } -} - -20:13:52.544 [ws-worker-8] INFO s.l.w.J.h.t.Net_GetUser_Handler - ℹ️ GetUser: not found for login=NoSuchUser_987654321 -20:13:52.545 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-8","status":200,"payload":{"exists":false,"ok":true}} -20:13:52.547 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SearchUsers", - "requestId": "it-searchusers-9", - "payload": { - "prefix": "Tes" - } -} - -20:13:52.551 [ws-worker-9] INFO s.l.w.J.h.t.Net_SearchUsers_Handler - ✅ SearchUsers ok: prefix='Tes' -> 3 -20:13:52.554 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SearchUsers","requestId":"it-searchusers-9","status":200,"payload":{"logins":["TestUser1","TestUser2","TestUser3"],"ok":true}} -20:13:52.559 [qtp396378551-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.564 [qtp396378551-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46002 -20:13:52.566 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-10", - "payload": { "login": "TestUser1" } -} - -20:13:52.570 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-10","status":200,"payload":{"authNonce":"HYS6uEiUOQA7+S+nKXBfLryhe0pQGfcah3PM/0H6pWY","ok":true}} -20:13:52.578 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-11", - "payload": { - "storagePwd": "pwd-2937434637364", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854032573, - "signatureB64": "ZJRTtBOFdck/yz1Bl+T7i8ELbd6ffivsDGQI6EDUa5th/+NEom56nltvittgznYjG26/EJwk55hUQHNjOi96Cg==", - "clientInfo": "it-tests" - } -} - -20:13:52.604 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-11","status":200,"payload":{"sessionId":"mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE","ok":true}} -20:13:52.608 [qtp396378551-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.613 [qtp396378551-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46010 -20:13:52.614 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-12", - "payload": { "login": "TestUser1" } -} - -20:13:52.617 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-12","status":200,"payload":{"authNonce":"3NLAufnkmQ+MtvOVUMgPTij/w9UI/9Yrf2SHqTDHChA","ok":true}} -20:13:52.620 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-13", - "payload": { - "storagePwd": "pwd-2937479772566", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854032618, - "signatureB64": "WIQEGXTlo7bVvL6h4tJfvJ6dVWlnxsPuDiLvSw5QLkkbszDDmIVwZuJfmuzB4HBMLaoW24gQQMREOyeZzwDaAw==", - "clientInfo": "it-tests" - } -} - -20:13:52.628 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-13","status":200,"payload":{"sessionId":"P7QBemTaXnHoBUZ0HprdIPho09ZwDH48GHFZXZJ5us8","ok":true}} -20:13:52.631 [qtp396378551-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.638 [qtp396378551-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46014 -20:13:52.641 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-14", - "payload": { "login": "TestUser1" } -} - -20:13:52.644 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-14","status":200,"payload":{"authNonce":"mBxwgINeuJfMhfh0HVE2lo2vizlMg0jYojHhx1Mu/Js","ok":true}} -20:13:52.650 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-15", - "payload": { - "storagePwd": "pwd-2937507580592", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854032646, - "signatureB64": "uDOjx2azP8HDnh8sIyxErc97rNEynBxOQtD0QUITHzdt4U4JxnICYdOIN2jbe023xjc9q3jDgwY4v/JySLevAA==", - "clientInfo": "it-tests" - } -} - -20:13:52.658 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-15","status":200,"payload":{"sessionId":"UMaw4cHMfIku2PLXXBkUVml0iIcykwXdz8AcN9iZQz4","ok":true}} -20:13:52.659 [qtp396378551-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.663 [qtp396378551-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46030 -20:13:52.665 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-16", - "payload": { - "sessionId": "mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE" - } -} - -20:13:52.672 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-16","status":200,"payload":{"nonce":"J2XHKs9+3p0CPACbL5FF/DJdMi4HWlL4TyRL5p1HcSM","ok":true}} -20:13:52.675 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-17", - "payload": { - "sessionId": "mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE", - "timeMs": 1773854032673, - "signatureB64": "gVa7rvYjjooUijbcIpoOXD8hq9mSZQ4o0bRKr5wJ98BXOE/5EtjH5dhRoeicnOjNOqWyKurzn9wXxlOd8stxAA==", - "clientInfo": "it-tests" - } -} - -20:13:52.687 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-17","status":200,"payload":{"storagePwd":"pwd-2937434637364","ok":true}} -20:13:52.691 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-18", - "payload": { - } -} - -20:13:52.696 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-18","status":200,"payload":{"sessions":[{"sessionId":"mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854032681},{"sessionId":"P7QBemTaXnHoBUZ0HprdIPho09ZwDH48GHFZXZJ5us8","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854032622},{"sessionId":"UMaw4cHMfIku2PLXXBkUVml0iIcykwXdz8AcN9iZQz4","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854032652}],"ok":true}} -20:13:52.699 [qtp396378551-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.702 [qtp396378551-31] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46046 -20:13:52.704 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-19", - "payload": { "login": "TestUser1" } -} - -20:13:52.705 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-19","status":200,"payload":{"authNonce":"Y8oPv6h3PICZ/fBg9PDM99Ga9A7mfkv9/48FMi8kW28","ok":true}} -20:13:52.707 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-20", - "payload": { - "storagePwd": "pwd-2937567970629", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854032706, - "signatureB64": "PADNZEElnNPlx9HWSzWlA42uVPMgIeABNzVMgweo4FyccwOWqLqlCIifB5t04gHbtCyQkh/huzKj53JS0vjRAQ==", - "clientInfo": "it-tests" - } -} - -20:13:52.712 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-20","status":200,"payload":{"sessionId":"Wx6zNe7tUnpnXmrS+D0TUtMy0WkqQAxV+E/2VQG9C4c","ok":true}} -20:13:52.713 [qtp396378551-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.718 [qtp396378551-32] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46060 -20:13:52.719 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-21", - "payload": { - "sessionId": "mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE" - } -} - -20:13:52.720 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-21","status":200,"payload":{"nonce":"7tAFCqHBxQzA8SIALNcCbD6o3xEUHr2h6Pnll3PaYjo","ok":true}} -20:13:52.722 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-22", - "payload": { - "sessionId": "mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE", - "timeMs": 1773854032721, - "signatureB64": "8JJUgqTJm8q0TRhmRNbnDbEXoPWAuUaMRuaCNWA8HFpm+hdCliLFxzU5iGYipi6Tes05BOYfrgj7E6zP8rdUBw==", - "clientInfo": "it-tests" - } -} - -20:13:52.729 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-22","status":200,"payload":{"storagePwd":"pwd-2937434637364","ok":true}} -20:13:52.730 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CloseActiveSession", - "requestId": "it-close-23", - "payload": { - "sessionId": "Wx6zNe7tUnpnXmrS+D0TUtMy0WkqQAxV+E/2VQG9C4c" - } -} - -20:13:52.737 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CloseActiveSession","requestId":"it-close-23","status":200,"payload":{"ok":true}} -20:13:52.738 [qtp396378551-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.741 [qtp396378551-25] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46076 -20:13:52.743 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-24", - "payload": { - "sessionId": "mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE" - } -} - -20:13:52.745 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-24","status":200,"payload":{"nonce":"XlokMwM8O93Y+YXyNZZIr7L619SUs9hDtBFAIkWVgrU","ok":true}} -20:13:52.747 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-25", - "payload": { - "sessionId": "mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE", - "timeMs": 1773854032745, - "signatureB64": "nZ6IsEpL0Lne5gCEXvGkL13byCuFBKFmObYJp7n4VQrST9CvyTDu8IWvin0sBIT8wZ/HSgub0vmXc2rkpb39AQ==", - "clientInfo": "it-tests" - } -} - -20:13:52.754 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-25","status":200,"payload":{"storagePwd":"pwd-2937434637364","ok":true}} -20:13:52.755 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-26", - "payload": { - } -} - -20:13:52.757 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-26","status":200,"payload":{"sessions":[{"sessionId":"mO5by5k9U6WcM9HCyQRcmY2TfwJjA8vILEBdO8X6wzE","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854032749},{"sessionId":"P7QBemTaXnHoBUZ0HprdIPho09ZwDH48GHFZXZJ5us8","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854032622},{"sessionId":"UMaw4cHMfIku2PLXXBkUVml0iIcykwXdz8AcN9iZQz4","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854032652}],"ok":true}} -20:13:52.758 [qtp396378551-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.763 [qtp396378551-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46086 -20:13:52.772 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-27", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm63VAAAAAAAAFTSGlOZQlUZXN0VXNlcjEBAA1PTkvzEufVilbg/IWO1ODGSMbkwr20bJ4dDaQGtqd9RrvZXqN+DOvXJWI69rmoOPAPuJwqPtlxbBIPXtEuMgY=" - } -} - -20:13:52.778 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:13:52.782 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=0, newHash=d35122f07bafc47a0c8c3a791ce7bd991331196b56a31fd2f017731e2fae3593 -20:13:52.783 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-27","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"d35122f07bafc47a0c8c3a791ce7bd991331196b56a31fd2f017731e2fae3593","ok":true}} -20:13:52.787 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-28", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 1, - "prevBlockHash": "d35122f07bafc47a0c8c3a791ce7bd991331196b56a31fd2f017731e2fae3593", - "blockBytesB64": "AADTUSLwe6/EegyMOnkc572ZEzEZa1ajH9LwF3MeL641kwAAAIEAAAABAAAAAGm63VAAAQAKAAEAAAAAAAAAANNRIvB7r8R6DIw6eRznvZkTMRlrVqMf0vAXcx4vrjWTAAAAAAAbVTE6IHN0b3J5L3Bvc3QgaW4gY2hhbm5lbCAwAQBMJuxTyUUtQicD6mueDbWREV6Itvua9TpzqpeY/j7KJrRy99zHTP9otJCmgOvCDlhtQ3ekBIl2fwcrzGepvHQG" - } -} - -20:13:52.790 [ws-worker-12] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=0 prevLineNumber=0 thisLineNumber=0 prevLineHashLen=32 -20:13:52.794 [ws-worker-12] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=1, newHash=166f9d1b6a74b04b1e1ba2fd28910f0a90002447f4ad0c8da72d25dbef6d437f -20:13:52.795 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-28","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"166f9d1b6a74b04b1e1ba2fd28910f0a90002447f4ad0c8da72d25dbef6d437f","ok":true}} -20:13:52.797 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-29", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 2, - "prevBlockHash": "166f9d1b6a74b04b1e1ba2fd28910f0a90002447f4ad0c8da72d25dbef6d437f", - "blockBytesB64": "AAAWb50banSwSx4bov0okQ8KkAAkR/StDI2nLSXb721DfwAAAGkAAAACAAAAAGm63VAAAAABAAEAAAAAAAAAANNRIvB7r8R6DIw6eRznvZkTMRlrVqMf0vAXcx4vrjWTAAAAAQROZXdzAQDxPN9OTK5ulnhGNYQXsovp1/mnynBkwahHhq7Bm7CgXgAjEdF+kNQneJJPv3zSI2kyrbbeC9mbJVfSbtrTTzgJ" - } -} - -20:13:52.801 [ws-worker-13] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=1 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:13:52.806 [ws-worker-13] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=2, newHash=91613efa6b49914a4f55589e8bbf63a4e654f0529abc85df6654b98662340f98 -20:13:52.806 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-29","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"91613efa6b49914a4f55589e8bbf63a4e654f0529abc85df6654b98662340f98","ok":true}} -20:13:52.808 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-30", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 3, - "prevBlockHash": "91613efa6b49914a4f55589e8bbf63a4e654f0529abc85df6654b98662340f98", - "blockBytesB64": "AACRYT76a0mRSk9VWJ6Lv2Ok5lTwUpq8hd9mVLmGYjQPmAAAAHYAAAADAAAAAGm63VAAAQAKAAEAAAACAAAAApFhPvprSZFKT1VYnou/Y6TmVPBSmryF32ZUuYZiNA+YAAAAAAAQVTE6IE5ld3MgcG9zdCAjMAEARA8BnVwa4ZrxucPhYWi2hH2uJaF8G2sUJEE1mBb6GcniCecj1JgAHH6iIdv74GemepAHdRJ51/xo7SOIwDhIAA==" - } -} - -20:13:52.811 [ws-worker-14] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=2 thisLineNumber=0 prevLineHashLen=32 -20:13:52.815 [ws-worker-14] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=3, newHash=fbac7143ef7330ce75792621b0d0c9eb1e93c8b3fc3d13c135d2d0efb60399d5 -20:13:52.815 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-30","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"fbac7143ef7330ce75792621b0d0c9eb1e93c8b3fc3d13c135d2d0efb60399d5","ok":true}} -20:13:52.817 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-31", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 4, - "prevBlockHash": "fbac7143ef7330ce75792621b0d0c9eb1e93c8b3fc3d13c135d2d0efb60399d5", - "blockBytesB64": "AAD7rHFD73MwznV5JiGw0MnrHpPIs/w9E8E10tDvtgOZ1QAAAHYAAAAEAAAAAGm63VAAAQAKAAEAAAACAAAAA/uscUPvczDOdXkmIbDQyesek8iz/D0TwTXS0O+2A5nVAAAAAQAQVTE6IE5ld3MgcG9zdCAjMQEAuOaqU1r+LstpIeSiaEYExdYgdcisj0E+pxQga06VZp/vdWYrQ0EZ96stNs9V7YrbbTMk0iASO1EV/DOA3ltCBA==" - } -} - -20:13:52.821 [ws-worker-15] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=3 thisLineNumber=1 prevLineHashLen=32 -20:13:52.825 [ws-worker-15] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=4, newHash=d29369151352c2537ef3cc887b2ec7e19ef2e708ef507d178c7c7af18ff39ce5 -20:13:52.826 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-31","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"d29369151352c2537ef3cc887b2ec7e19ef2e708ef507d178c7c7af18ff39ce5","ok":true}} -20:13:52.827 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-32", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 5, - "prevBlockHash": "d29369151352c2537ef3cc887b2ec7e19ef2e708ef507d178c7c7af18ff39ce5", - "blockBytesB64": "AADSk2kVE1LCU37zzIh7LsfhnvLnCO9QfReMfHrxj/Oc5QAAAKEAAAAFAAAAAGm63VAAAQALAAEAAAACAAAABNKTaRUTUsJTfvPMiHsux+Ge8ucI71B9F4x8evGP85zlAAAAAgAAAAP7rHFD73MwznV5JiGw0MnrHpPIs/w9E8E10tDvtgOZ1QAXVTE6IE5ld3MgcG9zdCAjMCAoRURJVCkBAHIKLza7omJwWkW2cmyEo8pPBQPAaHN0jC+labpQaduIIfIue7/KmEujAt+G73cgSopqh1ULxZztKCLsZ9IVeAQ=" - } -} - -20:13:52.830 [ws-worker-16] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=11 lineCode=2 prevLineNumber=4 thisLineNumber=2 prevLineHashLen=32 -20:13:52.834 [ws-worker-16] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=5, newHash=7d93d254dc30dd103aae8cf860039ef61e00484fee3813b07be7cfd723db6643 -20:13:52.834 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-32","status":200,"payload":{"serverLastGlobalNumber":5,"serverLastGlobalHash":"7d93d254dc30dd103aae8cf860039ef61e00484fee3813b07be7cfd723db6643","ok":true}} -20:13:52.836 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-33", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm63VAAAAAAAAFTSGlOZQlUZXN0VXNlcjIBAHQM5L58tLDsEOhNoQO8vPyf0u1T3EOqAJvtefs+ZNPpTA1naHasyzO97SUR4u1oFaY//NNYLqzADnXwk3ELVwQ=" - } -} - -20:13:52.839 [ws-worker-1] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:13:52.843 [ws-worker-1] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=0, newHash=3e910ea2fc7ae53dcbf18beb878d4c8c92d973047e114d485bd44aeb31500852 -20:13:52.843 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-33","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"3e910ea2fc7ae53dcbf18beb878d4c8c92d973047e114d485bd44aeb31500852","ok":true}} -20:13:52.847 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-34", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 6, - "prevBlockHash": "7d93d254dc30dd103aae8cf860039ef61e00484fee3813b07be7cfd723db6643", - "blockBytesB64": "AAB9k9JU3DDdEDqujPhgA572HgBIT+44E7B758/XI9tmQwAAAJYAAAAGAAAAAGm63VAAAwAeAAEAAAAAAAAAANNRIvB7r8R6DIw6eRznvZkTMRlrVqMf0vAXcx4vrjWTAAAAAQ1UZXN0VXNlcjItMDAxAAAAAD6RDqL8euU9y/GL64eNTIyS2XMEfhFNSFvUSusxUAhSAQAuYmvogWmypS/a9C1/g1rRxwKsuBhRxyt7xmNv6JO+vvNKVMYxH3QtNGu83/UaUfqyxK1HT5Qwz8tRZ3eTXJkG" - } -} - -20:13:52.852 [ws-worker-2] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:13:52.857 [ws-worker-2] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=6, newHash=909499d7292a047f2aee933a4eab63fa8c98168d29d6c6d7b1164eb53e0aeaed -20:13:52.858 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-34","status":200,"payload":{"serverLastGlobalNumber":6,"serverLastGlobalHash":"909499d7292a047f2aee933a4eab63fa8c98168d29d6c6d7b1164eb53e0aeaed","ok":true}} -20:13:52.860 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-35", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 1, - "prevBlockHash": "3e910ea2fc7ae53dcbf18beb878d4c8c92d973047e114d485bd44aeb31500852", - "blockBytesB64": "AAA+kQ6i/HrlPcvxi+uHjUyMktlzBH4RTUhb1ErrMVAIUgAAAJYAAAABAAAAAGm63VAAAwAeAAEAAAAAAAAAAD6RDqL8euU9y/GL64eNTIyS2XMEfhFNSFvUSusxUAhSAAAAAQ1UZXN0VXNlcjEtMDAxAAAAApFhPvprSZFKT1VYnou/Y6TmVPBSmryF32ZUuYZiNA+YAQBXXiocqP4Wjiz/QxQ/FDeisocKkX8GADGqHsRuJ4j9cQZn//It0/YjomJuFhWGO6SfkatW66nx7bGv+es7mE8J" - } -} - -20:13:52.863 [ws-worker-3] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:13:52.868 [ws-worker-3] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=1, newHash=c4179b0c4d2a107e0a1305bc3470c09268c3576120363ea4c3201ddb6c1b2e9a -20:13:52.868 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-35","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"c4179b0c4d2a107e0a1305bc3470c09268c3576120363ea4c3201ddb6c1b2e9a","ok":true}} -20:13:52.870 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-36", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 7, - "prevBlockHash": "909499d7292a047f2aee933a4eab63fa8c98168d29d6c6d7b1164eb53e0aeaed", - "blockBytesB64": "AACQlJnXKSoEfyrukzpOq2P6jJgWjSnWxtexFk61Pgrq7QAAAJYAAAAHAAAAAGm63VAAAwAKAAEAAAAAAAAABpCUmdcpKgR/Ku6TOk6rY/qMmBaNKdbG17EWTrU+CurtAAAAAg1UZXN0VXNlcjItMDAxAAAAAD6RDqL8euU9y/GL64eNTIyS2XMEfhFNSFvUSusxUAhSAQC2Z/1hRprsw53r1c++nNCEBYGwNXKVnmPWmDdc7NusObvLoLArMR5E4yc3XNjuoOLYUPD+EfRz2R5qjv8aDm4O" - } -} - -20:13:52.873 [ws-worker-4] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=6 thisLineNumber=2 prevLineHashLen=32 -20:13:52.878 [ws-worker-4] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=7, newHash=1b9cf64ae436ca42922aa4aea51085e8dc756b65176359d6ae653b6d44cd33d2 -20:13:52.879 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-36","status":200,"payload":{"serverLastGlobalNumber":7,"serverLastGlobalHash":"1b9cf64ae436ca42922aa4aea51085e8dc756b65176359d6ae653b6d44cd33d2","ok":true}} -20:13:52.881 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-37", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 2, - "prevBlockHash": "c4179b0c4d2a107e0a1305bc3470c09268c3576120363ea4c3201ddb6c1b2e9a", - "blockBytesB64": "AADEF5sMTSoQfgoTBbw0cMCSaMNXYSA2PqTDIB3bbBsumgAAAJYAAAACAAAAAGm63VAAAwAKAAEAAAAAAAAAAcQXmwxNKhB+ChMFvDRwwJJow1dhIDY+pMMgHdtsGy6aAAAAAg1UZXN0VXNlcjEtMDAxAAAAANNRIvB7r8R6DIw6eRznvZkTMRlrVqMf0vAXcx4vrjWTAQB1P71Ocscjkf+08zZI9Mi1nfIyB/muFmLFuwTfr4fZzdA+g1y5oUNORclf5+wW27AK9JiUEb0SjmgUS6OVjRwB" - } -} - -20:13:52.885 [ws-worker-5] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=1 thisLineNumber=2 prevLineHashLen=32 -20:13:52.889 [ws-worker-5] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=2, newHash=8280b1eada06376cec933a9fa8d1290f6e18fcb86607fe4063f87eb52cd93bb5 -20:13:52.890 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-37","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"8280b1eada06376cec933a9fa8d1290f6e18fcb86607fe4063f87eb52cd93bb5","ok":true}} -20:13:52.892 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-38", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 8, - "prevBlockHash": "1b9cf64ae436ca42922aa4aea51085e8dc756b65176359d6ae653b6d44cd33d2", - "blockBytesB64": "AAAbnPZK5DbKQpIqpK6lEIXo3HVrZRdjWdauZTttRM0z0gAAAJYAAAAIAAAAAGm63VAAAwAUAAEAAAAAAAAABxuc9krkNspCkiqkrqUQhejcdWtlF2NZ1q5lO21EzTPSAAAAAw1UZXN0VXNlcjItMDAxAAAAAD6RDqL8euU9y/GL64eNTIyS2XMEfhFNSFvUSusxUAhSAQCY5XMBpJf99lbRe7bwFp0ZtX/0xXiq7N613jHu886RgarIjGQnUuEXJpQnJ+At4F0OLvd1omXJaibnAtosBuUC" - } -} - -20:13:52.896 [ws-worker-6] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=7 thisLineNumber=3 prevLineHashLen=32 -20:13:52.901 [ws-worker-6] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=8, newHash=2a963eb2c69ce261922ee1c58e64e9abaa60273bae8bacb0e11c01ebeb29c444 -20:13:52.901 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-38","status":200,"payload":{"serverLastGlobalNumber":8,"serverLastGlobalHash":"2a963eb2c69ce261922ee1c58e64e9abaa60273bae8bacb0e11c01ebeb29c444","ok":true}} -20:13:52.904 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-39", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 3, - "prevBlockHash": "8280b1eada06376cec933a9fa8d1290f6e18fcb86607fe4063f87eb52cd93bb5", - "blockBytesB64": "AACCgLHq2gY3bOyTOp+o0SkPbhj8uGYH/kBj+H61LNk7tQAAAJYAAAADAAAAAGm63VAAAwAUAAEAAAAAAAAAAoKAseraBjds7JM6n6jRKQ9uGPy4Zgf+QGP4frUs2Tu1AAAAAw1UZXN0VXNlcjEtMDAxAAAAANNRIvB7r8R6DIw6eRznvZkTMRlrVqMf0vAXcx4vrjWTAQBpeuzmjZPby+mO3pX+1T0t8Ul78IVmqTjcyl488ukzPfWNEVCOCmj0pddoc5b+mDcl+ZD99ykzwnnmCNMZ/RcO" - } -} - -20:13:52.908 [ws-worker-7] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=2 thisLineNumber=3 prevLineHashLen=32 -20:13:52.912 [ws-worker-7] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=3, newHash=148a305a3ce533b1fb3333e02965c9a9709dfbdae62ea3d46288085ba74b5d6c -20:13:52.912 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-39","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"148a305a3ce533b1fb3333e02965c9a9709dfbdae62ea3d46288085ba74b5d6c","ok":true}} -20:13:52.915 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-40", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 4, - "prevBlockHash": "148a305a3ce533b1fb3333e02965c9a9709dfbdae62ea3d46288085ba74b5d6c", - "blockBytesB64": "AAAUijBaPOUzsfszM+ApZcmpcJ372uYuo9RiiAhbp0tdbAAAAJYAAAAEAAAAAGm63VAAAQAUAAENVGVzdFVzZXIxLTAwMQAAAAP7rHFD73MwznV5JiGw0MnrHpPIs/w9E8E10tDvtgOZ1QAqVTI6IHJlcGx5IHRvIFUxIE5ld3MgcG9zdCAjMCAoY3Jvc3MtY2hhaW4pAQBQENvJesllao/j5O9+Vlig+ap1YKV/wPJ8wrQMEB1MupoJ/Jvptlg7KF8f9y7VFEEh7NTvFu8MHKidYFRkCs8D" - } -} - -20:13:52.918 [ws-worker-8] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=20 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:13:52.922 [ws-worker-8] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=4, newHash=9185d319d1a8390fcd6daa94c36e6c76544a6ceab8673ee7cd70a1b4f6645035 -20:13:52.922 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-40","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"9185d319d1a8390fcd6daa94c36e6c76544a6ceab8673ee7cd70a1b4f6645035","ok":true}} -20:13:52.924 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-41", - "payload": { - "blockchainName": "TestUser3-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm63VAAAAAAAAFTSGlOZQlUZXN0VXNlcjMBAPgcxpfAY8FzNUjoUKq82Fu3AncrBylD6yq5JUfGMhJabWde3RWFX72d9u79tYpQ8LOqhErXmyie5UUoBnHl2wo=" - } -} - -20:13:52.926 [ws-worker-9] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:13:52.929 [ws-worker-9] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser3, blockchainName=TestUser3-001, blockNumber=0, newHash=8bbe01d70008adcc1e14908000bdcc3a16acabb5c406ec374ee3e63792bf99d1 -20:13:52.929 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-41","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"8bbe01d70008adcc1e14908000bdcc3a16acabb5c406ec374ee3e63792bf99d1","ok":true}} -20:13:52.931 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-42", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 9, - "prevBlockHash": "2a963eb2c69ce261922ee1c58e64e9abaa60273bae8bacb0e11c01ebeb29c444", - "blockBytesB64": "AAAqlj6yxpziYZIu4cWOZOmrqmAnO66LrLDhHAHr6ynERAAAAJYAAAAJAAAAAGm63VAAAwAUAAEAAAAAAAAACCqWPrLGnOJhki7hxY5k6auqYCc7roussOEcAevrKcREAAAABA1UZXN0VXNlcjMtMDAxAAAAAIu+AdcACK3MHhSQgAC9zDoWrKu1xAbsN07j5jeSv5nRAQCgnbCP3XqXyQ6tNAz0OBDfHaMoJseaFw1PAfkioKvWnqdnD3Z0xGdntbosuz5LCSbIrx24D6gee1LYHF/nEroM" - } -} - -20:13:52.934 [ws-worker-10] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=8 thisLineNumber=4 prevLineHashLen=32 -20:13:52.939 [ws-worker-10] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=9, newHash=caad163ab2a1011f8e020bb805da8b58bb512cba016472c836161d2ee258a726 -20:13:52.939 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-42","status":200,"payload":{"serverLastGlobalNumber":9,"serverLastGlobalHash":"caad163ab2a1011f8e020bb805da8b58bb512cba016472c836161d2ee258a726","ok":true}} -20:13:52.940 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-43", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 10, - "prevBlockHash": "caad163ab2a1011f8e020bb805da8b58bb512cba016472c836161d2ee258a726", - "blockBytesB64": "AADKrRY6sqEBH44CC7gF2otYu1EsugFkcsg2Fh0u4linJgAAAJYAAAAKAAAAAGm63VAAAwAVAAEAAAAAAAAACcqtFjqyoQEfjgILuAXai1i7USy6AWRyyDYWHS7iWKcmAAAABQ1UZXN0VXNlcjItMDAxAAAAAD6RDqL8euU9y/GL64eNTIyS2XMEfhFNSFvUSusxUAhSAQD+GbTn0K+NUheBOYRERu5Zs05v/dzWZp2oGMExYXwV2sHOemFdevmvZBD/fcr7/G1QLHwRnie9aQsRWx3qPv4D" - } -} - -20:13:52.943 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=21 lineCode=0 prevLineNumber=9 thisLineNumber=5 prevLineHashLen=32 -20:13:52.948 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=10, newHash=c340da73b022592c1053bcb9ae0bedb60d1dc86ae75abd728f1cbb740cf612c7 -20:13:52.948 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-43","status":200,"payload":{"serverLastGlobalNumber":10,"serverLastGlobalHash":"c340da73b022592c1053bcb9ae0bedb60d1dc86ae75abd728f1cbb740cf612c7","ok":true}} -20:13:52.949 [qtp396378551-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.956 [qtp396378551-37] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46090 -20:13:52.957 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-44", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773854032950, - "value": "Anna", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "2pSPMguvuNYp6znwqKHc51rxRSinicKMsiB6pzuNiBA/M2PTW1unkHr2+67+35sGnJO+u99avViOEuFZ8V0VBw==" - } -} - -20:13:52.962 [ws-worker-12] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773854032950 -20:13:52.965 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-44","status":200,"payload":{"ok":true}} -20:13:52.966 [qtp396378551-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.968 [qtp396378551-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46098 -20:13:52.970 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-45", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -20:13:52.974 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-45","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773854032950,"value":"Anna","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"2pSPMguvuNYp6znwqKHc51rxRSinicKMsiB6pzuNiBA/M2PTW1unkHr2+67+35sGnJO+u99avViOEuFZ8V0VBw==","ok":true}} -20:13:52.975 [qtp396378551-26] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.979 [qtp396378551-56] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46114 -20:13:52.980 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-46", - "payload": { - "login": "TestUser1", - "param": "profile:city", - "time_ms": 1773854032960, - "value": "Amsterdam", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "Z1Pw1LDBS1YVis4apT72AA5hsbaXFQIUIG1foYeNKaEvsPBsGvwiPz0VxCeZcOWQto0bhhHek0GnwT6E7BkUAw==" - } -} - -20:13:52.983 [ws-worker-14] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:city, time_ms=1773854032960 -20:13:52.985 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-46","status":200,"payload":{"ok":true}} -20:13:52.986 [qtp396378551-56] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.989 [qtp396378551-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46128 -20:13:52.989 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-47", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773854032970, - "value": "Anna Updated", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "9zwzgoMAtKmEUXZQAtaZ0eVtbNYqM6DTivuQJitSVNaHV2ksx6XAxIPVNnpj6bHSw7mAnbC8fHjBSjGb6zu9DA==" - } -} - -20:13:52.992 [ws-worker-15] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773854032970 -20:13:52.994 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-47","status":200,"payload":{"ok":true}} -20:13:52.995 [qtp396378551-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:52.998 [qtp396378551-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46130 -20:13:52.999 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-48", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -20:13:53.000 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-48","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773854032970,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"9zwzgoMAtKmEUXZQAtaZ0eVtbNYqM6DTivuQJitSVNaHV2ksx6XAxIPVNnpj6bHSw7mAnbC8fHjBSjGb6zu9DA==","ok":true}} -20:13:53.001 [qtp396378551-28] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:53.003 [qtp396378551-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46142 -20:13:53.004 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListUserParams", - "requestId": "it-listparams-49", - "payload": { "login": "TestUser1" } -} - -20:13:53.007 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListUserParams","requestId":"it-listparams-49","status":200,"payload":{"login":"TestUser1","params":[{"login":"TestUser1","param":"profile:name","time_ms":1773854032970,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"9zwzgoMAtKmEUXZQAtaZ0eVtbNYqM6DTivuQJitSVNaHV2ksx6XAxIPVNnpj6bHSw7mAnbC8fHjBSjGb6zu9DA=="},{"login":"TestUser1","param":"profile:city","time_ms":1773854032960,"value":"Amsterdam","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"Z1Pw1LDBS1YVis4apT72AA5hsbaXFQIUIG1foYeNKaEvsPBsGvwiPz0VxCeZcOWQto0bhhHek0GnwT6E7BkUAw=="}],"ok":true}} -20:13:53.008 [qtp396378551-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:13:53.011 [qtp396378551-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:46150 -20:13:53.012 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-50", - "payload": { - "login": "TestUser1" - } -} - -20:13:53.016 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-50","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -20:13:53.018 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-51", - "payload": { - "login": "Testuser1" - } -} - -20:13:53.019 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-51","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -20:13:53.020 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-52", - "payload": { - "login": "TestUser2" - } -} - -20:13:53.021 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-52","status":200,"payload":{"login":"TestUser2","out_friends":["TestUser1"],"in_friends":["TestUser1"],"ok":true}} -20:13:53.021 [qtp396378551-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:18.823 [wsServer-thread] INFO s.ws.BlockchainTmpRecoveryOnStartup - 🟢 BlockchainTmpRecovery: временных *.tmp_bch файлов не найдено — восстановление не требуется. -20:14:18.892 [wsServer-thread] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.18+8-Ubuntu-124.04.1 -20:14:18.953 [wsServer-thread] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@2b7f2622{/,null,AVAILABLE} -20:14:18.960 [wsServer-thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@56ee516b{HTTP/1.1, (http/1.1)}{0.0.0.0:7070} -20:14:18.965 [wsServer-thread] INFO org.eclipse.jetty.server.Server - Started Server@3171580c{STARTING}[11.0.20,sto=0] @842ms -20:14:18.965 [wsServer-thread] INFO server.ws.WsServer - ✅ WS сервер запущен на ws://localhost:7070/ws -20:14:19.705 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44482 -20:14:19.739 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-1", - "payload": { - "login": "TestUser1", - "blockchainName": "TestUser1-001", - "solanaKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "blockchainKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "deviceKey": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "bchLimit": 50000000 - } -} - -20:14:19.792 [ws-worker-1] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser1, blockchainName=TestUser1-001, limit=50000000 -20:14:19.804 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-1","status":200,"payload":{"ok":true}} -20:14:19.808 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-2", - "payload": { - "login": "TestUser1" - } -} - -20:14:19.813 [ws-worker-2] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -20:14:19.814 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-2","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -20:14:19.817 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-3", - "payload": { - "login": "TestUser2", - "blockchainName": "TestUser2-001", - "solanaKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "blockchainKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "deviceKey": "Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=", - "bchLimit": 50000000 - } -} - -20:14:19.823 [ws-worker-3] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser2, blockchainName=TestUser2-001, limit=50000000 -20:14:19.823 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-3","status":200,"payload":{"ok":true}} -20:14:19.825 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-4", - "payload": { - "login": "TestUser2" - } -} - -20:14:19.827 [ws-worker-4] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser2, blockchainName=TestUser2-001 -20:14:19.827 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-4","status":200,"payload":{"exists":true,"login":"TestUser2","blockchainName":"TestUser2-001","solanaKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","blockchainKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","deviceKey":"Sdfdd5XRWFzm66XDq850Xe+xZByUaEX4yhW39yJytxs=","ok":true}} -20:14:19.829 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddUser", - "requestId": "it-adduser-5", - "payload": { - "login": "TestUser3", - "blockchainName": "TestUser3-001", - "solanaKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "blockchainKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "deviceKey": "W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=", - "bchLimit": 50000000 - } -} - -20:14:19.834 [ws-worker-5] INFO s.l.w.J.h.t.Net_AddUser_Handler - ✅ AddUser ok: login=TestUser3, blockchainName=TestUser3-001, limit=50000000 -20:14:19.834 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddUser","requestId":"it-adduser-5","status":200,"payload":{"ok":true}} -20:14:19.836 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-6", - "payload": { - "login": "TestUser3" - } -} - -20:14:19.838 [ws-worker-6] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser3, blockchainName=TestUser3-001 -20:14:19.838 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-6","status":200,"payload":{"exists":true,"login":"TestUser3","blockchainName":"TestUser3-001","solanaKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","blockchainKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","deviceKey":"W/SdJOdxg2WWEMdG66o1hMbjg9ej0X+gWy4uJnzexe4=","ok":true}} -20:14:19.841 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-7", - "payload": { - "login": "Testuser1" - } -} - -20:14:19.843 [ws-worker-7] INFO s.l.w.J.h.t.Net_GetUser_Handler - ✅ GetUser: found login=TestUser1, blockchainName=TestUser1-001 -20:14:19.843 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-7","status":200,"payload":{"exists":true,"login":"TestUser1","blockchainName":"TestUser1-001","solanaKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","blockchainKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","deviceKey":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","ok":true}} -20:14:19.845 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUser", - "requestId": "it-getuser-8", - "payload": { - "login": "NoSuchUser_987654321" - } -} - -20:14:19.848 [ws-worker-8] INFO s.l.w.J.h.t.Net_GetUser_Handler - ℹ️ GetUser: not found for login=NoSuchUser_987654321 -20:14:19.848 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUser","requestId":"it-getuser-8","status":200,"payload":{"exists":false,"ok":true}} -20:14:19.850 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SearchUsers", - "requestId": "it-searchusers-9", - "payload": { - "prefix": "Tes" - } -} - -20:14:19.855 [ws-worker-9] INFO s.l.w.J.h.t.Net_SearchUsers_Handler - ✅ SearchUsers ok: prefix='Tes' -> 3 -20:14:19.858 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SearchUsers","requestId":"it-searchusers-9","status":200,"payload":{"logins":["TestUser1","TestUser2","TestUser3"],"ok":true}} -20:14:19.864 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:19.868 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44496 -20:14:19.869 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-10", - "payload": { "login": "TestUser1" } -} - -20:14:19.873 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-10","status":200,"payload":{"authNonce":"udVgplshRvj1VqxFg+7r6FsWgl+rJ3LSeklO1KwLH3M","ok":true}} -20:14:19.881 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-11", - "payload": { - "storagePwd": "pwd-2964738635206", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854059877, - "signatureB64": "7gmRJQFTcTzchbxMoZaMJq7Pmd7NymLziFrZrMhymGLEifMM+3E0MDd1hIq4dihSpVJg0AtgbHPZ5nvorLYSAw==", - "clientInfo": "it-tests" - } -} - -20:14:19.892 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-11","status":200,"payload":{"sessionId":"Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY","ok":true}} -20:14:19.894 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:19.897 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44500 -20:14:19.898 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-12", - "payload": { "login": "TestUser1" } -} - -20:14:19.901 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-12","status":200,"payload":{"authNonce":"LLlasP7CXxEZ6P7RwrX/fqfNGd+ZhtoKi71dnsS8CG4","ok":true}} -20:14:19.903 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-13", - "payload": { - "storagePwd": "pwd-2964763305319", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854059902, - "signatureB64": "PwKgqonubAivoAeXTAkBcGe74nwGIw9JUw5FogdemKGn/zFW/yk9lPbi/5Fxp4K8TYgQVn6eo1RTNtX3xn7kAg==", - "clientInfo": "it-tests" - } -} - -20:14:19.910 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-13","status":200,"payload":{"sessionId":"CoJEE6cPFciGHvYGrF8+37yXJ4J/QY8rKYzPEyKUBCA","ok":true}} -20:14:19.911 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:19.915 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44508 -20:14:19.916 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-14", - "payload": { "login": "TestUser1" } -} - -20:14:19.919 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-14","status":200,"payload":{"authNonce":"MdxzlC8G4fS8ghvkR2sHXe34tT1zwHzKnudKsDDKsIs","ok":true}} -20:14:19.921 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-15", - "payload": { - "storagePwd": "pwd-2964781298382", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854059920, - "signatureB64": "oI3f+ZA3X5lA7L6vWxlLNb1k3l8oWODx539YVBCpXptFeAnd1pfPH053Em6w6ODKakYI9yrN8HH/XVq71jfoAQ==", - "clientInfo": "it-tests" - } -} - -20:14:19.927 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-15","status":200,"payload":{"sessionId":"yOazK4el16Jxexx8ME/QDQRe/OajY+eeqi8CAmDmRkI","ok":true}} -20:14:19.928 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:19.930 [qtp1582446160-30] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44522 -20:14:19.932 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-16", - "payload": { - "sessionId": "Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY" - } -} - -20:14:19.939 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-16","status":200,"payload":{"nonce":"6OWYB2jPIwOznY9b5t/OZjdaryR5a5Yhnn2RWvU8Bxw","ok":true}} -20:14:19.941 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-17", - "payload": { - "sessionId": "Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY", - "timeMs": 1773854059940, - "signatureB64": "tpqLtbNmtQpBpvDD/XvXJz9NfbN14mRxN+rJhhZV8LHj4jL9VgYntPrhjY0gXrBoAxOYfLe3Q3/p5mfpw7LoBA==", - "clientInfo": "it-tests" - } -} - -20:14:19.949 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-17","status":200,"payload":{"storagePwd":"pwd-2964738635206","ok":true}} -20:14:19.952 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-18", - "payload": { - } -} - -20:14:19.958 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-18","status":200,"payload":{"sessions":[{"sessionId":"Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854059944},{"sessionId":"CoJEE6cPFciGHvYGrF8+37yXJ4J/QY8rKYzPEyKUBCA","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854059904},{"sessionId":"yOazK4el16Jxexx8ME/QDQRe/OajY+eeqi8CAmDmRkI","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854059922}],"ok":true}} -20:14:19.960 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:19.965 [qtp1582446160-31] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44530 -20:14:19.966 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AuthChallenge", - "requestId": "it-auth-19", - "payload": { "login": "TestUser1" } -} - -20:14:19.968 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AuthChallenge","requestId":"it-auth-19","status":200,"payload":{"authNonce":"Rkuk2PP2guUlZbYz3f/wh/rKr/0jG7XMAiKzkbcMvVA","ok":true}} -20:14:19.970 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CreateAuthSession", - "requestId": "it-create-20", - "payload": { - "storagePwd": "pwd-2964830581469", - "sessionPubKeyB64": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "timeMs": 1773854059969, - "signatureB64": "yfDmWzXmB+V7yf9v9R1cc5Ymvu7uv6AQq60eLDWKQieRRR+246Mykjnl7ZcfV9rXo6jfQU8c5S/VzuWwbvBdBA==", - "clientInfo": "it-tests" - } -} - -20:14:19.976 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CreateAuthSession","requestId":"it-create-20","status":200,"payload":{"sessionId":"/C8TQxnOYJl8S63mk9EqGBgHqGP7rmZ4IJsJengUIJU","ok":true}} -20:14:19.977 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:19.980 [qtp1582446160-32] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44534 -20:14:19.981 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-21", - "payload": { - "sessionId": "Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY" - } -} - -20:14:19.982 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-21","status":200,"payload":{"nonce":"ToynkFqpQqv4CXHDWpKfPkjQUTS0/gUGagV0rm1/sAc","ok":true}} -20:14:19.984 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-22", - "payload": { - "sessionId": "Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY", - "timeMs": 1773854059983, - "signatureB64": "b/pU0gXlaYzmZOSn7Y836klq5DKD+BTJO3wQPeqlaT9lVvSHCht3F2dNLZbXAifUirqyZrHHe/seWHRsW+K4Cg==", - "clientInfo": "it-tests" - } -} - -20:14:19.991 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-22","status":200,"payload":{"storagePwd":"pwd-2964738635206","ok":true}} -20:14:19.991 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "CloseActiveSession", - "requestId": "it-close-23", - "payload": { - "sessionId": "/C8TQxnOYJl8S63mk9EqGBgHqGP7rmZ4IJsJengUIJU" - } -} - -20:14:19.998 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"CloseActiveSession","requestId":"it-close-23","status":200,"payload":{"ok":true}} -20:14:19.999 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.001 [qtp1582446160-25] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44550 -20:14:20.003 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionChallenge", - "requestId": "it-sch-24", - "payload": { - "sessionId": "Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY" - } -} - -20:14:20.005 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionChallenge","requestId":"it-sch-24","status":200,"payload":{"nonce":"I5TDATsWqTWUrvPefvqBblJtlCc0qWxz361ykVIexNc","ok":true}} -20:14:20.007 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "SessionLogin", - "requestId": "it-slogin-25", - "payload": { - "sessionId": "Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY", - "timeMs": 1773854060006, - "signatureB64": "ZGoxEiCnt7ggggWLgSLdVVrR80ioAUHwZmt+M2NySJ1nEk5b32B9eTEgSoxbSYvx55biGJVB1PhzCkxiiBKGDg==", - "clientInfo": "it-tests" - } -} - -20:14:20.013 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"SessionLogin","requestId":"it-slogin-25","status":200,"payload":{"storagePwd":"pwd-2964738635206","ok":true}} -20:14:20.014 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListSessions", - "requestId": "it-list-26", - "payload": { - } -} - -20:14:20.015 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListSessions","requestId":"it-list-26","status":200,"payload":{"sessions":[{"sessionId":"Schmy3cBlfEUrjaFyH1/vTcB1FFs4x1xVxb1+JIyzUY","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854060009},{"sessionId":"CoJEE6cPFciGHvYGrF8+37yXJ4J/QY8rKYzPEyKUBCA","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854059904},{"sessionId":"yOazK4el16Jxexx8ME/QDQRe/OajY+eeqi8CAmDmRkI","clientInfoFromClient":"it-tests","clientInfoFromRequest":"UA=Java-http-client/17.0.18; remote=127.0.0.1","geo":"unknown","lastAuthirificatedAtMs":1773854059922}],"ok":true}} -20:14:20.017 [qtp1582446160-30] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.021 [qtp1582446160-42] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44566 -20:14:20.032 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-27", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm63WwAAAAAAAFTSGlOZQlUZXN0VXNlcjEBAOgYo10H+gAeEEO3gcmVs+7lUnM1OKmTkGF2Hcme5LgbD+RqVwJ6lxTZRdOf8WQr4Uc5d+BmXJx3BFyBHZIG7Qc=" - } -} - -20:14:20.037 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:14:20.041 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=0, newHash=9f3f24c98ec71aa8ace8ee2bae56152eed80b9c30d1a5635a68c46041df878ee -20:14:20.042 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-27","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"9f3f24c98ec71aa8ace8ee2bae56152eed80b9c30d1a5635a68c46041df878ee","ok":true}} -20:14:20.046 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-28", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 1, - "prevBlockHash": "9f3f24c98ec71aa8ace8ee2bae56152eed80b9c30d1a5635a68c46041df878ee", - "blockBytesB64": "AACfPyTJjscaqKzo7iuuVhUu7YC5ww0aVjWmjEYEHfh47gAAAIEAAAABAAAAAGm63WwAAQAKAAEAAAAAAAAAAJ8/JMmOxxqorOjuK65WFS7tgLnDDRpWNaaMRgQd+HjuAAAAAAAbVTE6IHN0b3J5L3Bvc3QgaW4gY2hhbm5lbCAwAQBq91cvMI+aw1Ieut3RXL5UOJINPDSqo6S59IuCgDIrpbZnpoeoWT3r7PBixnM2WoW+K0DpraFNEN+0zk0SmyEH" - } -} - -20:14:20.048 [ws-worker-12] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=0 prevLineNumber=0 thisLineNumber=0 prevLineHashLen=32 -20:14:20.052 [ws-worker-12] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=1, newHash=85ce7e077adbf432700c450b9dc4f8ad0797a0a8f245d852e1da7375e45d1835 -20:14:20.052 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-28","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"85ce7e077adbf432700c450b9dc4f8ad0797a0a8f245d852e1da7375e45d1835","ok":true}} -20:14:20.054 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-29", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 2, - "prevBlockHash": "85ce7e077adbf432700c450b9dc4f8ad0797a0a8f245d852e1da7375e45d1835", - "blockBytesB64": "AACFzn4Hetv0MnAMRQudxPitB5egqPJF2FLh2nN15F0YNQAAAGkAAAACAAAAAGm63WwAAAABAAEAAAAAAAAAAJ8/JMmOxxqorOjuK65WFS7tgLnDDRpWNaaMRgQd+HjuAAAAAQROZXdzAQAlx//FiPs1yE+OGXBMqUVgApsiUiCQ91j1l7qJXTh4zvPSNLd5NHxZ+4WWvb/nfWSJWgFd+Ia6bRQ5JVquIbgK" - } -} - -20:14:20.057 [ws-worker-13] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=1 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:14:20.062 [ws-worker-13] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=2, newHash=7f92da46d5569259e605747f9d630a702afc5061f5f505e0703fa02d25f74df0 -20:14:20.062 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-29","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"7f92da46d5569259e605747f9d630a702afc5061f5f505e0703fa02d25f74df0","ok":true}} -20:14:20.064 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-30", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 3, - "prevBlockHash": "7f92da46d5569259e605747f9d630a702afc5061f5f505e0703fa02d25f74df0", - "blockBytesB64": "AAB/ktpG1VaSWeYFdH+dYwpwKvxQYfX1BeBwP6AtJfdN8AAAAHYAAAADAAAAAGm63WwAAQAKAAEAAAACAAAAAn+S2kbVVpJZ5gV0f51jCnAq/FBh9fUF4HA/oC0l903wAAAAAAAQVTE6IE5ld3MgcG9zdCAjMAEA/TBKOM7SbZMlf2ILOIRRuzdh6G6ZUPNqG1aJRPU3PJuf5Z98l+38TxnLhjNeK48fbg0X1zxpUI2mraj5T3G/BQ==" - } -} - -20:14:20.068 [ws-worker-14] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=2 thisLineNumber=0 prevLineHashLen=32 -20:14:20.072 [ws-worker-14] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=3, newHash=72d43525982fa2a10b1866d238608c1b26360ea8647178de76381ee4ec2bc594 -20:14:20.072 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-30","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"72d43525982fa2a10b1866d238608c1b26360ea8647178de76381ee4ec2bc594","ok":true}} -20:14:20.074 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-31", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 4, - "prevBlockHash": "72d43525982fa2a10b1866d238608c1b26360ea8647178de76381ee4ec2bc594", - "blockBytesB64": "AABy1DUlmC+ioQsYZtI4YIwbJjYOqGRxeN52OB7k7CvFlAAAAHYAAAAEAAAAAGm63WwAAQAKAAEAAAACAAAAA3LUNSWYL6KhCxhm0jhgjBsmNg6oZHF43nY4HuTsK8WUAAAAAQAQVTE6IE5ld3MgcG9zdCAjMQEAfgxgfy0D8Sp1aHW+vT87c/pf+HMFLG+set1yLoiploMx55Ra2BKrhQt3JtuobGabuoJwi/dri0DNOjlfaN/OBQ==" - } -} - -20:14:20.076 [ws-worker-15] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=10 lineCode=2 prevLineNumber=3 thisLineNumber=1 prevLineHashLen=32 -20:14:20.083 [ws-worker-15] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=4, newHash=60f03f2436a1ff47d46f4e3cdda0ee1805e7f4a79e3da9172a033605bb8a7e9c -20:14:20.083 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-31","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"60f03f2436a1ff47d46f4e3cdda0ee1805e7f4a79e3da9172a033605bb8a7e9c","ok":true}} -20:14:20.085 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-32", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 5, - "prevBlockHash": "60f03f2436a1ff47d46f4e3cdda0ee1805e7f4a79e3da9172a033605bb8a7e9c", - "blockBytesB64": "AABg8D8kNqH/R9RvTjzdoO4YBef0p549qRcqAzYFu4p+nAAAAKEAAAAFAAAAAGm63WwAAQALAAEAAAACAAAABGDwPyQ2of9H1G9OPN2g7hgF5/Snnj2pFyoDNgW7in6cAAAAAgAAAANy1DUlmC+ioQsYZtI4YIwbJjYOqGRxeN52OB7k7CvFlAAXVTE6IE5ld3MgcG9zdCAjMCAoRURJVCkBALi7rciuLRaV8d6eNKYqsTsXacxG1z71CVLTidmAgCBwCrS6WZPjH7fKAdoux70dCdZgzBcS8agQ0T9HKJm2WgE=" - } -} - -20:14:20.088 [ws-worker-16] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=11 lineCode=2 prevLineNumber=4 thisLineNumber=2 prevLineHashLen=32 -20:14:20.092 [ws-worker-16] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=5, newHash=2f963c5f7214a1c109367b74bf07c659d4284e0f0acd84a85b24c3afbda47e69 -20:14:20.093 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-32","status":200,"payload":{"serverLastGlobalNumber":5,"serverLastGlobalHash":"2f963c5f7214a1c109367b74bf07c659d4284e0f0acd84a85b24c3afbda47e69","ok":true}} -20:14:20.095 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-33", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm63WwAAAAAAAFTSGlOZQlUZXN0VXNlcjIBAHUTXnceunvUBOTWwM8k9NBINmlpkBBcIWKSarGiYPAr6/uguh96M/2P4hRMOtBN0SjREnUqs4YZls10Vi3TkwY=" - } -} - -20:14:20.097 [ws-worker-1] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:14:20.101 [ws-worker-1] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=0, newHash=99f004e851986f85106171e27b19cc4fc4d65cfff8eb4253e90f632b4a4a01dd -20:14:20.102 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-33","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"99f004e851986f85106171e27b19cc4fc4d65cfff8eb4253e90f632b4a4a01dd","ok":true}} -20:14:20.107 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-34", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 6, - "prevBlockHash": "2f963c5f7214a1c109367b74bf07c659d4284e0f0acd84a85b24c3afbda47e69", - "blockBytesB64": "AAAvljxfchShwQk2e3S/B8ZZ1ChODwrNhKhbJMOvvaR+aQAAAJYAAAAGAAAAAGm63WwAAwAeAAEAAAAAAAAAAJ8/JMmOxxqorOjuK65WFS7tgLnDDRpWNaaMRgQd+HjuAAAAAQ1UZXN0VXNlcjItMDAxAAAAAJnwBOhRmG+FEGFx4nsZzE/E1lz/+OtCU+kPYytKSgHdAQAtsfbY87Q8a2gCrkivkOhiP3262jzPs04E0zxMLX4iuyVUbLKPBLTBszTha7831ueRoB0+vDDTo5tp+SzZAYEO" - } -} - -20:14:20.112 [ws-worker-2] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:14:20.117 [ws-worker-2] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=6, newHash=eac177c78ab2692ada550acbc7a44f225c2a337891ac2b306724d4dab64ee079 -20:14:20.118 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-34","status":200,"payload":{"serverLastGlobalNumber":6,"serverLastGlobalHash":"eac177c78ab2692ada550acbc7a44f225c2a337891ac2b306724d4dab64ee079","ok":true}} -20:14:20.121 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-35", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 1, - "prevBlockHash": "99f004e851986f85106171e27b19cc4fc4d65cfff8eb4253e90f632b4a4a01dd", - "blockBytesB64": "AACZ8AToUZhvhRBhceJ7GcxPxNZc//jrQlPpD2MrSkoB3QAAAJYAAAABAAAAAGm63WwAAwAeAAEAAAAAAAAAAJnwBOhRmG+FEGFx4nsZzE/E1lz/+OtCU+kPYytKSgHdAAAAAQ1UZXN0VXNlcjEtMDAxAAAAAn+S2kbVVpJZ5gV0f51jCnAq/FBh9fUF4HA/oC0l903wAQCheKCRjM7TSGy0lnOyrxwr80hfvzjwDllqedG1OXyEnI3szrS9tz6DvUC3E98PZ9vB7xX3SVqT5TdvwFZktXIA" - } -} - -20:14:20.124 [ws-worker-3] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=30 lineCode=0 prevLineNumber=0 thisLineNumber=1 prevLineHashLen=32 -20:14:20.129 [ws-worker-3] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=1, newHash=d2e00d5c07e9e5d1e631d8ff3aa81dd22c1f839ea926b682bc64ef3160451456 -20:14:20.130 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-35","status":200,"payload":{"serverLastGlobalNumber":1,"serverLastGlobalHash":"d2e00d5c07e9e5d1e631d8ff3aa81dd22c1f839ea926b682bc64ef3160451456","ok":true}} -20:14:20.132 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-36", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 7, - "prevBlockHash": "eac177c78ab2692ada550acbc7a44f225c2a337891ac2b306724d4dab64ee079", - "blockBytesB64": "AADqwXfHirJpKtpVCsvHpE8iXCozeJGsKzBnJNTatk7geQAAAJYAAAAHAAAAAGm63WwAAwAKAAEAAAAAAAAABurBd8eKsmkq2lUKy8ekTyJcKjN4kawrMGck1Nq2TuB5AAAAAg1UZXN0VXNlcjItMDAxAAAAAJnwBOhRmG+FEGFx4nsZzE/E1lz/+OtCU+kPYytKSgHdAQC2Vn5kGWZfdj44ddvLHMgwq0Rg3y7f/XKBvkpgXQ0FDod8WF8D0qkvi+RWS2jm9ivmg6EXCGOS6B50tWXLYE4A" - } -} - -20:14:20.136 [ws-worker-4] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=6 thisLineNumber=2 prevLineHashLen=32 -20:14:20.141 [ws-worker-4] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=7, newHash=cd1ce20ce4f9f03fe6abb0fd5863b3c599e63e892fb7e81b0a44f2618a061d16 -20:14:20.141 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-36","status":200,"payload":{"serverLastGlobalNumber":7,"serverLastGlobalHash":"cd1ce20ce4f9f03fe6abb0fd5863b3c599e63e892fb7e81b0a44f2618a061d16","ok":true}} -20:14:20.143 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-37", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 2, - "prevBlockHash": "d2e00d5c07e9e5d1e631d8ff3aa81dd22c1f839ea926b682bc64ef3160451456", - "blockBytesB64": "AADS4A1cB+nl0eYx2P86qB3SLB+DnqkmtoK8ZO8xYEUUVgAAAJYAAAACAAAAAGm63WwAAwAKAAEAAAAAAAAAAdLgDVwH6eXR5jHY/zqoHdIsH4OeqSa2grxk7zFgRRRWAAAAAg1UZXN0VXNlcjEtMDAxAAAAAJ8/JMmOxxqorOjuK65WFS7tgLnDDRpWNaaMRgQd+HjuAQBfhLCUsX+nbJKWpziTjIq8zmG6apkHNI449h7cqwBnoYA79p/CJCTb9idL4TqctIPoJlPGuY3C85rFpCDtGhYG" - } -} - -20:14:20.147 [ws-worker-5] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=10 lineCode=0 prevLineNumber=1 thisLineNumber=2 prevLineHashLen=32 -20:14:20.152 [ws-worker-5] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=2, newHash=df81e6259b1f88cb86ebb88405c30f317794a57defe4d12f3f964017c2d8c44e -20:14:20.153 [ws-worker-5] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-37","status":200,"payload":{"serverLastGlobalNumber":2,"serverLastGlobalHash":"df81e6259b1f88cb86ebb88405c30f317794a57defe4d12f3f964017c2d8c44e","ok":true}} -20:14:20.156 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-38", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 8, - "prevBlockHash": "cd1ce20ce4f9f03fe6abb0fd5863b3c599e63e892fb7e81b0a44f2618a061d16", - "blockBytesB64": "AADNHOIM5PnwP+arsP1YY7PFmeY+iS+36BsKRPJhigYdFgAAAJYAAAAIAAAAAGm63WwAAwAUAAEAAAAAAAAAB80c4gzk+fA/5quw/Vhjs8WZ5j6JL7foGwpE8mGKBh0WAAAAAw1UZXN0VXNlcjItMDAxAAAAAJnwBOhRmG+FEGFx4nsZzE/E1lz/+OtCU+kPYytKSgHdAQAzrJjpjr+5ETwtaxWFat7AM9EWHomqGJMYR28iNEizPo0EE9F2amcpu6hPvk2Lfax/qEoLn1TFeCTihsamokkO" - } -} - -20:14:20.161 [ws-worker-6] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=7 thisLineNumber=3 prevLineHashLen=32 -20:14:20.166 [ws-worker-6] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=8, newHash=1a72a290d211d3fd0148081c02cebb300cc8400d8b3a12d9a67e879d7eeddff3 -20:14:20.167 [ws-worker-6] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-38","status":200,"payload":{"serverLastGlobalNumber":8,"serverLastGlobalHash":"1a72a290d211d3fd0148081c02cebb300cc8400d8b3a12d9a67e879d7eeddff3","ok":true}} -20:14:20.170 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-39", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 3, - "prevBlockHash": "df81e6259b1f88cb86ebb88405c30f317794a57defe4d12f3f964017c2d8c44e", - "blockBytesB64": "AADfgeYlmx+Iy4bruIQFww8xd5Slfe/k0S8/lkAXwtjETgAAAJYAAAADAAAAAGm63WwAAwAUAAEAAAAAAAAAAt+B5iWbH4jLhuu4hAXDDzF3lKV97+TRLz+WQBfC2MROAAAAAw1UZXN0VXNlcjEtMDAxAAAAAJ8/JMmOxxqorOjuK65WFS7tgLnDDRpWNaaMRgQd+HjuAQAiZQTLZLIhuNo/1AFBDyTSxo+RQz+pzD6IQjdFCbtPMYqsNJrWWBIHhZre4uv1aHdP4b0CusA2TXv7V78PWgsA" - } -} - -20:14:20.174 [ws-worker-7] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=2 thisLineNumber=3 prevLineHashLen=32 -20:14:20.179 [ws-worker-7] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=3, newHash=8208fe7332f7324f1600ca5991f53c74e76e94dfeee44fc1b28b2364875c92a2 -20:14:20.179 [ws-worker-7] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-39","status":200,"payload":{"serverLastGlobalNumber":3,"serverLastGlobalHash":"8208fe7332f7324f1600ca5991f53c74e76e94dfeee44fc1b28b2364875c92a2","ok":true}} -20:14:20.183 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-40", - "payload": { - "blockchainName": "TestUser2-001", - "blockNumber": 4, - "prevBlockHash": "8208fe7332f7324f1600ca5991f53c74e76e94dfeee44fc1b28b2364875c92a2", - "blockBytesB64": "AACCCP5zMvcyTxYAylmR9Tx0526U3+7kT8GyiyNkh1ySogAAAJYAAAAEAAAAAGm63WwAAQAUAAENVGVzdFVzZXIxLTAwMQAAAANy1DUlmC+ioQsYZtI4YIwbJjYOqGRxeN52OB7k7CvFlAAqVTI6IHJlcGx5IHRvIFUxIE5ld3MgcG9zdCAjMCAoY3Jvc3MtY2hhaW4pAQA9SE6lJ4CD4Lk2L3xA2lALLvjZEEOmbJUsBeHRa7dJin3Z7JWvWTe1E85mnh7tqtPqAh1b1XK1xg5Pd14YqMkJ" - } -} - -20:14:20.186 [ws-worker-8] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=1 sub=20 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:14:20.192 [ws-worker-8] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser2, blockchainName=TestUser2-001, blockNumber=4, newHash=58ce17749a45f77119754a465c3d6991de648605a238e0539e4c27d8123196c0 -20:14:20.192 [ws-worker-8] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-40","status":200,"payload":{"serverLastGlobalNumber":4,"serverLastGlobalHash":"58ce17749a45f77119754a465c3d6991de648605a238e0539e4c27d8123196c0","ok":true}} -20:14:20.194 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-41", - "payload": { - "blockchainName": "TestUser3-001", - "blockNumber": 0, - "prevBlockHash": "0000000000000000000000000000000000000000000000000000000000000000", - "blockBytesB64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcAAAAAAAAAAGm63WwAAAAAAAFTSGlOZQlUZXN0VXNlcjMBALHGkdu5edZTL/uI/jYJdoyEKCPPCMLdvzSMOxlGC08tyDr2tduBsRleFUHoG2UyWY+xTg6KGJXbuV/WNbw7WwQ=" - } -} - -20:14:20.198 [ws-worker-9] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=0 sub=0 lineCode=null prevLineNumber=null thisLineNumber=null prevLineHashLen=null -20:14:20.203 [ws-worker-9] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser3, blockchainName=TestUser3-001, blockNumber=0, newHash=2dbf6cb3b3ef73ae64374ebd641805d37ebd7ba66f09ffabe5a1be280902f25b -20:14:20.203 [ws-worker-9] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-41","status":200,"payload":{"serverLastGlobalNumber":0,"serverLastGlobalHash":"2dbf6cb3b3ef73ae64374ebd641805d37ebd7ba66f09ffabe5a1be280902f25b","ok":true}} -20:14:20.205 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-42", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 9, - "prevBlockHash": "1a72a290d211d3fd0148081c02cebb300cc8400d8b3a12d9a67e879d7eeddff3", - "blockBytesB64": "AAAacqKQ0hHT/QFICBwCzrswDMhADYs6Etmmfoedfu3f8wAAAJYAAAAJAAAAAGm63WwAAwAUAAEAAAAAAAAACBpyopDSEdP9AUgIHALOuzAMyEANizoS2aZ+h51+7d/zAAAABA1UZXN0VXNlcjMtMDAxAAAAAC2/bLOz73OuZDdOvWQYBdN+vXumbwn/q+WhvigJAvJbAQBA7ydPvdydNFD2UxvTi+MO0wTgHDefbBkbd2ZubthZRDXt8aTTCiDBpbLO9MT6H796v60WSUQ52SAkp9GVlBsE" - } -} - -20:14:20.212 [ws-worker-10] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=20 lineCode=0 prevLineNumber=8 thisLineNumber=4 prevLineHashLen=32 -20:14:20.217 [ws-worker-10] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=9, newHash=2fed478d20727fd20985cf8d7549040f762ce05329cb149ad4fb9913c91c02e4 -20:14:20.217 [ws-worker-10] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-42","status":200,"payload":{"serverLastGlobalNumber":9,"serverLastGlobalHash":"2fed478d20727fd20985cf8d7549040f762ce05329cb149ad4fb9913c91c02e4","ok":true}} -20:14:20.220 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "AddBlock", - "requestId": "it-addblock-43", - "payload": { - "blockchainName": "TestUser1-001", - "blockNumber": 10, - "prevBlockHash": "2fed478d20727fd20985cf8d7549040f762ce05329cb149ad4fb9913c91c02e4", - "blockBytesB64": "AAAv7UeNIHJ/0gmFz411SQQPdizgUynLFJrU+5kTyRwC5AAAAJYAAAAKAAAAAGm63WwAAwAVAAEAAAAAAAAACS/tR40gcn/SCYXPjXVJBA92LOBTKcsUmtT7mRPJHALkAAAABQ1UZXN0VXNlcjItMDAxAAAAAJnwBOhRmG+FEGFx4nsZzE/E1lz/+OtCU+kPYytKSgHdAQBgD15RKGGi+kaTjzM4vvlfgFJrkGvwXQtp32Snc+U87LzI5Qc0N0YDLUAVsVAxs8FIR88wfCquwSdfJbAhx0QO" - } -} - -20:14:20.224 [ws-worker-11] INFO shine.db.dao.BlocksDAO - DBG BlockEntry: type=3 sub=21 lineCode=0 prevLineNumber=9 thisLineNumber=5 prevLineHashLen=32 -20:14:20.229 [ws-worker-11] INFO s.l.w.J.h.b.Net_AddBlock_Handler - ✅ AddBlock ok: login=TestUser1, blockchainName=TestUser1-001, blockNumber=10, newHash=8487a02ae10bb1421de2192a5356ecc9c3db74a8e1ddf5df3c62c760bf70d663 -20:14:20.229 [ws-worker-11] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"AddBlock","requestId":"it-addblock-43","status":200,"payload":{"serverLastGlobalNumber":10,"serverLastGlobalHash":"8487a02ae10bb1421de2192a5356ecc9c3db74a8e1ddf5df3c62c760bf70d663","ok":true}} -20:14:20.231 [qtp1582446160-42] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.247 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44576 -20:14:20.251 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-44", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773854060233, - "value": "Anna", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "9CmwsushOVuTjNti9T75masmKU21MFMg6gkdHp4+UBitcHd3AYe84ajd7j1OvqC8a+QPCCBBVUjFhn+4BZZCDA==" - } -} - -20:14:20.265 [ws-worker-12] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773854060233 -20:14:20.269 [ws-worker-12] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-44","status":200,"payload":{"ok":true}} -20:14:20.270 [qtp1582446160-37] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.275 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44590 -20:14:20.277 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-45", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -20:14:20.281 [ws-worker-13] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-45","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773854060233,"value":"Anna","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"9CmwsushOVuTjNti9T75masmKU21MFMg6gkdHp4+UBitcHd3AYe84ajd7j1OvqC8a+QPCCBBVUjFhn+4BZZCDA==","ok":true}} -20:14:20.283 [qtp1582446160-26] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.288 [qtp1582446160-56] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44606 -20:14:20.290 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-46", - "payload": { - "login": "TestUser1", - "param": "profile:city", - "time_ms": 1773854060243, - "value": "Amsterdam", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "WgY3Cr0UsgnGh2soYoPlGgUqjvd1RmqrVYsnJrfeohtIhcQpzN0r40KzKQOMJRaCBPKo9zi9bTRO1/UxA3lnCA==" - } -} - -20:14:20.294 [ws-worker-14] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:city, time_ms=1773854060243 -20:14:20.297 [ws-worker-14] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-46","status":200,"payload":{"ok":true}} -20:14:20.298 [qtp1582446160-56] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.304 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44620 -20:14:20.306 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "UpsertUserParam", - "requestId": "it-upsert-47", - "payload": { - "login": "TestUser1", - "param": "profile:name", - "time_ms": 1773854060253, - "value": "Anna Updated", - "device_key": "WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=", - "signature": "SMGur/5QI71MZXKyROa6dtNW/nPO5ZaLFXQjwA2BgUmK42k9v7OLSuWp9Vy+ALhUTJfMxsO8CLhrWQajuyGADg==" - } -} - -20:14:20.312 [ws-worker-15] INFO s.l.w.J.h.u.Net_UpsertUserParam_Handler - ✅ UpsertUserParam applied: login=TestUser1, param=profile:name, time_ms=1773854060253 -20:14:20.314 [ws-worker-15] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"UpsertUserParam","requestId":"it-upsert-47","status":200,"payload":{"ok":true}} -20:14:20.316 [qtp1582446160-41] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.321 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44634 -20:14:20.323 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetUserParam", - "requestId": "it-getparam-48", - "payload": { - "login": "TestUser1", - "param": "profile:name" - } -} - -20:14:20.325 [ws-worker-16] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetUserParam","requestId":"it-getparam-48","status":200,"payload":{"login":"TestUser1","param":"profile:name","time_ms":1773854060253,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"SMGur/5QI71MZXKyROa6dtNW/nPO5ZaLFXQjwA2BgUmK42k9v7OLSuWp9Vy+ALhUTJfMxsO8CLhrWQajuyGADg==","ok":true}} -20:14:20.326 [qtp1582446160-28] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.331 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44650 -20:14:20.335 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "ListUserParams", - "requestId": "it-listparams-49", - "payload": { "login": "TestUser1" } -} - -20:14:20.342 [ws-worker-1] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"ListUserParams","requestId":"it-listparams-49","status":200,"payload":{"login":"TestUser1","params":[{"login":"TestUser1","param":"profile:name","time_ms":1773854060253,"value":"Anna Updated","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"SMGur/5QI71MZXKyROa6dtNW/nPO5ZaLFXQjwA2BgUmK42k9v7OLSuWp9Vy+ALhUTJfMxsO8CLhrWQajuyGADg=="},{"login":"TestUser1","param":"profile:city","time_ms":1773854060243,"value":"Amsterdam","device_key":"WzhtoDq2Iu7rQudUKxvN8KFflJwYuhEr45rZPywAUEQ=","signature":"WgY3Cr0UsgnGh2soYoPlGgUqjvd1RmqrVYsnJrfeohtIhcQpzN0r40KzKQOMJRaCBPKo9zi9bTRO1/UxA3lnCA=="}],"ok":true}} -20:14:20.344 [qtp1582446160-27] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye -20:14:20.349 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS connected: /127.0.0.1:44660 -20:14:20.351 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-50", - "payload": { - "login": "TestUser1" - } -} - -20:14:20.357 [ws-worker-2] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-50","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -20:14:20.361 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-51", - "payload": { - "login": "Testuser1" - } -} - -20:14:20.363 [ws-worker-3] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-51","status":200,"payload":{"login":"TestUser1","out_friends":["TestUser2"],"in_friends":["TestUser2"],"ok":true}} -20:14:20.364 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📥 Получено TEXT-сообщение от клиента: { - "op": "GetFriendsLists", - "requestId": "it-friends-52", - "payload": { - "login": "TestUser2" - } -} - -20:14:20.366 [ws-worker-4] INFO server.ws.BlockchainWsEndpoint - 📤 Отправляем ответ клиенту: {"op":"GetFriendsLists","requestId":"it-friends-52","status":200,"payload":{"login":"TestUser2","out_friends":["TestUser1"],"in_friends":["TestUser1"],"ok":true}} -20:14:20.368 [qtp1582446160-29] INFO server.ws.BlockchainWsEndpoint - WS closed: 1000 bye diff --git a/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java b/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java index c506b5f..732e61c 100644 --- a/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java +++ b/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java @@ -28,10 +28,10 @@ public final class DatabaseInitializer { /* ===================== TEXT (msg_type=1) ===================== */ - public static final short TEXT_NEW = 1; - public static final short TEXT_REPLY = 2; - public static final short TEXT_REPOST = 3; - public static final short TEXT_EDIT = 10; + public static final short TEXT_POST = 10; + public static final short TEXT_EDIT_POST = 11; + public static final short TEXT_REPLY = 20; + public static final short TEXT_EDIT_REPLY = 21; /* ===================== REACTION (msg_type=2) ===================== */ @@ -331,4 +331,4 @@ public final class DatabaseInitializer { DatabaseTriggersInstaller.createAllTriggers(st); } } -} \ No newline at end of file +} diff --git a/shine-server-db/src/main/java/shine/db/DatabaseTriggersInstaller.java b/shine-server-db/src/main/java/shine/db/DatabaseTriggersInstaller.java index b7a772c..f2a7435 100644 --- a/shine-server-db/src/main/java/shine/db/DatabaseTriggersInstaller.java +++ b/shine-server-db/src/main/java/shine/db/DatabaseTriggersInstaller.java @@ -306,12 +306,13 @@ public final class DatabaseTriggersInstaller { } private static void createEditApplyTrigger(Statement st) throws SQLException { - int EDIT = (int) DatabaseInitializer.TEXT_EDIT; + int EDIT_POST = (int) DatabaseInitializer.TEXT_EDIT_POST; + int EDIT_REPLY = (int) DatabaseInitializer.TEXT_EDIT_REPLY; st.executeUpdate(""" CREATE TRIGGER IF NOT EXISTS trg_blocks_edit_apply_ai AFTER INSERT ON blocks - WHEN NEW.msg_type = 1 AND NEW.msg_sub_type = %d + WHEN NEW.msg_type = 1 AND NEW.msg_sub_type IN (%d, %d) BEGIN -- 1) помечаем исходный блок, что его "перекрыл" этот edit UPDATE blocks @@ -346,6 +347,6 @@ public final class DatabaseTriggersInstaller { AND NEW.to_block_number IS NOT NULL AND NEW.to_block_hash IS NOT NULL; END; - """.formatted(EDIT)); + """.formatted(EDIT_POST, EDIT_REPLY)); } -} \ No newline at end of file +} diff --git a/shine-server-db/src/main/java/shine/db/MsgSubType.java b/shine-server-db/src/main/java/shine/db/MsgSubType.java index dec8936..5a1d8a9 100644 --- a/shine-server-db/src/main/java/shine/db/MsgSubType.java +++ b/shine-server-db/src/main/java/shine/db/MsgSubType.java @@ -18,17 +18,17 @@ public final class MsgSubType { /* ===================== TEXT (msg_type=1) ===================== */ - /** Новая публикация. */ - public static final short TEXT_NEW = 1; + /** POST — обычный пост в канале (в линии канала). */ + public static final short TEXT_POST = 10; - /** Ответ (reply). */ - public static final short TEXT_REPLY = 2; + /** EDIT_POST — редактирование исходного поста. */ + public static final short TEXT_EDIT_POST = 11; - /** Репост (repost). */ - public static final short TEXT_REPOST = 3; + /** REPLY — ответ на сообщение. */ + public static final short TEXT_REPLY = 20; - /** Редактирование (edit). */ - public static final short TEXT_EDIT = 10; + /** EDIT_REPLY — редактирование исходного ответа. */ + public static final short TEXT_EDIT_REPLY = 21; /* ===================== REACTION (msg_type=2) ===================== */ @@ -70,4 +70,4 @@ public final class MsgSubType { // не трогая 10/20/30 и 11/21/31 (например, 40/41). // public static final short CONNECTION_BLOCK = 40; // public static final short CONNECTION_UNBLOCK = 41; -} \ No newline at end of file +} diff --git a/shine-server-db/src/main/java/shine/db/dao/SubscriptionsDAO.java b/shine-server-db/src/main/java/shine/db/dao/SubscriptionsDAO.java index 7ecd022..f85f9dd 100644 --- a/shine-server-db/src/main/java/shine/db/dao/SubscriptionsDAO.java +++ b/shine-server-db/src/main/java/shine/db/dao/SubscriptionsDAO.java @@ -13,7 +13,7 @@ import java.util.List; * Возвращает по каждой активной подписке (FOLLOW) + "сам на себя": * - login цели (channelLogin) * - blockchainName цели (channelBchName) - * - count публикаций (TEXT_NEW) + * - count публикаций (TEXT_POST) * - last publication: bytes оригинального блока (для timestamp) * - last publication: bytes актуального блока (edit или orig) — для текста превью * @@ -92,7 +92,7 @@ public final class SubscriptionsDAO { /** * Получить список подписок (активные FOLLOW) + "сам на себя" и по каждой: - * - count публикаций (TEXT_NEW) + * - count публикаций (TEXT_POST) * - последнюю публикацию (orig bytes) + её edit (если есть) * * Поведение при 0 публикаций: @@ -207,11 +207,11 @@ public final class SubscriptionsDAO { // pub_counts ps.setInt(i++, MSG_TYPE_TEXT); - ps.setInt(i++, (int) MsgSubType.TEXT_NEW); + ps.setInt(i++, (int) MsgSubType.TEXT_POST); // last_pub ps.setInt(i++, MSG_TYPE_TEXT); - ps.setInt(i++, (int) MsgSubType.TEXT_NEW); + ps.setInt(i++, (int) MsgSubType.TEXT_POST); try (ResultSet rs = ps.executeQuery()) { while (rs.next()) { @@ -248,4 +248,4 @@ public final class SubscriptionsDAO { return getSubscribedChannels(c, requesterLogin); } } -} \ No newline at end of file +} diff --git a/shine-server-db/src/main/java/shine/db/entities/BlockEntry.java b/shine-server-db/src/main/java/shine/db/entities/BlockEntry.java index 17a423c..39256dc 100644 --- a/shine-server-db/src/main/java/shine/db/entities/BlockEntry.java +++ b/shine-server-db/src/main/java/shine/db/entities/BlockEntry.java @@ -16,7 +16,7 @@ package shine.db.entities; * Плюс поля индексации: * - msg_type / msg_sub_type * - to_* (если есть target) - * - edited_by_block_number (для TEXT_EDIT) + * - edited_by_block_number (для TEXT_EDIT_POST / TEXT_EDIT_REPLY) */ public class BlockEntry { @@ -100,4 +100,4 @@ public class BlockEntry { public Integer getThisLineNumber() { return thisLineNumber; } public void setThisLineNumber(Integer thisLineNumber) { this.thisLineNumber = thisLineNumber; } -} \ No newline at end of file +}