Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

免费 Solana API:你实际能获得什么,以及何时该升级

摘要

免费 Solana API 为你提供一个支持 Solana JSON-RPC 方法的 HTTP 和 WebSocket 端点,让你无需运行验证节点即可读取账户、发送交易和订阅日志。问题在于,免费套餐是共享的、有速率限制的,通常不适合生产流量或大量归档查询。

本文解释了免费 Solana API 实际能处理什么,如何用真实的 JSON-RPC 调用进行测试,以及哪些信号表明你应该转向付费共享方案或 OnFinality 的专用 Solana 节点。

免费 Solana API 是一个支持 Solana JSON-RPC 方言的 HTTP 和 WebSocket 端点,让你无需运行验证节点即可读取账户、提交交易和订阅日志。这是让钱包、脚本或原型与 Solana 主网通信的最快方式。代价是免费端点共享、有速率限制,通常不适合生产流量、归档查询或高频 WebSocket 订阅。

本页面帮助你判断免费 Solana API 是否足以应对当前工作负载,如何用真实的 JSON-RPC 调用验证它,以及当它无法满足需求时应该关注什么。

免费 Solana API 是否足以应对你的工作负载?

在编写更多代码之前,先将端点与任务匹配。免费套餐适合学习和轻量读取,但在持续负载、大型 getProgramAccounts 扫描或大量并发 WebSocket 客户端下会迅速崩溃。

工作负载免费 API 适用性需要注意什么
钱包或 dApp 原型通常可以演示期间偶尔出现 429
针对 devnet 的 CI 测试如果隔离则没问题并行任务间共享速率限制
读取密集型后端(余额、代币账户)勉强按 IP 和按方法限流
索引器或 getProgramAccounts 扫描差超时、响应被截断
交易机器人或 WebSocket 订阅差套接字断开、重连风暴
面向用户的生产 dApp不推荐无 SLA、无支持渠道

如果你的工作负载位于前两行,免费 Solana API 是合理的起点。如果位于后三行,请规划通往付费共享方案或专用 Solana 节点的路径。OnFinality 两者都提供,你可以在 Solana 网络页面 和 RPC 定价 上比较选项。

对于 Solana JSON-RPC 来说,“免费”意味着什么

Solana 节点通过 HTTP 暴露 JSON-RPC 接口,对于订阅则通过 WebSocket。免费端点通常为你提供:

  • 用于标准方法(如 getBalance、getAccountInfo、getLatestBlockhash 和 sendTransaction)的公共 HTTP URL。
  • 用于 logsSubscribe、accountSubscribe 和 slotSubscribe 的公共 WebSocket URL。
  • 无需 API 密钥,或易于获取的低配额密钥。

它通常不提供:

  • 有保证的吞吐量或并发性。
  • 超出有限窗口的归档或历史状态。
  • 网络拥塞时的优先访问。
  • 凌晨两点出问题时的支持渠道。

免费端点是共享基础设施。当一个用户运行重型扫描时,该端点上的所有人都会受到影响。这就是免费套餐适合学习但生产环境有风险的核心原因。

用真实调用测试免费 Solana API

在将代码提交到端点之前,先运行一些检查。首先使用 curl 对 OnFinality 公共 Solana 端点进行基本健康探测:

curl -s https://solana.api.onfinality.io/public \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'

健康的节点返回 {"jsonrpc":"2.0","result":"ok","id":1}。接下来,确认你可以读取账户并获取最近的区块哈希,这是大多数交易流程所需要的:

curl -s https://solana.api.onfinality.io/public \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getLatestBlockhash","params":[{"commitment":"confirmed"}]}'

如果你使用 JavaScript,同样的调用可以通过 @solana/web3.js 工作:

import { Connection, PublicKey } from "@solana/web3.js";

const connection = new Connection("https://solana.api.onfinality.io/public", "confirmed");

const slot = await connection.getSlot();
const balance = await connection.getBalance(new PublicKey("11111111111111111111111111111111"));
console.log({ slot, balance });

对于订阅,使用 WebSocket URL:

const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");

ws.onopen = () => {
  ws.send(JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "logsSubscribe",
    params: [{ mentions: ["11111111111111111111111111111111"] }, { commitment: "confirmed" }]
  }));
};

