Publicación
Comparte tu conocimiento.
Sui gRPC frente a JSON-RPC para desarrolladores
Título: Cambiar a gRPC: ¿vale la pena para Sui DApps?
Con la llegada de gRPC a Sui, me pregunto cómo planean adoptarlo los desarrolladores.
¿Has probado las diferencias de latencia en comparación con JSON-RPC?
¿El conjunto de funciones es idéntico o hay lagunas?
¿Crees que gRPC es mejor para las aplicaciones de producción o, sobre todo, para las herramientas internas?
Cualquier consejo de migración, ejemplos de código de cliente o métricas de rendimiento ayudaría a otros a decidir cuándo y cómo cambiarse.
- Move CLI
- Move Module
- Move Bug
- Feature Request
Respuestas
1La adopción por parte de Sui de gRPC en versión beta completa, que sustituye a JSON-RPC como la API de nodo completo predeterminada, ofrece a los desarrolladores una forma más rápida y eficiente de interactuar con los datos de la cadena de bloques, y muchos la están considerando por su ventaja de rendimiento y sus capacidades en tiempo real. Las pruebas de latencia muestran que gRPC es significativamente más rápido que JSON-RPC, con velocidades de serialización hasta seis veces más rápidas debido al uso de búferes de protocolo (Protobuf) en lugar del formato basado en texto de JSON, y la multiplexación de HTTP/2 reduce la sobrecarga de la red y reduce los tiempos de respuesta hasta en un 50% en escenarios de alto tráfico, como DeFi o dApps para juegos. El conjunto de funciones no es idéntico: gRPC añade potentes funciones de streaming a través de SubscriptionService para obtener actualizaciones en tiempo real (por ejemplo, puntos de control o transacciones), de las que JSON-RPC carece debido a su enfoque basado en encuestas, pero la configuración más sencilla de JSON-RPC puede seguir siendo adecuada para las consultas básicas en las que se prefiere el JSON legible por humanos. gRPC destaca para las aplicaciones de producción que necesitan baja latencia y escalabilidad, como los intercambios o el análisis en tiempo real, mientras que JSON-RPC puede resultar útil para aplicaciones de producción que necesitan baja latencia y escalabilidad, como intercambios o análisis en tiempo real, mientras que JSON-RPC puede resultar útil para aplicaciones de producción que necesitan baja latencia y escalabilidad, como intercambios o análisis en tiempo real. herramientas o scripts más simples debido a su compatibilidad con idiomas más amplia y su facilidad de uso. Para la migración, comience por revisar los protoarchivos gRPC de Sui en GitHub (repositorio sui-apis) para generar bibliotecas de cliente en lenguajes como Rust o TypeScript, y pruébelos en la red de pruebas de Sui para comparar el rendimiento con los puntos finales de JSON-RPC. Un cliente de ejemplo en TypeScript podría tener el siguiente aspecto:
const { SuiClient } = require('@mysten/sui.js/client');
const client = new SuiClient({ url: 'grpc://fullnode.sui.io:443' });
async function getBalance(address) { const response = await client.getBalance({ owner: address });
console.log(response); }
—asegúrese de instalar @mysten /sui.js y configurar las dependencias de gRPC. Las métricas de rendimiento de la versión beta de Sui muestran que gRPC gestiona miles de solicitudes simultáneas con una latencia inferior a un segundo, en comparación con los retrasos de varios segundos de JSON-RPC con cargas similares. Para hacer el cambio, integra gradualmente gRPC para obtener componentes de alto rendimiento, mantén JSON-RPC para garantizar la compatibilidad con versiones anteriores (todavía está disponible por ahora) y usa herramientas como grpcurl para experimentar con terminales. Esté atento a la curva de aprendizaje más pronunciada de gRPC con los esquemas de Protobuf y simula siempre con suiclient.dryRunTransactionBlock para detectar problemas de integración.
Sabes la respuesta?
Inicie sesión y compártalo.
Move is an executable bytecode language used to implement custom transactions and smart contracts.
Gana tu parte de 1000 Sui
Gana puntos de reputación y obtén recompensas por ayudar a crecer a la comunidad de Sui.
