Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
RPC Assistant

Guía de Sui gRPC: Endpoints, Streaming y Migración desde JSON-RPC

Resumen

Sui gRPC es la interfaz RPC basada en Protocol Buffers, con seguridad de tipos, expuesta por los nodos completos de Sui. Es la ruta de producción recomendada para leer el estado de la cadena, ejecutar transacciones y consumir streams en tiempo real. OnFinality proporciona infraestructura administrada de Sui gRPC y RPC en mainnet y testnet; los detalles actuales de los endpoints se publican en /networks/sui. En la práctica, se usa grpcurl con un marcador de posición GRPC_ENDPOINT y metadatos de autorización de su proveedor, y luego se apunta a los servicios por nombre. LedgerService cubre checkpoints y datos de consenso, StateService cubre lecturas de objetos y saldos, TransactionExecutionService proporciona los flujos de trabajo ExecuteTransaction y SimulateTransaction, y SubscriptionService ofrece SubscribeCheckpoints, SubscribeTransactions y SubscribeEvents para streaming. Dado que JSON-RPC se está retirando, los equipos deben planificar una migración mapeando los flujos de trabajo heredados de lectura, escritura y suscripción a estos servicios gRPC. Trabaje a partir de clientes generados o definiciones proto, no de llamadas JSON construidas a mano. Pruebe en testnet con el faucet en https://faucet.sui.io, mantenga mainnet separado y verifique la reconexión de streams y las máscaras de campo antes de producción.

Puntos clave

  • Sui gRPC utiliza Protocol Buffers sobre HTTP/2 para lecturas, ejecución, simulación y streaming eficientes.
  • LedgerService, StateService, TransactionExecutionService y SubscriptionService cubren datos de cadena, estado de objetos, ciclo de vida de transacciones y streams en tiempo real.
  • Para una integración segura, utilice grpcurl con el marcador de posición GRPC_ENDPOINT y metadatos de autorización emitidos por el proveedor; nunca incruste hosts en vivo.
  • Planifique la migración desde JSON-RPC mapeando flujos de trabajo de lectura, escritura y suscripción a los servicios gRPC; luego verifique la semántica de objetos y checkpoints.

Sui gRPC: Por qué es la ruta de integración predeterminada

Sui gRPC es la interfaz RPC basada en protocolos expuesta por los nodos completos de Sui. Utiliza Protocol Buffers (proto) sobre HTTP/2 para una comunicación segura, compacta y bidireccional. Para aplicaciones de producción, gRPC es la ruta recomendada porque reduce el tamaño de la carga útil, admite streaming del servidor y se mapea directamente al modelo de objetos y checkpoints de Sui.

OnFinality proporciona infraestructura administrada de Sui gRPC y RPC para mainnet y testnet. Los endpoints exactos y los detalles de acceso se publican en la página de red de Sui (/networks/sui). Los equipos deben tratar gRPC como infraestructura: verificar los servicios compatibles, la visibilidad de solicitudes y la conmutación por error antes de mover tráfico sostenido.

Si viene de JSON-RPC, planifique la migración en torno a flujos de trabajo en lugar de copias método por método. El mismo estado de cadena está disponible, pero gRPC agrupa operaciones en servicios como LedgerService y TransactionExecutionService.

Configuración segura de endpoints con grpcurl y marcadores de posición de autorización

Para experimentar sin un cliente generado, use grpcurl. No pegue un endpoint público de un tercero a menos que tenga permiso explícito y comprenda los límites de frecuencia. Para endpoints administrados por OnFinality, use el marcador de posición GRPC_ENDPOINT y pase metadatos de autenticación mediante -rpc-header. El host exacto y el formato del token están disponibles en el panel del proveedor o en la página /networks/sui.

Un listado mínimo con grpcurl se ve así:

  • Utilice TLS (puerto 443) para servicios administrados; localhost en texto plano solo es para nodos completos autoalojados.
  • Mantenga los tokens de autorización en variables de entorno o un administrador de secretos; nunca los incluya en el control de versiones.
  • Valide la lista de servicios con grpcurl $GRPC_ENDPOINT list, luego describa un servicio con grpcurl $GRPC_ENDPOINT describe <service>.

Servicios centrales de Sui gRPC y sus responsabilidades

La API de Sui gRPC está agrupada en servicios definidos en archivos proto. Los cuatro servicios más relevantes para los constructores son LedgerService, StateService, TransactionExecutionService y SubscriptionService. Pueden existir otros servicios para metadatos de paquetes o verificación de firmas; consulte los stubs generados de su cliente o el listado de servicios del proveedor.

CriterioQué revisarPor qué importa
LedgerServiceRecuperación de checkpoints, datos de consenso, orden de transaccionesFundamental para indexadores que necesitan datos consistentes y ordenados
StateServiceLecturas de objetos, saldos, campos dinámicosNúcleo para wallets, exploradores y dApps que leen estado de objetos
TransactionExecutionServiceFlujos de trabajo de ExecuteTransaction y SimulateTransactionPermite ejecución firmada y simulación segura de pre-vuelo
SubscriptionServiceSubscribeCheckpoints, SubscribeTransactions, SubscribeEventsPermite feeds en tiempo real con baja latencia sin polling

