Limites por segundo
Toda chamada pertence a uma de três classes. Ela gasta a sua cota e o limite por segundo da sua classe:
Os números dependem do plano — veja Planos e cobrança. Os limites pertencem ao
plano e são compartilhados por todos os seus endpoints.
Cada limite comporta o equivalente a um segundo. Com 30 WU/s, por exemplo, até 30 WU passam de uma vez,
e depois o limite se recompõe a 30 WU por segundo. Uma leitura é admitida enquanto o limite de leitura
tiver alguma folga, e o seu custo é descontado depois da resposta: uma leitura pesada pode levar o
limite abaixo de zero, e as leituras seguintes esperam até ele se recompor. Um intervalo de blocos
retorna no máximo 10 blocos por chamada.
Formato do erro
Uma recusa é um JSON com uma mensagem emError e um code legível por máquina:
code; a mensagem pode mudar. Uma recusa sempre tem code. Os erros do próprio nó não têm: o
java-tron responde {"Error": "…"} sem code, normalmente com status 200, e uma resposta dessas é
cobrada como qualquer outra — veja Unidades de cota.
As recusas não são cobradas e não trazem X-Node-API-WU, exceto method_not_found, que traz
X-Node-API-WU: 0. As recusas 429 e 503 normalmente trazem Retry-After.
Códigos de recusa
No gRPC, os mesmos códigos chegam nos metadados finais
x-node-api-reason, com um status gRPC no lugar
do HTTP — veja gRPC.
Modo degradado
Quando o nosso nó principal do Node API está indisponível ou fica atrás da rede, o serviço continua funcionando em um nó de reserva. Enquanto isso:- as chamadas respondidas trazem o cabeçalho
X-Node-API-Mode: degraded(no gRPC, os metadados finaisx-node-api-mode: degraded); - o seu limite de leitura em WU por segundo cai pela metade; os limites de requisições de blocos e de envio de transações continuam como estão;
- os blocos recentes — a até 20 da ponta — e seus recibos são servidos normalmente, enquanto blocos mais
antigos, seus recibos e intervalos de blocos são recusados com
503 degraded; - a capacidade compartilhada é menor, então
503 capacityfica mais provável.
Novas tentativas
429 rate_read,rate_block,rate_write,trialse todo503: aguarde o número de segundos deRetry-Aftere tente novamente.429 quotae429 overage_budget: esperar não ajuda. Recarregue o saldo ou mude de plano.502 node_error: tente novamente. Reenviar a mesma transação assinada é seguro — a rede executa um ID de transação apenas uma vez.- Outros
4xx: corrija a requisição; repeti-la dá a mesma resposta.