摘要
了解如何为您的 dApp 配置自定义 Sui RPC 端点,无论您使用的是公共端点、像 OnFinality 这样的托管提供商,还是您自己的节点。本指南涵盖端点配置、JSON-RPC 示例以及常见的故障排除步骤,以确保您的 Sui 应用程序保持可靠。
快速建议:选择您的 Sui RPC 设置
在深入配置之前,请决定哪种 Sui RPC 设置适合您的项目。正确的选择取决于您的流量、预算和控制需求。
- 公共端点:免费,但有速率限制,不适合生产环境。用于测试和原型开发。
- 托管提供商(例如 OnFinality):可靠、可扩展且易于集成。最适合大多数生产级 dApp。
- 自托管节点:完全控制且速率限制明确,但需要基础设施专业知识和持续维护。
对于大多数团队来说,像 OnFinality 这样的托管提供商提供了性能和简单性的最佳平衡。如果您需要专用资源或高吞吐量,请考虑使用 OnFinality 的专用节点。
什么是自定义 Sui RPC?
Sui RPC 端点是您的 dApp 用来与 Sui 区块链通信的 URL。默认情况下,Sui 提供公共端点,但您可以配置自定义端点以指向不同的提供商或您自己的节点。这对于以下情况很有用:
- 避免公共端点的速率限制
- 通过选择地理位置更近的服务器来改善延迟
- 访问归档数据或增强的 API
- 通过可靠的提供商确保正常运行时间
Sui 链设置一览
以下是配置 Sui RPC 所需的关键详细信息:
| 设置 | 值 |
|---|---|
| 网络 | Sui 主网 |
| RPC URL(公共) | https://rpc.ankr.com/sui(示例) |
| 链 ID | 35834a34a26ab4b4c3589a2c4f6d1f3f |
| 浏览器 | https://suiscan.xyz/ |
| WebSocket 支持 | 是(通过提供商) |
注意:上述公共端点仅供说明;对于生产环境,请使用像 OnFinality 这样的托管提供商。查看 Sui 网络页面 获取最新的端点信息。
如何配置自定义 Sui RPC 端点
使用托管提供商(OnFinality)
OnFinality 提供了一个可靠的 Sui RPC 端点,您可以在您的 dApp 中使用。设置方法如下:
- 注册 OnFinality 并创建 API 密钥。
- 从仪表板获取您的端点。它看起来像
https://sui-mainnet.onfinality.io/v1/your-api-key。 - 配置您的 dApp 以使用此端点。
使用自托管节点
如果您运行自己的 Sui 节点,您可以使用其本地 RPC 端点,通常是 http://localhost:9000。将您的 dApp 配置为指向此地址。
Sui 的 JSON-RPC 示例
Sui 使用 JSON-RPC 2.0。以下是一个基本的 curl 示例,用于获取最新检查点:
curl -X POST https://sui-mainnet.onfinality.io/v1/your-api-key \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "sui_getLatestCheckpointSequenceNumber",
"params": [],
"id": 1
}'
对于 JavaScript(使用 fetch):
const rpcUrl = 'https://sui-mainnet.onfinality.io/v1/your-api-key';
const response = await fetch(rpcUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'sui_getLatestCheckpointSequenceNumber',
params: [],
id: 1
})
});
const data = await response.json();
console.log(data.result);
常见陷阱和故障排除
1. 公共端点的速率限制
公共端点通常有严格的速率限制。如果您看到 429 Too Many Requests,请切换到托管提供商或自托管节点。
2. 端点 URL 错误
仔细检查您的端点 URL 是否有拼写错误。缺少 /v1/ 或错误的 API 密钥可能导致连接错误。
3. WebSocket 连接断开
对于实时更新,请使用 WebSocket。确保您的提供商支持它,并且您的客户端处理重新连接。
4. 方法未找到
如果您调用了不存在的方法,您将收到错误。请参阅 Sui JSON-RPC 文档 了解可用方法。
何时使用专用 Sui 节点
如果您的 dApp 流量高或需要一致的性能,OnFinality 的专用节点可能是正确的选择。优点包括:
- 明确的速率限制
- 保证的资源
- 可自定义的配置
- 增强的可靠性
如果您经常遇到速率限制或需要运行像 suix_getDynamicFields 这样的重查询,请考虑使用专用节点。
监控您的 Sui RPC
为确保您的 dApp 保持健康,请监控您的 RPC 端点。以下是一个使用 curl 的简单健康检查:
curl -X POST https://sui-mainnet.onfinality.io/v1/your-api-key \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "sui_getChainIdentifier",
"params": [],
"id": 1
}'
如果您收到响应,则您的端点正常。设置停机时间和延迟的警报。
关键要点
- 自定义 Sui RPC 端点让您控制性能和可靠性。
- 公共端点适合测试,但不适合生产。
- 像 OnFinality 这样的托管提供商提供了易用性和性能的平衡。
- 自托管提供完全控制,但需要更多努力。
- 始终监控您的 RPC 端点以尽早发现问题。
常见问题解答
默认的 Sui RPC 端点是什么?
默认的公共端点是 https://fullnode.mainnet.sui.io/,但有速率限制。对于生产环境,请使用托管提供商。
我可以将自定义 Sui RPC 与 Sui SDK 一起使用吗?
是的,您可以在初始化 Sui 客户端时传递自定义 RPC URL。例如,在 TypeScript SDK 中:
import { SuiClient } from '@mysten/sui/client';
const client = new SuiClient({ url: 'https://sui-mainnet.onfinality.io/v1/your-api-key' });
如何从 OnFinality 获取 API 密钥?
在 OnFinality 注册,创建一个项目,您将获得一个 API 密钥。
专用 Sui 节点有哪些好处?
专用节点为高流量应用程序提供专用资源、明确的速率限制和更好的性能。了解更多关于专用节点的信息。
我在哪里可以看到支持的网络列表?
查看支持的网络页面以获取所有可用网络,包括 Sui。
有关定价的更多详细信息,请访问我们的 RPC 定价页面。