Lectura de objetos y checkpoints

El modelo centrado en objetos de Sui significa que la lectura de estado a menudo comienza con un ID de objeto o dirección de propietario. StateService maneja lecturas de objetos y consultas relacionadas. Puede recuperar objetos individuales, listar objetos propiedad de una dirección e inspeccionar campos dinámicos utilizando los métodos de cliente generados para esos flujos de trabajo. Dado que los métodos gRPC son tipados, trabaja con referencias de objetos y máscaras de campo donde se admiten, en lugar de parámetros JSON de forma libre.

La recuperación de checkpoints es servida por LedgerService. Un checkpoint es un conjunto certificado de transacciones que delimita la finalidad de Sui. Utilice los métodos de LedgerService para obtener el número de secuencia del último checkpoint, recuperar un checkpoint por secuencia o digest, y paginar a través de listas de transacciones dentro de un checkpoint. Este es un patrón fundamental para indexadores que necesitan datos consistentes y ordenados.

  • Capture siempre el número de secuencia, el digest y la marca de tiempo al procesar checkpoints para reanudabilidad.
  • Para lecturas de objetos, prefiera máscaras de campo para controlar el tamaño de la respuesta.
  • Trate las versiones de objetos como importantes: las consultas de estado pueden incluir una versión de objeto para razonar sobre actualizaciones.

Ejecución y simulación de transacciones con TransactionExecutionService

TransactionExecutionService es donde viven la ejecución y simulación de transacciones firmadas. Use SimulateTransaction para validar una transacción antes de enviarla. La simulación acepta una carga útil de transacción y devuelve efectos sin comprometer el estado, lo que la hace útil para estimar gas, verificar errores de Move y previsualizar cambios de saldo.

Use ExecuteTransaction para enviar una transacción completamente firmada para su inclusión. Los campos de solicitud exactos están definidos en los esquemas proto y los envoltorios de cliente generados; no los reconstruya a mano. Después de llamar a ExecuteTransaction, rastree la inclusión en el checkpoint o espere los efectos a través del cliente o del feed de suscripción para confirmar la finalidad.

Si un cliente generado usa un nombre de envoltorio ligeramente diferente, siga el método generado que expone el flujo de trabajo de ExecuteTransaction.

  • Simule primero, ejecute después.
  • Mantenga intactos los bytes de la transacción firmada; no modifique después de firmar.
  • Use comprobaciones de idempotencia o digest de transacción para reintentos.

Streaming con SubscribeCheckpoints, SubscribeTransactions y SubscribeEvents

SubscriptionService proporciona RPCs de streaming del servidor para actividad en cadena en tiempo real. SubscribeCheckpoints envía checkpoints finalizados a medida que se certifican. SubscribeTransactions transmite transacciones ejecutadas, y SubscribeEvents transmite eventos Move emitidos. Estos métodos reducen el polling y permiten que indexadores, exploradores y sistemas de alerta reaccionen con baja latencia.

Cada stream admite filtrado del lado del servidor y máscaras de campo donde el proto las define. Al reconectar, use el último número de secuencia de checkpoint procesado o el digest de transacción para reanudar sin brechas. Para endpoints públicos o administrados, tenga en cuenta los tiempos de espera de stream y las políticas de reconexión; pruebe con clientes de larga duración.

  • SubscribeCheckpoints: utilícelo para estado de cadena ordenado e indexación.
  • SubscribeTransactions: utilícelo para feeds de transacciones y observación de mempool.
  • SubscribeEvents: utilícelo para escuchar tipos de eventos Move emitidos.

Mapeo práctico de migración de JSON-RPC a gRPC

La migración es un mapeo de flujos de trabajo, no un intercambio de métodos uno a uno. Los métodos heredados de JSON-RPC como suix_getObject, suix_getBalance, suix_executeTransactionBlock y suix_subscribeEvent se mapean conceptualmente a StateService, LedgerService, TransactionExecutionService y SubscriptionService. Sin embargo, las formas de solicitud y respuesta difieren porque gRPC usa mensajes protobuf, no SuiJSON.

Comience por inventariar las llamadas JSON-RPC en su base de código. Agrúpelas en lecturas (objetos, saldos), checkpoints, ejecución/simulación de transacciones y suscripciones. Luego implemente cada grupo utilizando el cliente gRPC generado para su lenguaje. Mantenga la misma lógica de aplicación para analizar efectos; ajústese a los tipos protobuf nativos.

No invente campos protobuf a partir de nombres JSON-RPC. Genere stubs de las definiciones proto oficiales de Sui o de las bibliotecas cliente documentadas por el proveedor, luego use los métodos generados.

