Лимиты в секунду
Каждый вызов относится к одному из трёх классов. Он расходует вашу квоту и лимит в секунду своего класса:
Цифры зависят от тарифа — см. Тарифы и оплата. Лимиты принадлежат тарифу и
общие для всех его эндпоинтов.
Каждый лимит вмещает объём одной секунды. Например, при 30 WU/s сразу проходит до 30 WU, а затем лимит
пополняется со скоростью 30 WU в секунду. Чтение пропускается, пока в лимите чтения осталось хоть
сколько-то места, а его стоимость списывается после ответа: одно тяжёлое чтение может увести лимит ниже
нуля, и следующие чтения ждут, пока он восполнится. Диапазон блоков возвращает не больше 10 блоков за
вызов.
Формат ошибки
Отказ — это JSON с сообщением вError и машиночитаемым code:
code; сообщение может меняться. У отказа всегда есть code. У собственных ошибок
ноды его нет: java-tron отвечает {"Error": "…"} без code, обычно со статусом 200, и такой ответ
тарифицируется как любой другой — см. Единицы квоты.
Отказы не тарифицируются и не несут X-Node-API-WU, кроме method_not_found, который несёт
X-Node-API-WU: 0. Отказы 429 и 503 обычно несут Retry-After.
Коды отказов
По gRPC те же коды приходят в завершающих метаданных
x-node-api-reason, а вместо HTTP-статуса —
статус gRPC; см. gRPC.
Режим деградации
Когда наша основная нода для Node API недоступна или отстаёт от сети, сервис продолжает работать на резервной ноде. В это время:- вызовы с ответом несут заголовок
X-Node-API-Mode: degraded(по gRPC — завершающие метаданныеx-node-api-mode: degraded); - ваш лимит чтения в WU в секунду уменьшается вдвое; лимиты блоковых запросов и отправки транзакций не меняются;
- свежие блоки — в пределах 20 от головы — и их квитанции отдаются как обычно, а более старые блоки,
их квитанции и диапазоны блоков отклоняются с
503 degraded; - общая пропускная способность меньше, поэтому
503 capacityвероятнее.
Повторы
429 rate_read,rate_block,rate_write,trialsи любой503: подождите столько секунд, сколько указано вRetry-After, затем повторите.429 quotaи429 overage_budget: ожидание не поможет. Пополните баланс или смените тариф.502 node_error: повторите. Повторно отправлять ту же подписанную транзакцию безопасно — сеть исполняет ID транзакции только один раз.- Остальные
4xx: исправьте запрос — повтор даст тот же ответ.