帖子
分享您的知识。
适用于开发人员的 Sui gRPC 与 JSON-RPC
标题:切换到 gRPC — Sui dApps 值得吗?
随着 gRPC 来到 Sui,我想知道开发人员打算如何采用它.
你测试过与 JSON-RPC 相比的延迟差异吗?
功能集是否相同,还是存在差距?
你认为 gRPC 更适合生产应用程序还是主要用于内部工具?
任何迁移提示、示例客户端代码或性能指标都将帮助其他人决定何时以及如何切换.
- Move CLI
- Move Module
- Move Bug
- Feature Request
答案
1Sui 在完整测试版中采用 gRPC,取代 JSON-RPC 作为默认的全节点 API,为开发人员提供了一种更快、更高效的与区块链数据交互的方式,许多人都在关注它的性能优势和实时能力. 延迟测试表明,gRPC比JSON-RPC快得多,由于它使用协议缓冲区(Protobuf)而不是基于JSON的文本格式,序列化速度最多快六倍,而且HTTP/2的多路传输减少了网络开销,在DeFi或游戏DApp等高流量场景中将响应时间缩短了多达50%. 功能集不一样——gRPC通过订阅服务为实时更新(例如检查点、交易)增加了强大的流媒体功能,而JSON-RPC由于其基于轮询的方法而缺乏这种功能,但JSON-RPC的更简单设置可能仍然适合首选人类可读JSON的基本查询. gRPC在交易所或实时分析等需要低延迟和可扩展性的生产应用程序中大放异彩,而JSON-RPC可能仍然方便地用于内部工具或者由于其更广泛的语言支持和易用性而更简单的脚本. 对于迁移,首先在 GitHub(sui-apis 存储库)上查看 Sui 的 gRPC 原型文件,以 Rust 或 TypeScript 等语言生成客户端库,然后在 Sui 的测试网络上测试以比较与 JSON-RPC 端点的性能. TypeScript 中的示例客户端可能如下所示:
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); }
— 确保安装 @mysten /sui.js 并设置 gRPC 依赖关系. Sui 测试版的性能指标显示,gRPC 处理了数千个延迟亚秒的并发请求,而 JSON-RPC 在类似负载下的多秒延迟. 要进行切换,请逐步为高性能组件集成 gRPC,保留 JSON-RPC 以实现传统兼容性(目前仍支持),并使用 grpcurl 等工具对端点进行试验. 使用 Protobuf 架构留意 gRPC 更陡峭的学习曲线,并始终使用 Suiclient.dryrunTransactionBlock 进行仿真以发现集成问题.
你知道答案吗?
请登录并分享。
Move is an executable bytecode language used to implement custom transactions and smart contracts.