CriterioQué revisarPor qué importa
Lectura de objeto (suix_getObject)Consulta de objeto StateService con solicitud tipadaReemplaza la recuperación de objetos JSON heredada
Lectura de saldo (suix_getBalance)Consulta de saldo StateServiceAcceso tipado a monedas y saldos
Último checkpoint (suix_getLatestCheckpointSequenceNumber)Secuencia del último checkpoint de LedgerServiceAltura de checkpoint para seguimiento de finalidad
Ejecución de transacción (suix_executeTransactionBlock)TransactionExecutionService.ExecuteTransactionEnvío de transacción firmada
Simulación (suix_dryRunTransactionBlock)TransactionExecutionService.SimulateTransactionValidación previa al vuelo y estimación de gas
Suscripción a eventos (suix_subscribeEvent)SubscriptionService.SubscribeEventsFeed de eventos con streaming del servidor

Consideraciones para mainnet y testnet

Use endpoints separados para mainnet y testnet. Testnet es para desarrollo y pruebas, no para producción. El faucet oficial de testnet de Sui es https://faucet.sui.io; verifique la política y los límites actuales del faucet antes de solicitar tokens. Los datos y endpoints de testnet no son permanentes y pueden reiniciarse o cambiar.

Los endpoints de mainnet requieren una planificación de capacidad cuidadosa y monitoreo de producción. La página de red de Sui de OnFinality (/networks/sui) lista los detalles actuales de mainnet y testnet. Para configuración específica de testnet, consulte /rpc-assistant/sui-testnet-rpc.

  • Nunca reutilice tokens o claves de mainnet en testnet.
  • Mantenga separadas las configuraciones de testnet y mainnet en su canal de implementación.
  • Trate los streams de testnet como efímeros; construya reanudabilidad a partir de checkpoints.

Elección de un plan de Sui gRPC de OnFinality y verificaciones operativas

Al pasar de infraestructura compartida a dedicada, revise estas verificaciones: ¿El plan expone los servicios gRPC requeridos? ¿Se permiten streams de suscripción y cuáles son sus límites de tiempo de espera/retención? ¿Hay visibilidad de solicitudes y errores? ¿Se necesita un nodo dedicado para aislamiento o capacidad predecible?

La guía de proveedores de Sui RPC de OnFinality (/rpc-assistant/sui-rpc-providers) y la página de nodos Sui RPC (/rpc-assistant/sui-rpc-node) explican las opciones. Use la página de red de Sui (/networks/sui) para datos de endpoints.

CriterioQué revisarPor qué importa
Cobertura de serviciosLos cuatro servicios centrales más cualquier servicio gRPC adicional que necesiteLos servicios faltantes bloquean flujos de trabajo críticos
Límites de streamingPolítica de tiempo de espera, retención y reconexión para SubscribeCheckpoints y otros streamsLos streams deben permanecer conectados para indexación y alertas
VisibilidadVolumen de solicitudes, tasas de error y paneles de usoLa depuración y planificación de capacidad requieren observabilidad
AislamientoEndpoint compartido vs nodo dedicadoLas aplicaciones de alto rendimiento necesitan latencia y cuota predecibles

Preguntas frecuentes

¿Sui gRPC está listo para producción en comparación con JSON-RPC?

Sí. Sui gRPC es la interfaz recomendada para producción. Proporciona serialización binaria eficiente, seguridad de tipos y streaming. JSON-RPC se está retirando, por lo que gRPC es la ruta a futuro para aplicaciones nuevas y en migración.

¿Cómo pruebo Sui gRPC con grpcurl de forma segura?

Use un marcador de posición GRPC_ENDPOINT de su proveedor y pase metadatos de autorización con -rpc-header 'authorization: Bearer <token>'. Use siempre TLS para endpoints administrados. Comience con grpcurl $GRPC_ENDPOINT list para descubrir los servicios disponibles.

¿Cuál es la diferencia entre ExecuteTransaction y SimulateTransaction?

SimulateTransaction ejecuta una transacción sin comprometer el estado, devolviendo efectos y estimaciones de gas. ExecuteTransaction envía una transacción firmada para su inclusión. Use la simulación primero para detectar errores, luego ejecute solo después de validar.

¿Qué métodos de streaming debo usar para checkpoints, transacciones y eventos?

Use SubscribeCheckpoints para feeds de checkpoints certificados, SubscribeTransactions para streams de transacciones ejecutadas y SubscribeEvents para streams de eventos Move. Todos son RPCs de streaming del servidor de SubscriptionService.

¿Puedo usar el mismo endpoint de Sui gRPC para mainnet y testnet?

No. Mainnet y testnet son entornos separados con estado y endpoints diferentes. Use un endpoint de testnet dedicado para desarrollo y pruebas. Para ayuda con testnet, consulte /rpc-assistant/sui-testnet-rpc.

¿Cómo abordo la migración de JSON-RPC a gRPC sin reescribir todo?

Inventaríe las llamadas JSON-RPC y agrúpelas en lecturas, checkpoints, ejecución/simulación y suscripciones. Mapee cada grupo al servicio gRPC apropiado e implemente utilizando clientes generados. No intente replicar campos SuiJSON; deje que los tipos protobuf impulsen su código.

Base de conocimiento RPC

Detalles RPC relacionados

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar