Документация
WebSocket, ошибки и совместимость
Real-time Stratum WebSocket, подписки, состояния ошибок, совместимость и неиспользуемые endpoints RustMinerSystem.
WebSocket, ошибки и совместимость
URL WebSocket
Real-time Stratum data workers использует:
ws://host:port/{safe-route}/api/ws
wss://host:port/{safe-route}/api/ws
Для HTTPS требуется wss://. Safe route строится так же, как для HTTP API.
Subscribe и heartbeat
Подпишитесь на worker group:
{
"type": "subscribe",
"group_id": "<worker gid>"
}
Frontend каждые 10 секунд отправляет heartbeat:
{
"type": "ping"
}
Server может вернуть строку pong, { "type": "pong" } или pong внутри body.
Отмена подписки и закрытие:
{
"type": "unsubscribe",
"group_id": "<worker gid>"
}
{
"type": "close"
}
Сообщения бывают строкой, JSON object или envelope { type, body }. ID worker может называться workerID, workerId, worker_id, sid или id.
Обработка HTTP ошибок
| Ситуация | Рекомендация |
|---|---|
| Нет HTTP response | Network failure, restart или CORS; ограниченный retry с backoff. |
401 / 403 |
Проверьте X-ACCESS-TOKEN и создайте новый Token с текущим Key. |
404 |
Проверить поддержку endpoint текущей версией backend. |
5xx |
Записать request ID, path и redacted error; не повторять бесконечно. |
| HTTP 200 + business failure | Проверить PoolNode status, error и результат конкретной операции. |
Изменение web port, safe route, TLS и сертификата может перезапустить service и оборвать запрос. Проверяйте результат через новый URL.
Определены, но не вызываются текущим frontend
| Путь | Состояние |
|---|---|
/api/port/{id}/workers |
Старый список workers; сейчас используется /api/port/{id}/g/workers. |
/api/sysinfo |
Старый endpoint; сейчас используется /api/sys/base/info. |
/api/pump/t |
Getter pump timing, сейчас не используется. |
/api/pump/t/{pump_t} |
Setter pump timing, сейчас не используется. |
/api/poolnode/rewards |
p_get_fee_log — неиспользуемый alias; тот же путь используется списком rewards. |
Нельзя определять HTTP method, permissions и response contract неиспользуемого пути только по frontend-константе. Эта версия документации не считает их стабильными, пока целевой экземпляр не подтвердит фактический ответ.
Совместимость
- При запуске вызывайте
/api/local/versionи включайте optional features по версии. - Разбирайте новые поля permissively и не полагайтесь на порядок полей JSON.
- GET, POST и DELETE на одном пути являются разными операциями.
- Получайте enums валют, протоколов и статусов из
/api/currency/configили текущих ответов. - Храните API Key, Access Token, Observer token и fleet API отдельно.
Совместимый parsing ответов
- Проверяйте HTTP status и
Content-Type, но принимайте scalar JSON и plain text. - Если object содержит
statusиdata, разбирайте его как PoolNode envelope; приstatus !== 0читайтеerror. - Для обычной ошибки сначала читайте
message, затемerror, затем redacted raw body. - Считайте
[]успешным пустым списком. - Сохраняйте
nullв charts и доверяйте возвращеннымpage,size,pages,total. - Если переключение port, TLS, certificate или route оборвало запрос, сначала выполните read-only проверку по новому адресу.
Diagnostic logs могут хранить method, path template, HTTP status и business status, но должны удалять API, Observer и fleet tokens, wallets, certificate keys и полные revenue data.
