摘要
选择 Sui RPC 提供商意味着要根据你的具体工作负载平衡吞吐量、可靠性和成本。本指南介绍了在选择 Sui RPC 提供商时需要注意的事项,从 gRPC 支持和归档数据到故障转移策略,以及如何评估 OnFinality 等选项以满足你的生产需求。
快速建议:根据工作负载匹配提供商类型
在比较供应商之前,先确定哪种类型的 Sui RPC 访问适合你的应用。正确的选择取决于流量大小、延迟敏感度以及你希望承担的运维开销。
- 公共端点(例如
https://fullnode.mainnet.sui.io:443)适用于原型验证和低流量工具。它们有速率限制,不适合生产工作负载。 - 共享 RPC 服务(如 OnFinality 的公共 RPC)提供托管端点,具有合理的速率限制,无需节点维护。它们适合大多数 dApp、索引器和钱包,这些应用不需要自定义节点配置。
- 专用节点提供具有专用资源的私有端点,非常适合高吞吐量应用、NFT 铸造或在负载下需要一致性能的应用。
如果你正在构建生产应用,请从共享 RPC 服务开始,并在流量增长时规划迁移到专用节点的路径。对于交易机器人或游戏等对时间敏感的场景,具有低延迟路由的专用节点通常值得投入。
Sui RPC 与其他链有何不同
Sui 是一个高吞吐量的 Layer 1,具有并行执行和基于 Move 的对象模型。其 RPC 接口是 JSON-RPC 2.0,但也支持 gRPC,用于高效的流式传输和订阅场景。与以太坊风格的链不同,Sui 使用检查点和纪元,其交易模型以对象为中心,而非基于账户。
这会影响你与链交互的方式:
- 对象读取很常见,因此
suix_getObject和suix_getDynamicField经常被使用。 - 交易区块通过摘要引用,而不是哈希。
- 支持通过 WebSocket 进行订阅,但 gRPC 是高吞吐量事件流的首选方法。
在评估 Sui RPC 提供商时,检查他们是否同时支持 JSON-RPC 和 gRPC。一些提供商只提供 JSON-RPC,这可能会限制你高效流式传输数据的能力。
Sui RPC 提供商的关键评估标准
使用下表系统地比较提供商。这些标准超出了基本的正常运行时间和定价。
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| gRPC 支持 | 提供商是否提供 gRPC 端点? | gRPC 在流式传输和高数据量场景下更高效;并非所有提供商都支持。 |
| 归档数据 | 能否查询历史状态和交易? | 索引器、分析和调试需要。 |
| WebSocket 支持 | 是否有稳定的 WebSocket 端点用于订阅? | 对实时 dApp 和监控至关重要。 |
| 速率限制 | 每秒/每分钟的请求限制是多少? | 决定提供商能否处理你的流量峰值。 |
| 故障转移选项 | 能否轻松切换到备用提供商? | 冗余对于生产可靠性至关重要。 |
| 地理分布 | 端点是否在多个区域可用? | 减少全球用户的延迟。 |
| SLA 和支持 | 是否有正式的 SLA 和 24/7 支持? | 在出现问题时保护你的应用。 |
gRPC 与 JSON-RPC:应该使用哪个?
Sui 支持这两种协议,但它们用途不同。
- JSON-RPC 是简单查询和变更的标准。它易于调试,适用于任何 HTTP 客户端。
- gRPC 更适合流式传输和高吞吐量场景。它使用 HTTP/2 和 protobuf,减少了开销并支持双向流。
如果你正在构建需要快速响应事件的实时索引器或交易机器人,gRPC 是更好的选择。但是,并非所有提供商都提供 gRPC,因此在承诺之前请确认。
以下是一个使用 Sui SDK 在 Go 中进行 gRPC 订阅的简单示例:
package main
import (
"context"
"fmt"
"github.com/MystenLabs/sui-go-sdk/sui"
)
func main() {
client := sui.NewSuiClient("https://rpc.sui.io")
// 订阅新交易
sub, err := client.SubscribeTransaction(context.Background(), sui.TransactionFilter{})
if err != nil {
panic(err)
}
defer sub.Close()
for {
msg, err := sub.Recv()
if err != nil {
panic(err)
}
fmt.Println(msg)
}
}
在承诺之前如何测试 Sui RPC 端点
在集成提供商之前,运行一些基本检查以验证端点是否正常工作并满足你的需求。
- 检查链 ID 和最新检查点,确认端点已同步。
- 发送一个简单的 JSON-RPC 请求,测量延迟。
- 测试 WebSocket 订阅,确保实时数据流动。
- 查询历史数据,验证是否需要归档支持。
以下是一个获取最新检查点的 curl 示例:
curl -X POST https://rpc.sui.io \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "sui_getLatestCheckpointSequenceNumber",
"params": []
}'
如果响应缓慢或超时,这是一个危险信号。另外,检查提供商的状态页面,了解是否有正在发生的事件。
使用 Sui RPC 提供商时的常见陷阱
即使使用好的提供商,你也可能遇到问题。以下是常见错误以及如何避免它们。
- 在生产环境中使用公共端点:公共端点有速率限制,可能会宕机。生产环境始终使用托管提供商。
- 忽略速率限制:即使是付费提供商也有限制。监控你的使用情况,并在达到上限之前设置警报。
- 没有规划故障转移:如果你的提供商中断,你的应用就会宕机。使用多个提供商或负载均衡器。
- 假设所有提供商都支持 gRPC:并非所有提供商都支持。在构建流式管道之前验证。
- 忽略归档数据:如果你需要历史数据,请确保你的提供商提供归档节点。有些只保留最近的状态。
OnFinality 如何融入你的 Sui RPC 策略
OnFinality 提供托管的 Sui RPC 端点和专用节点基础设施。你可以将 OnFinality 用作主要提供商,或作为故障转移选项以增加冗余。
- 共享 RPC:OnFinality 为 Sui 提供公共 RPC 端点,适用于开发和中等生产流量。
- 专用节点:对于高吞吐量应用,你可以启动具有专用资源和自定义配置的专用 Sui 节点。
- 全球网络:OnFinality 的基础设施分布广泛,有助于减少全球用户的延迟。
查看 Sui 网络页面 获取最新的端点详细信息和支持的功能。有关定价,请参阅 RPC 定价 了解成本模型。
关键要点
- Sui RPC 提供商在 gRPC 支持、归档数据和速率限制方面有所不同——根据你的工作负载进行评估。
- 公共端点不适用于生产环境;请使用托管提供商或专用节点。
- 在承诺之前始终测试端点,并规划使用多个提供商进行故障转移。
- OnFinality 提供共享和专用的 Sui RPC 选项,适用于各种用例。
常见问题解答
最好的 Sui RPC 提供商是什么?
最好的提供商取决于你的需求。对于高吞吐量应用,寻找支持 gRPC 和专用节点的提供商。OnFinality 提供共享和专用选项;比较功能和定价以找到合适的方案。
Sui 支持 gRPC 吗?
是的,Sui 支持 gRPC,但并非所有提供商都已实现。如果你需要流式传输,请与你的提供商确认 gRPC 的可用性。
我可以将公共 Sui 端点用于生产环境吗?
不可以,公共端点有速率限制,对于生产环境不可靠。请使用托管提供商或专用节点。
如何在共享和专用 Sui RPC 之间选择?
共享 RPC 对于中等流量具有成本效益。专用节点更适合高吞吐量、低延迟和自定义需求。从共享开始,根据需要扩展。
如果我的 Sui RPC 提供商宕机了,我该怎么办?
制定故障转移计划。使用多个提供商或负载均衡器。OnFinality 可以作为备用提供商,确保正常运行时间。
有关支持的网络和端点的更多详细信息,请访问我们的 支持的 RPC 网络 页面。