SHiNE-server/SHiNE-server/AGENTS.md

3.8 KiB
Raw Blame History

AGENTS.md — SHiNE-server

Назначение

SHiNE-server — серверная часть мессенджера SHiNE: WebSocket-сервер, хранение блоков блокчейна пользователей, доставка личных сообщений (DM), звонки.

Структура папок

  • shine-server-net-server/ — точка входа, запуск HTTP/WS сервера
  • shine-server-net-protocol/ — обработчики операций (RPC и события WS)
  • shine-server-db/ — DAO, SQL-схема, SQLite
  • shine-server-blockchain/ — логика хранения и проверки блоков блокчейна
  • shine-server-crypto/ — криптографические утилиты
  • shine-server-config/ — конфигурация сервера
  • shine-server-log/ — логирование
  • shine-server-geo/ — геолокация IP

Настройка сервера в Solana (Solana PDA)

Серверный аккаунт SHiNE регистрируется в Solana в виде user_pda с флагом is_server=true. В PDA хранятся:

  • адрес сервера (URL WebSocket/HTTPS, например https://shineup.me/ws);
  • список серверов синхронизации (sync_servers) — логины SHiNE-аккаунтов серверов-партнёров, с которыми синхронизируются блоки и DM;
  • корневой ключ сервера (root_key).

Клиенты читают PDA напрямую из Solana, чтобы узнать адрес сервера и при необходимости подключиться.

Управление серверной PDA выполняется через Web-панель администратора:

shine-UI/server-ui.html

Страницы:

  • shine-UI/server-ui/create-server-pda.html — первичная регистрация серверного аккаунта;
  • shine-UI/server-ui/update-server-pda.html — обновление адреса или списка sync_servers.

Для регистрации нужен полный keyBundle (root + device + blockchain). Для обновления — только root + device (blockchain-ключ не нужен).

Актуальные адреса программ Solana (devnet):

  • shine_users: 3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ
  • shine_payments: c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW

Подробнее: Dev_Docs/Инициализация_Solana_регистрации/README.md

Синхронизация с партнёрскими серверами

Сервер должен синхронизировать блоки блокчейна и DM с серверами-партнёрами из sync_servers. Детали: Dev_Docs/Blockchain/sync-between-servers.md

Деплой

./gradlew deployServer
./gradlew deployUI

Default deploy по умолчанию идёт на test2.shineup.me (player@193.8.215.70).

Production deploy:

./gradlew deployServerProduction
./gradlew deployUIProduction

Любые изменения на shineup.me делать только после отдельного явного подтверждения пользователя.

Резервный test-контур:

./gradlew deployServerTest
./gradlew deployUITest

test.shineup.me пока не использовать для обычного deploy.

Логи на проде:

  • /home/player/SHiNE/shine-server/logs/app.log
  • /home/player/SHiNE/shine-server/logs/call-delivery-events.log

Язык

Комментарии в коде, документация и commit-сообщения — на русском языке.