Документация
Обзор API и соглашения
Базовые URL, авторизация X-ACCESS-TOKEN, форматы ответов, включение и правила безопасности API RustMinerSystem.
Обзор API и соглашения
Этот раздел составлен по запросам нового frontend RustMinerSystem и контрактам backend API. Он охватывает администрирование mining proxy, режим Observer, групповое управление, WebSocket и встроенные endpoints PoolNode. Адреса, кошельки, credentials и IDs в примерах обезличены; источником истины остается запущенная версия.
Включение и схема credentials
В новом frontend уже есть готовая страница управления API credentials. Перед вызовом API:
- Установите
ENABLE_CONTROL_API=1вrust-configи перезапустите RustMinerSystem. При установке скриптом можно повторно запустить installer и выбрать «Включить API». - Откройте «Настройки → API» в панели управления и получите либо создайте API Key.
- Используйте API Key для создания Access Token.
- Передавайте
X-ACCESS-TOKENв каждом запросе к открытому API.
Access Token действует примерно два часа. Создание нового Access Token немедленно делает предыдущий недействительным. Обновление API Key делает недействительными старый Key и все созданные с его помощью Access Token.
Фактические поля и форматы ответов зависят от запущенной версии RustMinerSystem.
Базовый URL
В адрес входит URL панели RustMinerSystem и ее safe route:
https://host:web-port/{safe-route}/api/...
Если панель открывается по https://miner.example.com/rms-admin/, список портов находится по адресу:
https://miner.example.com/rms-admin/api/ports
Без safe route API находится в корне сайта. Reverse proxy должен сохранять safe route и заголовок X-ACCESS-TOKEN.
Заголовок авторизации API
API использует официальный заголовок, указанный в frontend:
X-ACCESS-TOKEN: <Access Token>
Content-Type: application/json
Передавайте созданный Access Token непосредственно как значение X-ACCESS-TOKEN без дополнительного префикса.
Read-only запросы Observer используют отдельный credential:
X-OB-TOKEN: <Observer token>
Interceptor встроенного frontend также записывает нестандартный ContentType. Это внутренняя деталь UI; сторонние клиенты должны использовать стандартный Content-Type.
Ответы и ошибки
Endpoints mining proxy обычно возвращают объект, массив, строку или число непосредственно в body. Часть административных endpoints PoolNode использует envelope:
{
"status": 0,
"error": null,
"data": {}
}
| Состояние | Значение |
|---|---|
200 |
HTTP-запрос успешен; дополнительно проверьте результат операции или PoolNode status. |
401 / 403 |
Access Token отсутствует, неверен, истек либо endpoint не принимает этот credential. Создайте новый Token и повторите запрос. |
PoolNode status: 4 |
Проект PoolNode еще не активирован. |
Причина ошибки может находиться в message, error или бизнес-поле status. HTTP 200 не всегда означает успешную бизнес-операцию.
Обозначения ответов:
| Обозначение | Значение |
|---|---|
Foo |
Один JSON object, описанный как модель в этой главе. |
Foo[] |
JSON array элементов Foo. |
string / number |
Прямой scalar body без { data }. |
| «success scalar или HTTP 200» | Frontend не зависит от body; после write выполните GET. |
| Envelope PoolNode | { status, error, data }; читайте data только при status=0. |
null в таблице — реальное отсутствие данных. Не преобразуйте его безусловно в ноль или пустую строку и разрешайте новые поля ответа.
Охват
Документация разделена на:
- включение API, управление Key и Access Token и request headers;
- dashboard, версии, срок хранения offline-записей и системные настройки;
- proxy ports, lossless pumping и fee wallets;
- workers, статистику кошельков, графики и логи;
- web security, сертификаты и firewall;
- read-only Observer;
- fleet forwarding;
- проекты, сайт, доход и subaccounts PoolNode;
- WebSocket и обработку ошибок.
Рекомендации по безопасности
- Публикуйте API только через HTTPS.
- Не помещайте API, Observer или fleet credentials в URL, логи и снимки экрана.
- Текущий frontend не предоставляет отдельные scopes или несколько credentials, поэтому считайте Access Token высокопривилегированным secret.
- Создайте backup перед изменением портов, кошельков, allowlist, сертификатов и safe route.
- Используйте connect/read/total timeout и ограниченный exponential backoff.
- Если API не используется, установите
ENABLE_CONTROL_API=0и перезапустите программу.
