RustMinerSystem

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

API проекта и сайта PoolNode

Активация проекта, порты, endpoints, сайт, TLS, сертификаты, шаблоны и app configuration встроенного PoolNode.

API проекта и сайта PoolNode

Эти /api/poolnode/* endpoints вызываются административной панелью RustMinerSystem. Они отличаются от пользовательского API PoolNode /api/user/* и предназначены для владельца node.

PoolNode часто возвращает { status, error, data }. Frontend извлекает data и считает status: 4 признаком неактивированного проекта.

Заявка и активация проекта

Метод Путь Body/назначение
GET /api/poolnode/project/info Статус, имя и fee configuration проекта.
POST /api/poolnode/project/apply Заявка { name, token }.
POST /api/poolnode/project/active Активация { code, token, captcha_token }.
POST /api/poolnode/project/unactive Деактивировать текущий проект.

Деактивация очищает состояние проекта, fees и ports в frontend. Сначала сохраните settlement и website data.

Порты и endpoints node

Метод Путь Назначение
GET /api/poolnode/ports Получить порты PoolNode.
POST /api/poolnode/port/new Создать порт на node servers.
POST /api/poolnode/extra/{port} Изменить public mode и unified wallet listen port.
DELETE /api/port/{id} Удалить node port через общий endpoint.
GET /api/poolnode/endpoints Регионы/upstream endpoints.
GET /api/poolnode/ping/{id} Измерить latency endpoint.
GET /api/poolnode/project/stats?k={coin} Статистика одной node currency.
GET /api/poolnode/sync/info Sync success, failure и details.

Для некоторых монет к ping добавляется ?k=KAS. Пример создания:

{
  "port": 3333,
  "name": "Pool Port",
  "currency": "PI-BTC",
  "pool_address": "<JSON string с endpoint ID>",
  "mode": 1,
  "protocol": 0,
  "category": "poolnode",
  "proxy_addr": ""
}

Extra settings:

{
  "mode": 1,
  "proxy_addr": "<wallet или subaccount для public mode>"
}

Настройки сайта

Метод Путь Запрос/назначение
GET /api/poolnode/index/port Получить web port.
POST /api/poolnode/index/port Изменить через { "r": 8080 }.
GET /api/poolnode/route Получить safe route сайта.
POST /api/poolnode/route Изменить через { "k": "route" }.
GET /api/poolnode/enable/index Состояние public access.
POST /api/poolnode/enable/index/{flag} Переключить public access; backend flag инвертирован относительно UI boolean.
GET /api/poolnode/index/tls Состояние TLS.
POST /api/poolnode/index/tls/{flag} Настроить TLS.

Изменение порта, route и TLS может перезапустить service. Подготовьте новый URL заранее.

Сертификат сайта

Метод Путь Назначение
GET /api/poolnode/cert Получить тип текущего сертификата.
POST /api/poolnode/cert/upload Загрузить PEM и private key сайта.
POST /api/poolnode/cert/reset Восстановить встроенный сертификат.

Body имеет вид { pem, key }; оба значения — Base64 от UTF-8 текста.

Branding и templates

Метод Путь Назначение
GET /api/poolnode/webconfig Получить name, logo, notice и branding.
POST /api/poolnode/webconfig Сохранить website configuration.
GET /api/poolnode/pool/asset/selected Текущий template.
GET /api/poolnode/pool/assets Все доступные templates.
GET /api/poolnode/pool/asset/status Статус загрузки template.
POST /api/poolnode/pool/asset Выбрать template.
POST /api/poolnode/pool/asset/reset Восстановить стандартный template.

Website configuration передается как Base64 JSON:

{
  "k": "<Base64(JSON.stringify(config))>"
}

Выбор template:

{
  "asset_id": 1,
  "item_id": 2
}

App communication

Метод Путь Назначение
GET /api/poolnode/project/url Получить app API URL, name и invitation code.
POST /api/poolnode/project/url Сохранить app communication URL.
{
  "api_url": "https://pool.example.com/safe-route",
  "refresh": 0
}

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

PoolNode обычно использует:

{
  "status": 0,
  "error": null,
  "data": {}
}

status=0 означает успех, status=4 — project не активирован, error содержит описание ошибки, data — бизнес-значение. Несколько переиспользованных endpoints proxy ports возвращают массивы или scalars напрямую.

Project

GET /api/poolnode/project/info возвращает в data:

Поле Тип Значение
cid number ID project/customer.
name string Имя project.
created_at string Время создания.
config array Fee config по валютам.
config[].coin string Код валюты PoolNode.
config[].email string Revenue email; скрывайте его.
config[].r string/number Fee ratio как дробь 0–1.

Apply и activate возвращают объекты business state. Unactivate возвращает success envelope и изменяет состояние project.

Endpoints, ports, statistics и sync

/api/poolnode/endpoints возвращает enveloped Endpoint[]; в каждом есть id, coin, name, nullable url. pool_address при create port — не hostname: выберите endpoint с совпадающим coin и отправьте JSON.stringify(endpoint.id). Ping использует тот же id и возвращает latency в миллисекундах в data.

/api/poolnode/ports возвращает port rows напрямую. server соответствует общей модели порта; в pool_address находится строка endpoint ID. Node stat содержит port, online, conn, offline, delay, coin. Create возвращает ID или success scalar; после edit/delete обновите список.

/api/poolnode/project/stats?k={coin} возвращает { hashrate, hashrate1440, online, conn }; первые три могут быть null.

/api/poolnode/sync/info возвращает:

{
  "summary": { "sc": 0, "fl": 0, "ty": 0, "lt": "..." },
  "details": [
    { "sc": 1, "fl": 0, "ty": 0, "lt": "..." }
  ]
}

sc — success count/flag, fl — failure count, ty — sync type, lt — последнее время sync.

Web, TLS и certificate state

GET возвращают enveloped values: index/port — number, route — string, enable/index, index/tls, cert — number. Frontend считает enable/index.data=0 включенным public access, а cert.data=0 — встроенным сертификатом. Writes возвращают status=0; изменения port, route, TLS и certificate могут перезапустить сайт.

Site config и templates

webconfig.data — Base64 JSON string с совместимостью с прямым объектом. После decode frontend считает logo, title, title1, title2, rotate, title3, bottom, fee строками.

pool/asset/selected.data — массив, первые два значения которого являются asset_id и item_id; разрешайте дополнительные status values. pool/asset/status.data{ is_downloading: number }.

Каждая запись pool/assets.data содержит:

Поле Тип Значение
id number ID template asset.
cid number ID project/category.
theme string Имя template.
cover string URL preview.
uid number/null ID publisher.
created_at / updated_at string Timestamps.
items array Доступные версии.
items[].id number ID version item.
items[].version string Версия.
items[].zip_url string/null Download URL, который может быть закрыт.

Выбирайте asset_id и item_id из одного template. Select/reset успешны только при data="Ok".

App config

GET возвращает { invite_code, name, url } напрямую или в data. invite_code может быть числом; преобразуйте в строку для отображения. После POST повторите GET для canonical url.