摘要
了解如何连接 Sui 主网 RPC 端点,理解 JSON-RPC 方法,并评估生产应用的基础设施选项。本指南涵盖链设置、请求示例以及选择公共节点和专用节点的关键考虑因素。
快速建议:公共端点还是专用节点?
在编写第一个请求之前,决定如何连接到 Sui 主网。正确的选择取决于你的工作负载,而不是哪个端点最容易复制。
- 原型开发、测试或低流量 dApp 可以从公共 RPC 端点开始。它是免费的,适合轻量使用,但共享基础设施意味着在流量高峰时可能会遇到速率限制。
- 生产应用、索引器或任何持续负载 应使用托管 RPC 服务或专用节点。专用 Sui 节点提供隔离容量、一致的性能以及调整基础设施的能力。
如果你正在评估提供商,请根据下面的提供商评估矩阵进行比较。对于快速入门,公共端点是一个合理的起点,但随着流量增长,请计划迁移到专用节点。
Sui 主网链设置一览
Sui 是一个用 Rust 构建的第 1 层区块链,具有独特的基于对象的数据模型。与以太坊风格的链不同,Sui 不以传统方式使用链 ID,但它确实有网络标识符和特定的 RPC API。
| 设置 | 值 |
|---|---|
| 网络名称 | Sui 主网 |
| RPC 传输 | HTTP |
| RPC URL(公共) | https://sui-mainnet.api.onfinality.io/public |
| 浏览器 | https://suiscan.xyz |
| 原生代币 | SUI |
注意: 公共端点是共享的且有限速。对于生产工作负载,请考虑专用 Sui 节点或来自 OnFinality 的托管 RPC 计划。
理解 Sui JSON-RPC
Sui 的 RPC API 基于 JSON-RPC,但与以太坊不兼容。你将使用 Sui 特定的方法,如 sui_getBalance、sui_getObject 和 sui_executeTransactionBlock。API 在 Sui 文档 中有记录,但这里有一些要点。
常用方法
sui_getBalance– 获取地址的 SUI 余额sui_getObject– 通过 ID 获取对象sui_executeTransactionBlock– 提交交易以执行sui_getTransactionBlock– 通过摘要检索交易sui_getLatestCheckpointSequenceNumber– 获取最新检查点
示例:使用 curl 获取余额
curl -X POST https://sui-mainnet.api.onfinality.io/public \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "sui_getBalance",
"params": ["0x0000000000000000000000000000000000000000"]
}'
将地址替换为真实地址。响应将包含总余额和代币明细。
示例:使用 JavaScript 获取对象
const response = await fetch('https://sui-mainnet.api.onfinality.io/public', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'sui_getObject',
params: ['0xobjectid', { showType: true, showContent: true }]
})
});
const data = await response.json();
console.log(data.result);
提供商评估矩阵
当你超越公共端点时,需要比较 RPC 提供商。以下是一个实用的矩阵来指导你的评估。
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 吞吐量和速率限制 | 每秒请求数(RPS)限制、突发允许 | 避免流量高峰期间的限流 |
| 可靠性 | 历史正常运行时间、冗余、故障转移 | 最小化用户停机时间 |
| 数据可用性 | 存档数据、历史状态、修剪策略 | 索引器和分析所需 |
| 传输支持 | HTTP、WebSocket、gRPC | 匹配你的应用需求 |
| 专用选项 | 隔离节点、自定义配置 | 完全控制和可预测的性能 |
| 定价模型 | 按需付费 vs. 订阅 | 符合你的预算和使用情况 |
OnFinality 提供共享和专用的 Sui RPC 选项。你可以从公共端点开始,并在需要更多容量时升级到专用节点。有关详细信息,请参阅 RPC 定价。
常见陷阱及如何避免
1. 使用错误的网络
Sui 有独立的主网和测试网端点。请仔细检查你使用的是主网 URL,尤其是在从教程复制代码时。测试网端点是 https://sui-testnet.api.onfinality.io/public(参见 Sui 测试网)。
2. 忽略速率限制
公共端点是共享的。如果你发送太多请求,将收到 429 错误。实现带有指数退避的重试逻辑,并考虑为高流量工作负载使用专用节点。
3. 误解对象所有权
Sui 的对象模型与以太坊的账户模型不同。你需要理解拥有对象、共享对象和不可变对象,才能正确与链交互。在构建之前,请阅读 Sui 对象文档。
4. 未处理 WebSocket 订阅
如果你的应用需要实时更新,请使用 WebSocket 订阅。公共端点支持 WebSocket,但对于生产环境,请确保你的提供商提供可靠的 WebSocket 连接。
调试你的 RPC 连接
当出现问题时,请遵循以下调试路径:
- 检查端点 – 这是正确的主网 URL 吗?使用简单的
sui_getLatestCheckpointSequenceNumber调用进行测试。 - 检查请求格式 – 你使用了正确的 JSON-RPC 方法和参数吗?请参阅 Sui API 参考。
- 检查速率限制 – 查找
429响应。如果看到它们,请减慢速度或升级你的计划。 - 检查网络连接 – 你能从服务器访问端点吗?使用
curl -v查看响应头。 - 检查你的代码 – 你正确处理错误了吗?记录完整的响应体以进行调试。
何时迁移到专用 Sui 节点
专用节点让你独占访问 Sui 验证器或全节点。这对于以下情况很有用:
- 需要一致性能的高吞吐量应用
- 需要查询历史数据而不受速率限制的索引器
- 需要自定义 RPC 方法或配置的应用
OnFinality 提供具有隔离资源的专用 Sui 节点。你还可以使用 OnFinality API 服务 进行托管访问。
关键要点
- Sui 主网使用与以太坊不同的 JSON-RPC API,因此请使用 Sui 特定的方法。
- 公共端点适合测试,但生产应用应考虑托管或专用解决方案。
- 根据吞吐量、可靠性、数据可用性和传输支持来评估提供商。
- 避免常见陷阱,如使用错误的网络或忽略速率限制。
- 使用调试路径快速解决连接问题。
常见问题解答
Sui 主网 RPC URL 是什么?
公共 Sui 主网 RPC URL 是 https://sui-mainnet.api.onfinality.io/public。对于生产环境,请考虑专用节点或托管 RPC 服务。
Sui RPC 与以太坊 JSON-RPC 兼容吗?
不,Sui 使用自己的 JSON-RPC 方法。你不能在 Sui 上使用以太坊方法,如 eth_getBalance。
如何获得专用 Sui 节点?
你可以通过像 OnFinality 这样的提供商配置专用 Sui 节点。这为你提供隔离容量和完全控制。
Sui 主网和测试网 RPC 有什么区别?
主网用于真实资产和生产使用,而测试网用于开发和测试。它们有独立的端点和代币水龙头。
OnFinality 支持 Sui 主网吗?
是的,OnFinality 支持 Sui 主网和测试网。有关详细信息,请参阅 Sui 网络页面。
有关支持的网络的完整列表,请访问 支持的 RPC 网络。