Resumen
Sui Testnet RPC proporciona a los desarrolladores una ruta gRPC-first para consultar checkpoints, objetos y saldos; simular y ejecutar transacciones; y transmitir actividad en tiempo real mediante endpoints gestionados por OnFinality. El flujo de trabajo moderno utiliza LedgerService para datos de checkpoints, StateService para lecturas de objetos y saldos, TransactionExecutionService para SimulateTransaction y ExecuteTransaction, y SubscriptionService para SubscribeCheckpoints, SubscribeTransactions y SubscribeEvents. El JSON-RPC heredado de Full Node sigue siendo útil para comparaciones de migración, pero las nuevas integraciones de testnet deben apuntar a gRPC y tratar JSON-RPC como una superficie heredada. Usa el faucet oficial en https://faucet.sui.io para SUI de prueba y mantén las credenciales de testnet separadas de mainnet. Configura marcadores de posición de endpoint como GRPC_ENDPOINT y cabeceras de autorización en SDK, billeteras y CI. Debido a que los endpoints de testnet pueden reiniciarse y los límites del faucet cambian, construye siempre tu entorno de testnet como desechable y evita codificar de forma fija los object IDs o los digests de transacciones. Testnet no es permanente: verifica la política actual del faucet, espera reinicios y valida los mismos flujos de trabajo antes de pasar a Sui mainnet. Para orientación operativa, consulta /rpc-assistant/sui-rpc-guide y /networks/sui-testnet.
Puntos clave
- Usa acceso gRPC-first a Sui Testnet con LedgerService, StateService, TransactionExecutionService y SubscriptionService.
- Trata la superficie JSON-RPC de full node como heredada; úsala solo para comparaciones de migración.
- Obtén SUI de prueba en https://faucet.sui.io y verifica los límites actuales del faucet antes de ejecutar CI.
- Mantén separadas las credenciales, endpoints y expectativas de tokens de testnet y mainnet.
Acceso gRPC-first en Sui Testnet y JSON-RPC heredado
El acceso a la testnet de Sui en OnFinality prioriza gRPC. La ruta de integración actual utiliza los servicios protobuf de Sui: LedgerService, StateService, TransactionExecutionService y SubscriptionService. Cubren consultas de checkpoints, lecturas de objetos y saldos, simulación y ejecución de transacciones, y suscripciones de streaming para checkpoints, transacciones y eventos.
El JSON-RPC heredado de Full Node todavía está presente en algunas herramientas existentes, pero debe tratarse como una superficie de migración. No construyas nuevos flujos de trabajo de testnet en torno a JSON-RPC; en su lugar, mapea los métodos heredados al flujo de trabajo gRPC equivalente antes de confirmar código de testnet.
- Usa LedgerService, StateService, TransactionExecutionService y SubscriptionService para nuevas integraciones en Sui Testnet.
- Trata el JSON-RPC de Full Node como heredado y solo para migración, no como la ruta principal de implementación.
- Mapea las llamadas JSON-RPC existentes a métodos gRPC antes de ampliar el código de testnet.
| Criterio | Qué revisar | Por qué importa |
|---|---|---|
| Servicios gRPC (LedgerService, StateService, TransactionExecutionService, SubscriptionService) | Flujo de trabajo moderno para consultas, ejecución, simulación y streaming | Ruta principal para nuevo desarrollo y necesidades de datos en tiempo real |
| JSON-RPC heredado de Full Node | Clientes existentes y comparaciones de migración | Aislar del código nuevo para evitar mantenimiento de doble ruta |
Configuración de endpoint y credenciales de testnet
OnFinality proporciona un endpoint gRPC gestionado para Sui Testnet. Recibirás una URL de endpoint y un token de API o credencial equivalente. Guárdalos en variables de entorno o en un gestor de secretos. No incrustes credenciales en repositorios.
El siguiente ejemplo de grpcurl utiliza marcadores de posición. Sustituye GRPC_ENDPOINT y ONFINALITY_API_TOKEN por los valores asignados. El comando list es una ayuda de reflexión de grpcurl; después de importar las definiciones protobuf de Sui, llama al método relevante de LedgerService, StateService, TransactionExecutionService o SubscriptionService.
Uso seguro del faucet oficial de Sui
El faucet oficial de Sui Testnet está en https://faucet.sui.io. Verifica siempre la política actual del faucet, los límites por dirección y los periodos de espera antes de integrarlo en pruebas automatizadas. Solicita SUI de prueba a una dirección de billetera que controles y nunca solicites tokens para direcciones que no te pertenezcan.
El SUI de prueba no tiene valor y no puede intercambiarse por activos de mainnet. Si tienes tokens de prueba sin usar, devuélvelos a la dirección de devolución del faucet para mantener la testnet saludable. Mantén separado el uso del faucet de testnet y de mainnet.
- Usa únicamente https://faucet.sui.io para el SUI de prueba oficial.
- Verifica los límites actuales del faucet y los periodos de espera antes de ejecutar CI.
- Mantén el SUI de prueba separado del SUI de mainnet; no uses direcciones de prueba para producción.
- Devuelve los tokens de prueba no utilizados cuando sea posible.
Despliegue de Move, lecturas de objetos y flujos de transacciones
Sui está centrado en objetos, por lo que tu flujo de trabajo en testnet debe enfocarse en lecturas de objetos, simulación de transacciones y ejecución. Usa StateService para consultar objetos y saldos antes de construir una transacción. Usa TransactionExecutionService para SimulateTransaction y así hacer una simulación en seco, y luego usa ExecuteTransaction para el envío final. Este patrón de dos pasos ayuda a detectar errores de tipos de Move, conflictos de versiones de objetos y problemas de estimación de gas sin avanzar el estado de la cadena.
Registra el digest de la transacción después de la ejecución y consulta los cambios de objetos resultantes para verificar las transiciones de estado.
- Consulta los objetos propios y saldos con StateService antes de construir una transacción.
- Llama a SimulateTransaction desde TransactionExecutionService para validar gas, versiones de objetos y lógica de Move.
- Usa ExecuteTransaction desde TransactionExecutionService para el envío final.
- Registra el digest de la transacción y consulta los cambios de objetos resultantes.
| Criterio | Qué revisar | Por qué importa |
|---|---|---|
| Leer objetos/saldos | StateService | Verificar la propiedad y las versiones de objetos antes de construir la transacción |
| Simular transacción | TransactionExecutionService -> SimulateTransaction | Simulación sin cambio de estado de la cadena |
| Ejecutar transacción | TransactionExecutionService -> ExecuteTransaction | Enviar una transacción real de testnet |
| Consultar checkpoint | LedgerService | Confirmar inclusión y ordenación |
Checkpoints y suscripciones en tiempo real
Los checkpoints proporcionan un límite de cadena estable para indexar y sincronizar. Consulta los números de secuencia y los datos de los checkpoints a través de LedgerService. Para actualizaciones de streaming, usa SubscriptionService con SubscribeCheckpoints, SubscribeTransactions o SubscribeEvents.
Diseña tu cliente para manejar reconexiones y contrapresión. Los reinicios de testnet pueden interrumpir los streams, y los clientes de suscripción deben poder reestablecer las sesiones automáticamente.
- SubscribeCheckpoints para los límites de checkpoints.
- SubscribeTransactions para streaming a nivel de transacción.
- SubscribeEvents para filtrado de eventos y actualizaciones estructuradas.
- Maneja reconexiones y reinicios en los clientes de suscripción.
Configuración de billeteras, SDK y CI
Las billeteras y SDK deben apuntar al endpoint gRPC gestionado que se te asignó. En CI, inyecta el endpoint y la credencial mediante variables de entorno, y nunca subas secretos. Usa un job de stage o test que apunte a Sui Testnet con una cuenta solo de prueba. Mantén la configuración de mainnet en un perfil separado.
El siguiente ejemplo de entorno utiliza marcadores de posición para CI. Sustituye los valores por tus referencias de almacenamiento seguro.
Límites de testnet, reinicios y comprobaciones operativas
Sui Testnet no es permanente y puede reiniciarse. Los endpoints y los datos pueden ser eliminados o modificados. No trates los objetos de testnet, los digests de transacciones o los saldos del faucet como duraderos. Verifica la política actual del faucet antes de depender de ella. Supervisa tu uso de solicitudes, maneja con elegancia las respuestas de límite de tasa y mantén las credenciales de testnet aisladas de producción.
| Criterio | Qué revisar | Por qué importa |
|---|---|---|
| Límites del faucet | Política actual por dirección y de espera en https://faucet.sui.io | Evita bloqueos de CI por asignaciones de faucet agotadas |
| Estado del endpoint | Panel del proveedor o página de estado de la red | Detecta cortes o reinicios en toda la testnet |
| Límites de tasa | Los límites de solicitudes de tu plan y los códigos de error | Evita bloquear ejecuciones de pruebas automatizadas |
| Calendario de reinicios | Cualquier ventana anunciada de reinicio o actualización de testnet | Evita suposiciones inválidas sobre identificadores de objetos persistentes |
Ruta de migración a Sui mainnet
Después de que tu flujo de trabajo en Sui Testnet pase, planifica una implementación separada en mainnet. Usa el endpoint gRPC de mainnet y las credenciales de OnFinality; nunca reutilices tokens, direcciones o digests de objetos de testnet. Vuelve a ejecutar las mismas comprobaciones de simulación y ejecución con los costos de gas de mainnet.
Revisa las páginas de redes de Sui en /networks/sui-testnet y /networks/sui para obtener detalles actuales del endpoint y orientación del proveedor. Para los criterios de evaluación de proveedores, consulta /rpc-assistant/sui-rpc-providers.
Siguientes pasos: Guía de gRPC de Sui.
- Aprovisiona credenciales y endpoints separados para mainnet.
- Revalida los paquetes Move y los flujos de transacciones contra el estado de mainnet.
- Usa el mismo flujo de trabajo gRPC pero con límites y monitorización específicos de mainnet.
- No traslades suposiciones de testnet a producción.
Preguntas frecuentes
¿Cuál es la diferencia entre gRPC y JSON-RPC en Sui Testnet?
gRPC es la ruta recomendada actualmente, utilizando servicios protobuf como LedgerService, StateService, TransactionExecutionService y SubscriptionService. JSON-RPC es una superficie de full node heredada que puede seguir presente en herramientas antiguas; trátala solo para migración en nuevos desarrollos.
¿Cómo obtengo tokens SUI de prueba?
Usa el faucet oficial en https://faucet.sui.io. Verifica los límites actuales por dirección y los periodos de espera, solicita a una dirección que controles y devuelve los tokens no utilizados para ayudar a otros desarrolladores.
¿Qué servicios gRPC debo usar para transacciones y suscripciones?
Usa TransactionExecutionService para SimulateTransaction y ExecuteTransaction. Usa SubscriptionService para SubscribeCheckpoints, SubscribeTransactions y SubscribeEvents. LedgerService proporciona consultas de checkpoints y StateService maneja lecturas de objetos y saldos.
¿Se reinicia Sui Testnet? ¿Cómo afecta eso a mi desarrollo?
Sí, la testnet no es permanente y puede reiniciarse. Los identificadores de objetos, los digests de transacciones y los saldos del faucet pueden cambiar o desaparecer. Construye entornos de prueba desechables, evita suposiciones codificadas y verifica la política actual del faucet antes de depender de ella.
¿Puedo usar el mismo proveedor RPC para testnet y mainnet?
Sí, OnFinality admite tanto Sui Testnet como Sui Mainnet. Usa endpoints y credenciales separados para cada red, y nunca mezcles tokens o direcciones de testnet con mainnet.
¿Qué debo comprobar antes de migrar de testnet a mainnet?
Revalida los paquetes Move y los flujos de transacciones contra el estado de mainnet, usa los costos de gas de mainnet, aprovisiona credenciales separadas y revisa los detalles del endpoint en /networks/sui y /rpc-assistant/sui-rpc-providers.