RustMinerSystem

Документация

API workers, статистики кошельков и графиков

Графики портов, список workers, статистика wallets, индивидуальные ratios, логи и TCP connections RustMinerSystem.

API workers, статистики кошельков и графиков

Эти endpoints обслуживают страницу порта и dashboard. GET подходит для read-only monitoring; изменение ratios влияет на фактическую комиссию.

Графики и системная статистика

Метод Путь Назначение
GET /api/stat/currency/{currency} История общего хешрейта валюты.
GET /api/stat/port/{id} История хешрейта listen port.
GET /api/stat/worker/{id} История хешрейта worker.
GET /api/device/stats История общего количества устройств.
GET /api/currency/online/stat/{coin} История online-устройств монеты.
GET /api/sys/stat История CPU, памяти, RX и TX.
GET /api/sys/base/info Текущий снимок системных ресурсов.

История обычно возвращается массивом. Timestamp и units могут отличаться между версиями backend.

Список workers

GET /api/port/{id}/g/workers?device=0&size=50&page=1&col=s_thh&desc=1&wallet=...
Параметр Значение
device Фильтр состояния; frontend по умолчанию использует 0.
size Размер страницы.
page Номер страницы.
col Поле сортировки, например s_thh.
desc 1 — по убыванию, 0 — по возрастанию.
wallet Необязательный список кошельков через запятую.

Frontend читает, в частности:

{
  "workers": [],
  "total": 0,
  "stat": {
    "online": 0,
    "offline": 0,
    "s_thh": 0
  }
}

Сводка wallets и favorites

Метод Путь Назначение
GET /api/port/{id}/g/wallet/list Wallets для фильтра.
GET /api/port/{id}/g/wallets/{collect} Сводка wallets; collect управляет favorites.
POST /api/port/{id}/wallet/collect Добавить или удалить favorite.
{
  "wallet": "<wallet или subaccount>",
  "f": 1
}

f=1 добавляет favorite, f=0 удаляет.

Индивидуальный ratio кошелька

Метод Путь Назначение
GET /api/port/{id}/wallet/ratio Получить ratios wallets.
POST /api/port/{id}/wallet/ratio Установить ratio для miner wallet и fee wallet.
DELETE /api/port/{id}/wallet/{wallet_name}/ratio Восстановить стандартный ratio.
{
  "wallet": "<miner wallet>",
  "wid": 10,
  "r": 0.01
}

wid — ID fee wallet, r — дробь 0–1.

Индивидуальный ratio worker

Текущее значение:

GET /api/wallet/{wallet_id}/worker/{sid}/ratio

Сохранение или сброс:

POST /api/port/{id}/worker/ratio
X-ACCESS-TOKEN: <Access Token>
{
  "sid": "<worker session ID>",
  "wid": 10,
  "r": 0.01,
  "f": 1
}

f=1 сохраняет индивидуальный ratio, f=0 восстанавливает стандартный.

Логи и соединения

Метод Путь Назначение
GET /api/port/{id}/log Логи порта.
GET /api/group/{gid}/log Connect/disconnect логи worker group.
GET /api/worker/{id}/error/log Failure data stream worker.
GET /api/port/{id}/ips?page=1&size=20 TCP connections порта.

TCP-ответ обычно содержит data, size, page, pages и total.

Полные модели ответов

Графики

Currency, port и worker charts возвращают ChartPoint[]. Для port chart используется server.port, для worker chart — workers[].sid || workers[].id.

Envelope списка workers

{
  "workers": [],
  "stat": {
    "id": "...",
    "online": 0,
    "conn": 0,
    "offline": 0,
    "thh": 0,
    "s_thh": 0,
    "delay": 0,
    "ct": 0
  },
  "pages": 0,
  "total": 0,
  "page": 1,
  "size": 50
}

Поля workers[], которые использует frontend:

Поле Тип Значение
id string ID worker; предпочтителен для failure-stream.
sid string Session ID; предпочтителен для chart и independent ratio.
gid string ID connection group для логов и WebSocket subscription.
name string Имя worker.
wallet string Wallet/subaccount и значение фильтра.
status number 0, 1, 3 отображаются как online; остальные как offline.
s_thh / s_phh number/string Effective и fee hashrate.
ca string Категория алгоритма; fallback — category порта.
succ / fail number Успешные и неуспешные shares.
wn number/string Timestamp начала online.
n number/null Текущая concurrency.
dc number Число disconnect.
delay number Задержка в миллисекундах.
mode number Mode порта; при 1 UI не показывает disconnect statistics.
r number Текущий fee ratio, дробь 0–1.
md boolean/number Legacy-флаг совпадения правила замены worker name.
wd string/null ID совпавшей комбинированной hot-replacement rule t=2 для кошелька и worker name; null или пустое значение без совпадения. Соответствует индексу tuple 0 (id) в /api/ht.

Сохраняйте дополнительные поля ответа и используйте sid || id как session identifier. Если wd не пуст, найдите rule с тем же id через GET /api/ht/{server_id}, разделите ее target как wallet.device и вычислите сторону кошелька относительно текущего wallet, а сторону worker — относительно текущего name. На соответствующих сторонах разрешите #{WALLET} и #{DEVICE}. Если rule также содержит address и c, покажите перенаправленный pool и его протокол TCP или TLS/SSL. Поля hw и hd устарели и не должны использоваться текущими clients.

Wallet lists и statistics

  • /g/wallet/list возвращает string[]; значения можно отправлять в query parameter wallet.
  • /g/wallets/{collect} возвращает id (текст wallet/subaccount), online, offline, s_thh, ct; ct=1 означает favorite.
  • /wallet/ratio возвращает tuples: [[targetWallet, feeWalletId, ratio], ...].

id строки statistics не является ID fee-wallet. feeWalletId, wid, wallet_id берутся из wallets[].id порта.

GET /api/wallet/{wallet_id}/worker/{sid}/ratio возвращает null или { "r": 0.01 }. При null используйте default ratio выбранного fee wallet. Операции favorite, save/reset ratio возвращают success scalar или HTTP 200; затем повторите GET.

Логи и connections

Endpoint Успешный ответ
/api/port/{id}/log { t, f, d? }[]; t — timestamp, f — событие с разделителем `
/api/group/{gid}/log { t, f, d? }[]; UI разбирает `connectionId
/api/worker/{id}/error/log Raw failure stream без фиксированной object schema.
/api/port/{id}/ips { data, total, pages, page, size }.

Port-log f разбирается как reserved|worker|wallet|IP|category|status. Категории: GROUP, IP_FORBIDDEN, WALLET_FORBIDDEN. В data[] connections находятся ip, t, nullable gid.

Зависимости полей

Input Источник
Большинство port {id} GET /api/portsserver.id.
{id} port chart server.port той же записи.
Фильтр wallet Строка /g/wallet/list или /g/wallets/{collect}id.
wid / wallet_id Port detail → wallets[].id.
sid Worker list → `sid
gid Worker list → gid.