摘要
选择 Sui 节点提供商意味着要根据你的具体工作负载平衡吞吐量、可靠性和成本。本指南解释了在选择提供商时需要注意的事项,包括 gRPC 支持、归档数据、故障转移策略,以及如何评估生产级 Sui 应用的选项。
快速推荐:选择 Sui 节点提供商时应关注什么
在深入细节之前,这里有一个简洁的检查清单,用于指导你的提供商评估。在比较选项时,可以将其作为筛选条件。
- 协议支持:提供商是否同时提供 JSON-RPC 和 gRPC?对于需要高效流式传输和更低开销的高吞吐量应用,gRPC 至关重要。
- 数据可用性:你是否需要归档数据来进行历史查询?并非所有提供商都提供完整的归档访问,这对于分析或合规性可能至关重要。
- 可靠性和冗余:提供商是否提供 SLA 和多个端点以实现故障转移?生产应用不应依赖单点故障。
- 可扩展性:提供商能否处理流量高峰,例如 NFT 铸造或代币发布?检查他们是否提供专用节点或自动扩展。
- 定价模式:了解你的计费方式——按请求、按计算单元还是按月。透明的定价有助于避免意外。
- 支持:是否提供 24/7 支持?对于生产环境,你需要一个能快速响应事件的提供商。
如果你正在评估提供商,请首先根据你的工作负载检查这些标准。对于支持 Sui 的托管解决方案,请探索 OnFinality 的 Sui 网络页面 和 RPC 定价。
为什么 Sui 节点提供商很重要
Sui 是一个高性能的第 1 层区块链,专为并行执行和低延迟而设计。其基于 Move 语言的独特架构支持快速交易处理,但也对节点基础设施提出了特定要求。自己运行 Sui 全节点是可能的,但需要大量的硬件、持续的维护和仔细的监控。对于许多团队来说,使用专业的节点提供商更实用,尤其是当你需要可靠的正常运行时间、全球分布以及 gRPC 或归档数据等高级功能时。
Sui 文档本身建议不要在生产环境中使用公共端点,因为存在速率限制。相反,它建议使用专业提供商的专用节点或共享服务。这就是节点提供商变得至关重要的原因。
评估 Sui 节点提供商时应关注什么
在比较 Sui 节点提供商时,请关注以下直接影响应用程序性能和可靠性的技术方面。
JSON-RPC 与 gRPC
Sui 同时支持 JSON-RPC 和 gRPC。JSON-RPC 是大多数 Web3 应用的标准,但 gRPC 在高吞吐量用例(如实时数据流或索引)中提供更好的性能。并非所有提供商都支持 gRPC,因此如果你的应用依赖它,你需要验证提供商的兼容性。
归档数据和历史查询
如果你的应用需要查询历史状态,例如过去的交易或特定区块的账户余额,你需要一个归档节点。归档节点存储链的完整历史,这可能需要大量资源。提供商可能会将归档访问作为附加功能或更高层级的计划提供。评估你的需求:如果你只需要近期数据,全节点可能就足够了。
冗余和故障转移
单个 RPC 端点是单点故障。对于生产环境,你应该有多个端点,理想情况下来自不同的提供商,以确保高可用性。一些提供商提供内置的故障转移或跨多个节点的负载均衡。考虑你将如何处理提供商中断,以及提供商是否提供强大的 SLA。
性能和吞吐量
Sui 的高吞吐量意味着你的 RPC 提供商必须能够处理大量请求而不会限流。寻找提供专用节点或慷慨速率限制的提供商。此外,考虑地理分布:更靠近用户的端点可以减少延迟。
比较 Sui 节点提供商:实用表格
以下是一个比较表格,帮助你根据常见标准评估提供商。请记住,要验证当前的供应情况,因为功能和定价会变化。
| 提供商 | JSON-RPC | gRPC | 归档数据 | 专用节点 | 定价模式 |
|---|---|---|---|---|---|
| OnFinality | 是 | 检查可用性 | 检查可用性 | 是 | 透明的按请求或按月 |
| 提供商 A | 是 | 是 | 是 | 是 | 计算单元 |
| 提供商 B | 是 | 否 | 否 | 是 | 月度订阅 |
| 提供商 C | 是 | 是 | 是 | 否 | 按需付费 |
注意:该表格仅供参考。请务必查看提供商的官方文档以获取最新功能。
如何连接到 Sui 节点提供商
选择提供商后,你通常会收到一个 RPC 端点 URL。以下是如何使用 curl 向 Sui 节点发出 JSON-RPC 调用的示例:
curl -X POST https://rpc.sui.io \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "sui_getLatestCheckpointSequenceNumber",
"params": [],
"id": 1
}'
将 https://rpc.sui.io 替换为你的提供商的端点。对于 OnFinality,你可以在 Sui 网络页面 上找到公共端点。
使用 WebSocket 进行实时更新
对于实时更新,例如交易通知,你可以使用 WebSocket。以下是一个使用 websocket 库的 JavaScript 示例:
const WebSocket = require('ws');
const ws = new WebSocket('wss://rpc.sui.io');
ws.on('open', function open() {
ws.send(JSON.stringify({
jsonrpc: '2.0',
method: 'sui_subscribeTransaction',
params: [],
id: 1
}));
});
ws.on('message', function incoming(data) {
console.log(data.toString());
});
同样,请使用你的提供商的 WebSocket URL。
使用 Sui 节点提供商时的常见陷阱
避免以下常见错误,以确保顺利体验:
- 在生产环境中使用公共端点:公共端点有速率限制,对于高流量不可靠。始终使用专用或共享服务。
- 忽略 gRPC 支持:如果你的应用需要高吞吐量,没有 gRPC 可能成为瓶颈。
- 未规划故障转移:依赖单一提供商可能导致停机。设置多个端点。
- 低估归档需求:如果你需要历史数据,请确保你的提供商提供归档节点。
- 忽视定价细节:一些提供商按计算单元收费,这可能不可预测。了解你的使用模式。
故障排除:当你的 Sui RPC 调用失败时
如果遇到问题,以下是一些常见症状和修复方法:
| 症状 | 可能原因 | 修复 |
|---|---|---|
| 速率限制错误 | 超出请求限制 | 升级你的计划或使用多个端点 |
| 超时错误 | 网络延迟或节点过载 | 使用具有全球端点或专用节点的提供商 |
| 数据缺失 | 归档数据不可用 | 切换到支持归档的提供商 |
| gRPC 连接被拒绝 | 提供商不支持 gRPC | 使用 JSON-RPC 或选择支持 gRPC 的提供商 |
关键要点
- 由于公共端点的局限性,Sui 节点提供商对于生产应用至关重要。
- 根据协议支持(JSON-RPC/gRPC)、归档数据、冗余和定价来评估提供商。
- 始终规划故障转移,并为关键应用使用多个提供商。
- 了解你的工作负载,以选择合适的计划并避免意外成本。
常见问题解答
什么是 Sui 节点提供商?
Sui 节点提供商提供托管基础设施,通过 RPC 端点与 Sui 区块链交互,处理节点操作、维护和扩展。
我需要为 Sui 使用专用节点吗?
如果你的应用流量高或需要一致的性能,可能需要专用节点。对于较小的项目,共享服务可能就足够了。
如何在 JSON-RPC 和 gRPC 之间选择?
对于标准交互,使用 JSON-RPC。如果你需要高吞吐量或实时流式传输,如果提供商支持,请考虑 gRPC。
我可以将公共 Sui 端点用于生产环境吗?
不可以,公共端点有速率限制,不建议用于生产环境。请使用专业提供商。
如果我的提供商发生中断,我该怎么办?
制定故障转移计划,使用来自不同提供商的多个端点。监控你的端点,并在可能的情况下自动切换。
有关 RPC 提供商和定价的更多信息,请访问 OnFinality 的 RPC 定价 和 支持的网络。