Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.royalratsproductions.ru/llms.txt

Use this file to discover all available pages before exploring further.

Данные и устойчивость

CROWN/RRP использует постоянные локальные хранилища для экономического состояния, настроек и служебной истории.

SQLite

Экономика и связанные с ней операции хранятся в SQLite. В банковском хранилище находятся:
  • счета игроков;
  • счета фракций;
  • инвентарь и магазин;
  • журнал денежных операций;
  • кредиты;
  • платежи по кредитам;
  • заявки на кредиты;
  • статусы заморозки счетов;
  • фракционные выплаты.
Реестры также используют SQLite и хранят записи, папки, поля, значения, архивное состояние и поисковый индекс.

settings.json

Конфигурация серверов хранится в settings.json. В ней находятся настройки модулей, роли, лимиты, параметры UI, заявки и часть runtime-состояния, которое уже исторически связано с настройками сервера. Запись настроек выполняется атомарно и сопровождается резервными копиями. При повреждении файла система переходит в безопасное degraded-состояние.

Durable requests

Заявки на кредиты и заявки Applications проектируются как durable requests:
  • нефинальные статусы восстанавливаются после рестарта;
  • финальные статусы не возвращаются в активные;
  • старые нефинальные записи истекают через 30 дней;
  • дубли закрываются без удаления основной записи.

tx_log и аудит

tx_log хранит историю денежных событий: пополнения, списания, переводы, фракционные операции, кредиты и выплаты. Этот журнал используется для истории, экспорта, восстановления и проверки спорных операций. Отдельные audit-журналы используются для административных действий и изменений конфигурации. В них нельзя записывать секреты, токены или приватные payload-данные.

Принципы restart safety

  • Сначала записывается устойчивое состояние, затем выполняются побочные эффекты.
  • Денежные операции выполняются транзакционно.
  • Повторный запуск не должен создавать дубли платежей или заявок.
  • Старые кнопки и устаревшие сообщения должны требовать повторного открытия актуального экрана.
  • История операций сохраняется даже при удалении активной сущности, если это нужно для аудита.