Saltar al contenido principal

Límites por segundo

Cada llamada pertenece a una de tres clases. Gasta tu cuota y el límite por segundo de su clase: Las cifras dependen del plan — consulta Planes y facturación. Los límites pertenecen al plan y los comparten todos sus endpoints. Cada límite admite lo equivalente a un segundo. Con 30 WU/s, por ejemplo, pasan hasta 30 WU de golpe, y después el límite se recarga a 30 WU por segundo. Una lectura se admite mientras al límite de lectura le quede algo de margen, y su coste se descuenta después de la respuesta: una lectura pesada puede dejar el límite por debajo de cero, y las lecturas siguientes esperan hasta que se haya recargado. Un rango de bloques devuelve como máximo 10 bloques por llamada.

Formato de los errores

Un rechazo es un JSON con un mensaje en Error y un code legible por máquina:
Usa code; el mensaje puede cambiar. Un rechazo siempre tiene code. Los errores propios del nodo no: java-tron responde {"Error": "…"} sin code, normalmente con el estado 200, y esa respuesta se cobra como cualquier otra — consulta Unidades de cuota. Los rechazos no se cobran y no llevan X-Node-API-WU, salvo method_not_found, que lleva X-Node-API-WU: 0. Los rechazos 429 y 503 suelen llevar Retry-After.

Códigos de rechazo

Por gRPC, los mismos códigos llegan en los metadatos finales x-node-api-reason, con un estado gRPC en lugar del HTTP — consulta gRPC.

Modo degradado

Cuando nuestro nodo principal de Node API no está disponible o se queda por detrás de la red, el servicio sigue funcionando con un nodo de reserva. Mientras tanto:
  • las llamadas respondidas llevan el encabezado X-Node-API-Mode: degraded (por gRPC, los metadatos finales x-node-api-mode: degraded);
  • tu límite de lectura en WU por segundo se reduce a la mitad; los límites de solicitudes de bloques y de envío de transacciones no cambian;
  • los bloques recientes — a 20 o menos de la cabeza — y sus recibos se sirven como siempre, mientras que los bloques antiguos, sus recibos y los rangos de bloques se rechazan con 503 degraded;
  • la capacidad compartida es menor, así que 503 capacity es más probable.
Los envíos de transacciones nunca se recortan. El modo normal vuelve por sí solo; no tienes que hacer nada. Si tu aplicación lee bloques antiguos, pausa ese trabajo mientras el encabezado esté presente y reanúdalo cuando desaparezca.

Reintentos

  • 429 rate_read, rate_block, rate_write, trials y cualquier 503: espera los segundos que indica Retry-After y reintenta.
  • 429 quota y 429 overage_budget: esperar no ayuda. Recarga el saldo o cambia de plan.
  • 502 node_error: reintenta. Reenviar la misma transacción firmada es seguro — la red ejecuta un ID de transacción una sola vez.
  • Otros 4xx: corrige la solicitud; repetirla da la misma respuesta.