ws.onmessage = (event) => console.log(event.data);

针对候选端点运行这些测试,并记录响应时间、错误率,以及并行负载下是否出现 429 响应。这些数据(而非营销文案)才能告诉你免费套餐是否合适。

链设置一览

如果你要将 Solana 接入钱包或配置文件,请确保这些值与你要定位的网络一致。OnFinality Solana 主网配置使用以下内容:

设置值
链名称Solana Mainnet
原生货币SOL(9 位小数)
HTTP RPChttps://solana.api.onfinality.io/public
WebSocket RPCwss://solana.api.onfinality.io/public-ws
区块浏览器https://explorer.solana.com

对于 devnet 工作,请使用 Solana Devnet 网络页面 确认正确的端点,然后再将测试指向它。混合主网和 devnet URL 是“我的交易消失了”报告最常见的原因之一。

免费 Solana API 在哪里会出问题

免费端点会以可预测的方式失败。识别故障模式可以节省数小时的调试时间。

症状可能原因下一步
HTTP 429 响应触达共享速率限制降低并发或转向付费方案
getProgramAccounts 超时共享节点上的大型扫描使用 dataSlice 过滤或转向专用节点
WebSocket 断开空闲超时或节点重启添加重连逻辑,或使用专用端点
sendTransaction 返回“blockhash not found”滞后节点提供的过期区块哈希刷新区块哈希并重试
槽高度不一致节点落后于链尖对照第二个端点检查 getSlot
缺少历史数据免费套餐无归档访问使用支持归档的提供商

如果你在同一周内看到其中两个或更多症状,免费套餐就不再是合适的工具。这是评估付费共享方案或专用 Solana 节点的信号,而不是添加更多重试逻辑。

从免费转向生产级 Solana API

当你决定升级时,将其视为迁移而非切换。一份简短的清单可以防止你用一种问题换另一种问题。

  1. 清点你的方法。 列出你的应用调用的每个 JSON-RPC 方法,包括 WebSocket 订阅。归档和追踪方法通常需要与标准读取不同的方案。
  2. 衡量峰值,而非平均值。 免费套餐通常能承受平均负载,但在峰值时失败。按峰值并发和请求速率来规划规模。
  3. 决定共享还是专用。 共享方案适合大多数 dApp 和后端。专用 Solana 节点适合索引器、交易系统以及需要可预测吞吐量和隔离的团队。有关区别,请参阅 专用节点。
  4. 规划故障转移。 在客户端中配置至少两个端点,这样单个提供商的问题不会导致应用宕机。
  5. 添加监控。 跟踪错误率、p95 延迟和 WebSocket 重连次数。对变化而非绝对值设置警报。
  6. 切换前测试。 在 staging 环境中针对新端点运行完整的方法清单,然后逐步转移生产流量。

OnFinality 提供 Solana RPC API 访问和专用节点基础设施,因此你可以从共享方案开始,随着工作负载增长转向专用节点。在提交之前,请查看 RPC 定价 和 支持的 RPC 网络 列表以确认当前覆盖范围。

在共享和专用 Solana 访问之间选择

决策通常归结为你需要对吞吐量和隔离有多少控制权。

  • 共享 RPC 方案 对于具有中等、突发流量的 dApp、钱包和后端来说具有成本效益。你获得一个托管端点,其限制高于免费套餐,而无需运行节点。
  • 专用 Solana 节点 为你的团队提供一个不与其他客户共享的节点。它们适合索引器、做市商以及有严格延迟或数据完整性要求的团队。
  • 自托管节点 提供最大控制权,但需要硬件、监控和升级工作。许多团队从自托管开始,一旦运营成本超过节省的费用,就转向托管基础设施。

如果你不确定哪种适合,RPC 提供商选择指南 更详细地介绍了评估标准。

关键要点

  • 免费 Solana API 是通过 HTTP 和 WebSocket 提供的共享 JSON-RPC 端点,适合原型、学习和轻量读取。
  • 免费套餐有速率限制,通常缺乏归档访问、有保证的吞吐量和支持。
  • 在基于任何端点构建之前,用 getHealth、getLatestBlockhash 和 WebSocket 订阅进行测试。
  • 注意 429、getProgramAccounts 超时和 WebSocket 断开,这些是升级的信号。
  • 当峰值负载、数据完整性或隔离成为需求时,转向付费共享方案或专用 Solana 节点。
  • 保持主网和 devnet 端点分离,并始终配置故障转移。

常见问题

免费 Solana API 对生产环境安全吗?

对于大多数生产应用来说,不安全。免费端点共享且有速率限制,没有吞吐量保证或支持渠道。它们最适合原型、测试和低流量内部工具。生产应用应使用付费共享方案或专用节点。

免费 Solana API 和付费 API 有什么区别?

付费方案通常增加更高的速率限制、更好的隔离、归档或历史数据访问、拥塞时的优先级以及支持渠道。JSON-RPC 方法相同;区别在于容量、可靠性和责任。

我可以使用免费 Solana API 进行 WebSocket 订阅吗?

可以,但预计会出现断开和空闲超时。构建重连逻辑,避免将任何面向用户的内容依赖于单个免费 WebSocket。对于持续订阅,请使用付费或专用端点。

OnFinality 提供免费 Solana API 吗?

OnFinality 提供公共 Solana RPC 端点供入门使用,以及用于生产工作负载的付费共享方案和专用 Solana 节点。查看 Solana 网络页面 和 RPC 定价 了解当前选项。

为什么 getProgramAccounts 在免费端点上失败?

这是一个昂贵的调用,会扫描许多账户。共享免费节点通常会超时或拒绝它。使用 dataSlice 和过滤器来缩小查询范围,或转向具有归档访问权限的专用节点。

在使用免费 Solana API 之前如何测试它?

发送 getHealth 请求,获取最近的区块哈希,读取一个已知账户,并打开一个简短的 WebSocket 订阅。在并行负载下测量错误率和延迟,而不仅仅是单个请求。

RPC 知识库

相关 RPC 内容

测试网 RPCArbitrum

Sepolia Beacon RPC 端点:链设置、方法和调试

Sepolia beacon RPC 端点暴露了以太坊 Sepolia 测试网的共识层,让您可以查询验证者职责、最终性和 blob 数据。本页涵盖链设置、常见的 beacon API 方法,以及如何为您的测试网或 L2 开发选择可靠的端点。...

测试网 RPCBitcoin

什么是比特币测试网 RPC,如何使用它?

比特币测试网 RPC 端点允许开发者连接到比特币测试网络,在不冒真实资金风险的情况下进行开发和测试。本文解释了什么是比特币测试网 RPC,如何选择端点,以及如何发起你的第一个 JSON-RPC 调用。...

网络 RPCAvalanche

什么是Avalanche节点,何时应该使用它们?

Avalanche 节点是 Avalanche 网络的骨干,负责交易转发、区块生产和共识。它们有几种类型:验证者节点、全节点、归档节点和状态同步节点,每种类型的数据保留和资源需求不同。本文解释了节点的角色、硬件要求,并帮助您决定是否自己运行节点或使用像 OnFinality 这样的托管 RPC 服务...

网络 RPCEth Sepolia

如何通过 eth_getBlockByNumber 获取最新的以太坊区块?

了解如何使用 eth_getBlockByNumber JSON-RPC 方法获取最新的以太坊区块,包括 curl 和 ethers.js 示例、响应字段和常见陷阱。比较公共、托管和专用 RPC 选项,为您的 dApp 选择合适的端点。...

RPC 提供商选择

即用即付区块链节点如何运作,何时应该使用它们?

即用即付区块链节点是按实际使用量计费而非固定月费的托管 RPC 端点。这种模式适合流量不均衡、多链实验或早期阶段产品的团队,因为它能使基础设施成本与需求保持一致。 在采用按使用量计费的计划之前,请将速率限制、超额定价、WebSocket 支持和归档数据访问与您的预期工作负载进行比较。使用真实流量样本...

区块链基础设施Bittensor

2025 年 Bittensor 子网注册费用是多少?

Bittensor 子网注册费用并非固定费用。它由网络的动态注册机制设定,每次注册子网时费用会提高,并随时间衰减,因此你支付的金额取决于当前需求和交易被打包的确切区块。在 2025 年,你应该将费用视为一个动态目标,从链上实时读取,而不是依赖静态数字。 本文解释了费用如何计算、如何通过 RPC 查询...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始