Conexão
Cota, limites e preços são os mesmos do HTTP. Uma chamada é pesada pelo tamanho da sua resposta
protobuf, com a mesma fórmula — veja Unidades de cota.
Arquivos .proto
O servidor não tem reflexão: o seu cliente precisa dos arquivos.proto da TRON. Eles estão
publicados no repositório tronprotocol/protocol; os
serviços ficam em api/api.proto.
-import-path para o clone e -proto para api/api.proto:
node.tronrental.com:443 e passe a chave nos metadados de cada chamada.
Nomes de métodos e bytes
-
Os nomes dos métodos diferenciam maiúsculas de minúsculas, como no
.proto:protocol.Wallet/GetAccount, nãogetAccount. Um método que o nó não tem termina comUNIMPLEMENTED,x-node-api-reason: method_not_foundex-node-api-wu: 0— não custa nada. -
Endereços e IDs são bytes. No JSON do grpcurl, bytes são base64. Um endereço TRON tem 21 bytes:
41seguido de 20 bytes. Para converter sua forma hex em base64: -
Uma mensagem de requisição tem no máximo 512 KB. Uma maior é recusada com
RESOURCE_EXHAUSTEDantes de ser processada.
Metadados finais
Códigos de status
As recusas são mapeadas para status gRPC conforme o seu status HTTP. O código em si está emx-node-api-reason; a lista completa está em Limites e erros.
Um erro retornado pelo próprio nó (por exemplo,
INVALID_ARGUMENT para uma transação malformada) é
repassado a você como está e custa 1 WU: o nó fez o trabalho. Se o nó não responde, a chamada termina
com UNAVAILABLE e x-node-api-reason: node_error e não custa nada.
Um
RESOURCE_EXHAUSTED sem x-node-api-reason vem do próprio servidor gRPC: a mensagem de requisição
passa de 512 KB, ou o servidor está segurando chamadas demais ao mesmo tempo. No segundo caso, tente
novamente após uma breve pausa.Novas tentativas e transmissões
Uma chamada nunca é repetida em outro nó sem você saber: umUNAVAILABLE pode significar que a conexão
caiu depois de o nó receber a requisição. Reenviar a mesma transação assinada para
BroadcastTransaction é seguro — a rede executa um ID de transação apenas uma vez.