摘要
Solana RPC 端点是您的应用程序用来向 Solana 网络发送 JSON-RPC 请求的 URL。本指南涵盖主网和开发网端点,如何配置您的钱包或 dApp,以及如何在公共、共享和专用 RPC 服务之间进行选择。
快速解答:什么是 Solana RPC 端点?
Solana RPC 端点是一个接受 Solana 区块链 JSON-RPC 请求的 URL。您的钱包、dApp 或交易机器人使用此端点读取链上数据(如账户余额或交易状态)并提交已签名的交易。该端点是您的应用程序与 Solana 网络之间的桥梁。
例如,OnFinality 官方 Solana 主网公共端点是:
https://solana.api.onfinality.io/public
此端点支持 HTTP 和 WebSocket 连接。WebSocket URL 为:
wss://solana.api.onfinality.io/public-ws
您可以使用这些端点立即开始构建,但对于生产工作负载,您应该评估托管或专用 RPC 服务以确保可靠性和性能。
决策指南:您应该使用哪个 Solana RPC 端点?
在连接之前,决定哪种类型的端点适合您的用例:
- 公共端点:免费,但共享且有限速。适用于测试和轻度开发。
- 共享托管端点:付费,但仍由许多用户共享。适用于中等流量的生产应用。
- 专用节点:为您的项目配置的私有 Solana 节点。最适合高吞吐量应用、交易机器人或需要一致性能的应用。
如果您正在构建生产 dApp,共享托管端点通常是正确的起点。如果您需要低延迟、高请求量或自定义配置,请考虑专用节点。OnFinality 提供共享和专用选项,您可以在 RPC 定价页面 上比较计划。
Solana 主网和开发网端点
Solana 有多个集群。最常见的两个是主网和开发网。每个都有其自己的 RPC 端点和代币(主网使用 SOL,开发网使用 devnet SOL 进行测试)。
| 集群 | 端点 (OnFinality) | 用例 |
|---|---|---|
| 主网 | https://solana.api.onfinality.io/public | 生产应用,真实 SOL |
| 开发网 | 参见 Solana 开发网网络页面 | 测试、开发,无真实资金 |
对于开发网,您可以从水龙头获取免费的 devnet SOL 来测试您的应用程序。OnFinality 开发网端点可在 Solana 开发网网络页面 上找到。
如何配置您的钱包或 dApp
大多数 Solana 库(如 @solana/web3.js)允许您在创建连接时设置 RPC 端点。以下是一个基本示例:
import { Connection, clusterApiUrl } from '@solana/web3.js';
// 使用主网的公共端点
const endpoint = 'https://solana.api.onfinality.io/public';
const connection = new Connection(endpoint, 'confirmed');
// 或者使用开发网端点
// const devnetEndpoint = clusterApiUrl('devnet');
// const connection = new Connection(devnetEndpoint, 'confirmed');
对于 Phantom 或 Solflare 等钱包,您通常可以在设置中更改 RPC 端点。对于真实交易,请使用上述主网端点;对于测试,请使用开发网端点。
常见 RPC 方法和示例
Solana 的 JSON-RPC API 包括用于查询账户、区块和交易的方法。以下是一些常见方法:
getBalance– 获取账户的 SOL 余额getLatestBlockhash– 获取用于提交交易的最新区块哈希sendTransaction– 提交已签名的交易getTransaction– 获取交易详情
以下是一个获取最新区块哈希的 curl 示例:
curl https://solana.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getLatestBlockhash","params":[]}'
对于 WebSocket 订阅,您可以使用 wss://solana.api.onfinality.io/public-ws 端点来监听账户更改或交易确认。
如何为 Solana 选择 RPC 提供商
在比较 RPC 提供商时,请关注以下标准:
- 可靠性:寻找具有正常运行时间记录的提供商。避免不发布状态页面的提供商。
- 性能:延迟和吞吐量很重要,尤其是对于交易或高频应用。
- 速率限制:公共端点通常有严格的速率限制。检查提供商的政策。
- 支持:他们是否提供专门支持?是否有社区?
- 定价:比较共享与专用节点的成本。
OnFinality 提供托管 Solana RPC 服务,包括共享和专用选项。您可以在 支持的网络页面 上查看完整的支持网络列表。
常见 Solana RPC 问题排查
如果您遇到错误,以下是常见问题和修复方法:
- 超出速率限制:您发送的请求过多。升级到付费计划或实施缓存。
- 连接超时:端点可能已关闭或您的网络不稳定。检查提供商的状态页面。
- 无效的区块哈希:您使用的区块哈希太旧。在提交交易之前获取一个新的。
- WebSocket 断开:使用指数退避重新连接。
对于更高级的故障排除,请考虑使用专用节点以避免共享资源争用。
关键要点
- Solana RPC 端点是您的应用与 Solana 网络交互的 URL。
- 公共端点适合测试,但生产应用应使用托管或专用 RPC 服务。
- OnFinality 提供公共主网端点
https://solana.api.onfinality.io/public和 WebSocket 端点wss://solana.api.onfinality.io/public-ws。 - 使用开发网进行免费 SOL 测试,使用主网进行真实交易。
- 选择提供商时,评估可靠性、性能、速率限制、支持和定价。
常见问题解答
什么是 Solana RPC 端点?
Solana RPC 端点是用于向 Solana 网络发送 JSON-RPC 请求的 URL。OnFinality 的公共主网端点是 https://solana.api.onfinality.io/public。
有免费的 Solana RPC 端点吗? 是的,OnFinality 为 Solana 主网提供免费的公共端点。但是,它有限速,不建议用于生产环境。
如何获得专用的 Solana RPC 端点? 您可以通过 OnFinality 配置专用 Solana 节点。访问 专用节点页面 了解更多信息。
主网和开发网有什么区别? 主网使用真实的 SOL,用于生产环境。开发网使用免费的测试 SOL,用于开发和测试。
我可以将 WebSocket 与 Solana RPC 一起使用吗?
是的,OnFinality 提供 WebSocket 端点 wss://solana.api.onfinality.io/public-ws 用于实时订阅。