摘要
Solana RPC 更新包括新的 JSON-RPC 方法、现有端点的更改,以及公共和托管基础设施处理负载的方式的变化。及时了解这些更新很重要,因为 Solana 的高吞吐量和频繁的功能发布可能会改变您查询账户、提交交易和订阅实时数据的方式。
本文涵盖最新的 Solana RPC 更改、如何在 devnet 上测试它们,以及在公共、共享和专用 RPC 基础设施之间进行选择时需要考虑的事项。无论您是在调试新方法还是规划生产环境,您都会找到实用的指导和托管选项的链接。
快速决策指南:如何处理 Solana RPC 更新
Solana 的 RPC 接口会定期演进。新方法出现,现有方法被弃用,集群端点也会发生变化。在更新代码之前,请确定哪种基础设施层级适合您的工作负载:
- 原型开发或黑客松:使用公共 devnet 端点或免费的托管层级。您可以测试新方法,而无需担心速率限制。
- 中等流量的生产 dApp:具有身份验证访问和更高速率限制的托管 RPC 服务比公共端点更安全。
- 高吞吐量的交易机器人或数据索引器:考虑使用专用节点以获得一致的性能并避免邻居干扰。
如果您不确定哪种选项适合,请从托管 RPC 服务开始并监控您的使用情况。您可以稍后迁移到专用节点。有关提供商选择标准的更深入比较,请参阅我们的选择 RPC 提供商指南。
Solana RPC 近期有哪些变化
Solana 的 RPC API 在官方 Solana RPC 概述 中有文档说明。最近的更新主要集中在:
- 新方法,用于查询优先费用和近期性能样本,例如
getRecentPrioritizationFees。 - 弃用 旧方法,这些方法被更高效的替代方案所取代。
- 承诺级别更改,影响数据可用的速度。
- WebSocket 订阅改进,用于实时更新。
及时了解这些更改有助于避免在方法被弃用或响应格式更改时破坏您的 dApp。
Solana 集群端点一览
Solana 有三个公共集群,每个都有自己的端点。下表总结了它们:
| 集群 | 公共 RPC 端点 | 用例 |
|---|---|---|
| 主网 | https://api.mainnet.solana.com | 使用真实 SOL 的生产网络 |
| Devnet | https://api.devnet.solana.com | 使用水龙头免费 SOL 进行开发者测试 |
| Testnet | https://api.testnet.solana.com | 验证者和网络测试 |
公共端点是共享基础设施,不适用于生产应用程序。它们在负载下可能返回 429(速率限制)或 403(阻止)错误。对于生产流量,请使用托管 RPC 服务或专用节点。
如何在 devnet 上测试新的 RPC 方法
在将更改部署到主网之前,请在 devnet 上测试它们。OnFinality 提供了一个免费的公共 devnet 端点。以下是如何调用 getHealth 等方法:
curl -H 'Content-Type: application/json' \
-d '{"id":1,"jsonrpc":"2.0","method":"getHealth"}' \
'https://solana.api.onfinality.io/public'
对于 WebSocket 订阅,请使用公共 WebSocket 端点:
wss://solana.api.onfinality.io/public-ws
您也可以使用官方 devnet 端点 https://api.devnet.solana.com 进行快速测试。要获取 devnet SOL,请使用 Solana 水龙头。
理解承诺级别
许多 Solana RPC 方法接受 commitment 参数,该参数控制节点返回数据前区块必须达到的最终性程度。三个级别是:
- processed:节点最近处理的区块。最快,但可能被回滚。
- confirmed:已获得超级多数权益投票的区块。更稳定。
- finalized:具有最大锁定时间的区块,确认强度最高。
选择正确的承诺级别会影响延迟和可靠性。对于必须不可逆的交易,请使用 finalized。对于速度更重要的实时更新,confirmed 通常是一个很好的平衡。
您应该了解的 Solana RPC 方法更新
最近的 Solana RPC 更新引入或改进了几个方法。以下是一些值得关注的方法:
getRecentPrioritizationFees:返回最近的优先费用,可用于费用估算。getLatestBlockhash:取代已弃用的getRecentBlockhash,用于获取最新区块哈希。isBlockhashValid:检查区块哈希是否仍然有效,可用于交易重试。simulateTransaction:模拟交易而不发送,帮助您捕获错误。
始终查阅官方 Solana RPC HTTP 方法 参考,以获取完整列表和请求格式。
公共 RPC 与托管 RPC:需要注意什么
当 Solana RPC 更新推出时,公共端点可能滞后或在负载下变得不稳定。像 OnFinality 这样的托管 RPC 服务通常能更快地更新其基础设施并提供更好的可靠性。以下是一个快速比较:
| 方面 | 公共 RPC | 托管 RPC (OnFinality) |
|---|---|---|
| 速率限制 | 低(例如,5 请求/秒) | 通过身份验证访问最高 500 请求/秒 |
| 可靠性 | 共享,可能返回 429/403 | 专用基础设施,更好的正常运行时间 |
| WebSocket 支持 | 有,但有限 | 有,提供专用端点 |
| 存档数据 | 不可用 | 支持 |
| 支持 | 无 | 提供优先支持 |
对于生产应用程序,托管 RPC 服务通常是更安全的选择。您可以从免费计划开始,并根据需要扩展。有关详细信息,请参阅 RPC 定价。
如何及时了解 Solana RPC 更改
为了保持您的 dApp 兼容,请遵循以下做法:
- 监控 Solana 官方文档,了解弃用通知和新方法。
- 订阅 Solana 的 GitHub 发布,了解客户端更新。
- 在 devnet 上测试新方法,然后再在生产环境中使用。
- 使用托管 RPC 提供商,它们会跟踪协议更改并自动更新其端点。
OnFinality 的 Solana 网络页面 列出了支持的方法并提供实时端点状态。您还可以查看 支持的网络 了解其他链。
关键要点
- Solana RPC 更新包括新方法、弃用和承诺级别更改。
- 公共端点适合测试,但不适合生产流量。
- 在部署到主网之前,先在 devnet 上测试新方法。
- 选择托管 RPC 服务以获得更好的可靠性、更高的速率限制和支持。
- 通过关注官方文档和使用跟踪协议更改的提供商来保持信息畅通。
常见问题解答
最新的 Solana RPC 版本是什么?
Solana RPC 使用 JSON-RPC 2.0。没有版本号,但方法会随时间添加和弃用。请查看官方文档以获取当前方法列表。
如何获取 Solana RPC 端点?
您可以使用公共端点 https://api.mainnet.solana.com 或像 OnFinality 这样的托管服务。对于生产环境,请注册 API 密钥以获得更高的速率限制。
devnet 和 testnet 有什么区别?
Devnet 供开发者使用免费 SOL 测试他们的 dApp。Testnet 用于验证者和网络测试。两者都与主网分开。
如何处理 Solana RPC 上的速率限制?
使用具有更高速率限制的托管 RPC 提供商,或实现指数退避的重试逻辑。公共端点限制较低,可能返回 429 错误。
我可以在 Solana 上使用 WebSocket 进行实时更新吗?
是的,Solana 支持账户、程序、日志和插槽更新的 WebSocket 订阅。对于 OnFinality 的公共 WebSocket 端点,请使用 wss://solana.api.onfinality.io/public-ws。
如何在共享和专用 Solana RPC 之间选择?
共享 RPC 对于中等流量具有成本效益。专用节点提供一致的性能,更适合高吞吐量应用程序。在决定之前,请评估您的工作负载和预算。
有关 Solana RPC 端点和方法的更多详细信息,请访问 Solana 网络页面 或探索 RPC 定价。