概述
Sui 是一个用于访问Sui 灵活查询接口。它提供了一套完整的工具集,可通过基于 GraphQL 的查询语言获取区块链数据并执行交易。
与具有固定端点的传统 RPC 方法不同,GraphQL 允许您通过单次查询精确获取所需数据,因此对于复杂的数据需求而言更为高效。GraphQL 代表了访问Sui 现代方法,取代了已弃用的 JSON-RPC 标准。它支持灵活且可组合的查询,既能减少过度获取数据的情况,又能让您通过单次请求或跨多次请求以一致的方式检索多个数据实体。
当前状态:截至2025年9月Sui 正处于测试阶段。JSON-RPC标准已被废弃,并将于2026年7月前完全停用。
有关Sui 架构和实现的更多详细信息,请参阅 Sui 官方文档。
主要特点
- 灵活的查询:仅请求所需的字段,从而节省带宽并提升性能。GraphQL 支持精确的字段选择,避免了传统 REST 或 RPC API 中常见的过度获取问题。
- 嵌套数据访问:无需多次往返,即可通过单次查询检索相关对象及其属性。一次性查询事务及其影响、余额变动以及相关对象。
- 分页支持:内置基于光标的分页功能,可高效浏览大型结果集。通过一致的光标对检查点、事务和动态字段进行分页。
- 历史查询:查询特定检查点处的区块链状态,以获取一致的、特定时间点的数据。这使得跨多个请求的快照一致性查询成为可能。
- 类型安全:GraphQL 的强类型模式提供了清晰的文档、自动补全功能,并在查询执行前进行有效性验证。
网络支持与Endpoint
Sui Mainnet 在Sui Mainnet 提供。若在Testnet使用,请使用gRPC JSON-RPC API。
您可以使用Sui endpoint GraphQL 查询。如果您endpoint,请通过Quicknode 创建一个:
- 登录仪表盘
- 转到侧边栏中的“端点”部分
- 点击“创建新endpoint
- 选择 Sui 和 Sui Mainnet
您的 GraphQLendpoint 采用以下格式:
https://your-endpoint.sui-mainnet.quiknode.pro/graphql
所有查询均以 POST 请求的形式发送,请求体为 JSON 格式,其中包含您的 GraphQL 查询以及可选变量。
请求示例:
curl -X POST https://your-endpoint.sui-mainnet.quiknode.pro/graphql \
-H "Content-Type: application/json" \
-d '{
"query": "query ($address: SuiAddress!) { address(address: $address) { balance { totalBalance } } }",
"variables": {
"address": "0x5"
}
}'
示例回复:
{
"data": {
"address": {
"balance": {
"totalBalance": "5000000000"
}
}
}
}
服务限制与数据保留
服务限制:
- 请求大小:事务负载最大为 175KB,其他查询组件最大为 5KB
- 超时:执行查询为 74 秒,读取查询为 40 秒
- 查询复杂度:最多 300 个输入节点/字段名,嵌套深度为 20 层
- 输出:预计最大输出节点数为 1,000,000 个
- 分页:每页 50 条(默认),多条查询操作时为 200 条
- 复杂查询:每个请求最多包含 5 个需要专用数据库访问的查询
数据保留:
- 一致性存储:所有数据均可访问
- 数据库:90天的检查点数据
- 归档:90天的数据
入门指南
请参考下面的示例查询,了解使用Sui 的常见模式。每个示例都包含多种语言(cURL、JavaScript、Python 和 Ruby)的代码片段。
查询示例: