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

免费 Solana RPC 节点:何时足以满足你的应用需求?

摘要

免费 Solana RPC 节点是公共或共享端点,允许你在没有付费计划的情况下读取链上数据并提交交易。它们适用于原型开发、本地开发、钱包设置和低流量脚本,但通常具有共享容量、请求限制且无运营保证。本页解释了如何连接到免费 Solana 端点、在负载下首先会出现什么问题,以及何时迁移到托管或专用节点。OnFinality 提供公共 Solana 端点以及托管 RPC API 和专用节点选项,当你的工作负载超出免费访问范围时可以使用。

免费 Solana RPC 节点是否适合你的工作负载?

免费 Solana RPC 节点是任何人都可以调用的共享端点,无需付费计划。它们是让钱包、脚本或原型与 Solana 通信的最快方式。代价是你与使用同一端点的所有人共享容量,并且无法控制节点的配置、保留策略或可用性。

在决定使用免费端点之前,请进行以下快速测试:

  • 原型或本地开发: 免费端点通常足够。你发送少量请求,可以手动重试失败。

  • 面向真实用户的钱包或 dApp: 免费端点可以在低流量下工作,但一旦有并发用户,共享速率限制和 WebSocket 断开就会显现。

  • 索引器、交易机器人或分析任务: 免费端点通常无法胜任。大量的 getProgramAccountsgetSignaturesForAddress 和日志订阅消耗的计算资源远超共享端点的规模。

  • 需要 SLA 或支持的生产环境: 迁移到托管 RPC API 或专用节点,以便控制容量、传输和故障转移。

如果你仍在共享、托管和专用访问之间犹豫,Solana RPC 提供商比较RPC 提供商选择指南更深入地介绍了评估标准。

“免费”对 Solana RPC 意味着什么

Solana RPC 不是单一服务。它是由各个节点提供的 JSON-RPC 接口。免费端点是由提供商、基金会或社区团体向公众开放的节点(或小型节点池)。

这种模式有三个实际后果:

  1. 共享吞吐量。 每个用户的每个请求都在竞争相同的 CPU、内存和网络容量。当端点繁忙时,你的调用会排队或被拒绝。

  2. 速率限制和方法限制。 许多免费端点限制每秒或每分钟的请求数,有些会禁用昂贵的方法,如 getProgramAccounts,或限制 getLogs 风格的订阅。

  3. 无保留或支持保证。 免费节点可能不保留完整历史,可能修剪较旧的账本数据,并且通常没有支持渠道。

这些并不意味着免费端点不好。它们是一种特定工具:适合学习和轻量使用,不适合持续或延迟敏感的工作负载。

连接到免费 Solana 端点

对于 Solana 主网,OnFinality 提供公共 HTTP 和 WebSocket 端点。你可以直接用于开发和轻量测试。

# Solana 主网公共 HTTP 端点
curl https://solana.api.onfinality.io/public \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getLatestBlockhash",
    "params": [{"commitment": "confirmed"}]
  }'

成功响应返回当前区块哈希及其最后有效区块高度:

{
  "jsonrpc": "2.0",
  "result": {
    "context": { "slot": 0 },
    "value": {
      "blockhash": "...",
      "lastValidBlockHeight": 0
    }
  },
  "id": 1
}

对于订阅,使用 WebSocket 端点:

// 订阅 slot 更新的 WebSocket
const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");

ws.onopen = () => {
  ws.send(JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "slotSubscribe"
  }));
};

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  console.log("slot notification", msg.params?.result);
};

如果你在主网之前构建或测试,请改用 Solana Devnet RPC 端点。Devnet 允许你从水龙头请求测试 SOL,并执行相同的 RPC 方法,而无需花费真实资金。

链设置一览

当你将 Solana 添加到钱包、dApp 配置或像 Anchor 这样的框架时,需要链参数与你目标网络匹配。

设置Solana 主网Solana Devnet
链名称Solana MainnetSolana Devnet
原生货币SOL(9 位小数)SOL(9 位小数)
HTTP RPChttps://solana.api.onfinality.io/public参见 Solana Devnet
WebSocket RPCwss://solana.api.onfinality.io/public-ws参见 Solana Devnet
区块浏览器https://explorer.solana.comhttps://explorer.solana.com/?cluster=devnet
承诺级别processed, confirmed, finalizedprocessed, confirmed, finalized

保持链名称、货币小数位和浏览器 URL 与你实际调用的网络一致。将主网 RPC URL 与 devnet 程序 ID 混合是最常见的设置错误之一。

免费端点首先在哪里出问题

免费 Solana RPC 节点很少在简单调用上失败。它们会在使 Solana 应用变得有趣的操作上失败。注意以下模式:

症状可能原因尝试方法
429 Too Many Requests达到共享速率限制添加退避和抖动,降低轮询频率,尽可能批量处理
getProgramAccounts 超时方法昂贵或被禁用缩小过滤器,使用 dataSlice,或迁移到托管/专用节点
WebSocket 断开空闲超时或容量压力实现重连和重新订阅逻辑;考虑专用 WebSocket 端点
发送时 Blockhash not found区块哈希在确认前过期获取新的区块哈希,设置 lastValidBlockHeight,重试
槽高度不一致请求命中池中的不同节点固定到单个端点或使用具有一致路由的提供商
缺少旧交易节点修剪了历史使用支持归档的端点进行历史查询

如果你在同一会话中看到多个这些问题,端点是在告诉你它的规模不足以应对你的工作负载。这是评估托管或专用访问的信号,而不是无限调整重试。

对共享节点造成压力的 Solana 特有方法

Solana 的 RPC 接口比典型的 EVM 链更广泛,少数方法主导资源使用:

  • getProgramAccounts 扫描程序拥有的账户。如果没有严格的过滤器,它可能返回数兆字节的数据,是免费端点超时的最常见原因。

  • getSignaturesForAddress 在繁忙的程序上返回长历史。使用 beforeuntil 分页,而不是一次性请求所有内容。

  • logsSubscribeprogramSubscribe 推送大量通知。共享 WebSocket 在负载下可能会丢弃或限制这些通知。

  • sendTransaction 依赖于有效的近期区块哈希。如果你的端点速度慢,区块哈希可能在交易落地前过期,产生令人困惑的错误。

对于任何这些情况,解决方案通常是容量和控制,而不是巧妙的参数。托管 RPC API 为你提供稳定的端点和可预测的限制;专用节点为你提供节点本身,当你需要一致的 getProgramAccounts 性能或长期订阅时,这很重要。

生产就绪检查清单

在将真实用户指向任何 Solana RPC 端点(包括免费端点)之前,请确认以下内容:

  • 故障转移: 你至少配置了两个端点,并且客户端可以在一个失败时切换。

  • 重试策略: 对 429 和 5xx 响应使用带抖动的指数退避,并限制总重试次数。

  • 承诺策略: 你知道哪些调用使用 processedconfirmedfinalized,以及为什么。

  • WebSocket 生命周期: 重连、重新订阅和心跳处理已实现,而不是假设。

  • 可观测性: 你记录每个端点的错误率、延迟百分位数和速率限制响应。

  • 成本模型: 你了解什么量会触发付费计划以及该计划包含什么。请参阅 RPC 定价了解当前层级。

  • 网络覆盖: 如果你支持多条链,请确认每条链都列在支持的 RPC 网络下。

如果你无法满足大部分这些条件,免费端点对于开发仍然可以,但还不是生产依赖。

从免费迁移到托管或专用

迁移本身通常很小。决策才是困难的部分。

继续使用免费如果: 你正在原型设计、运行测试套件,或服务一个偶尔失败可接受的小型内部工具。

迁移到托管 RPC API 如果: 你有真实用户,需要具有定义限制的稳定端点,想要 WebSocket 支持,并且不想运行基础设施。OnFinality 的 RPC API 服务就是为此而建,提供 Solana 和其他网络的端点。

迁移到专用节点如果: 你需要在繁重方法上保持一致的性能,想要控制节点配置和保留策略,或运行共享端点无法吸收的工作负载。请参阅专用节点了解其工作原理。

一个实用的中间路径是保留免费端点作为备用,同时将主要流量路由到托管端点。这样可以在没有大量前期投入的情况下获得弹性。

关键要点

  • 免费 Solana RPC 节点是共享端点,适用于原型、本地开发和低流量脚本。

  • 它们通常施加速率限制,限制昂贵的方法,并且不提供保留或支持保证。

  • 你会看到的第一个故障是 429 响应、getProgramAccounts 超时和 WebSocket 断开。

  • Solana 主网公共端点可通过 HTTP 和 WebSocket 使用;devnet 是主网之前的正确目标。

  • 生产应用需要故障转移、重试逻辑、可观测性和清晰的成本模型,而不仅仅是一个可用的 URL。

  • 当免费访问不再适合时,托管 RPC API 和专用节点是两条值得评估的升级路径。

常见问题

免费 Solana RPC 节点对于生产环境足够可靠吗?

在非常低的流量下可以,但它们是共享的,通常缺乏容量、保留和支持方面的保证。对于任何有真实用户或延迟敏感的场景,托管或专用端点是更安全的默认选择。

免费 Solana RPC 端点和专用节点有什么区别?

免费端点由许多用户共享,你无法控制其配置。专用节点为你的工作负载配置,因此你可以控制容量、保留和传输行为。

我可以使用免费端点进行 getProgramAccounts 吗?

有时可以,但这是最可能在共享端点上超时或被限制的方法。缩小过滤器,使用 dataSlice,如果你依赖它,请考虑托管或专用端点。

免费 Solana RPC 端点支持 WebSocket 吗?

许多支持,包括 OnFinality 的公共 Solana WebSocket 端点,但共享 WebSocket 连接在负载下可能会断开。无论使用哪个端点,都要实现重连和重新订阅逻辑。

如何在不花费 SOL 的情况下在 Solana 上测试?

使用 Solana Devnet,从水龙头请求测试 SOL,并运行你计划在主网上使用的相同 RPC 方法。

何时应该切换到付费 Solana RPC 计划?

当你看到反复出现的速率限制、核心方法超时或 WebSocket 不稳定时,或者当你需要支持和定义的容量时。查看 RPC 定价支持的网络来规划迁移。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Efinity

你能比较一下 Solana RPC 提供商的专用节点访问与共享节点访问吗?

共享 Solana RPC 访问将许多应用汇集到同一节点基础设施上,这可以保持低成本并快速设置,但在网络拥塞期间会引入吵闹邻居效应。专用节点访问为你的工作负载提供自己的 Solana 验证器或 RPC 节点,因此吞吐量、速率限制和升级时间都是可预测的。本文从延迟、速率限制、WebSocket 可靠性...

网络 RPCpeaq

Peaq RPC Endpoint: Chain Settings, Faucet, and Debugging

Find the official Peaq RPC endpoint, chain ID, native currency, and step-by-step setup for EVM-compatible wallets. Learn how to use the Peaq faucet, c...

网络 RPCTON

TON JSON-RPC:端点、方法及使用方法

TON JSON-RPC 是通往开放网络(The Open Network)的 JSON-RPC 2.0 接口,让您可以通过单个 HTTPS 端点查询账户状态、运行智能合约 get 方法以及发送交易。本文解释了端点结构、常用方法、身份验证,以及如何在公共、托管和专用 TON RPC 基础设施之间进行...

网络 RPCComposable Finance

Composable RPC:端点、专用节点和集成指南

Composable Finance 是一个跨链 DeFi 基础设施项目,可在以太坊、Polkadot、Kusama、Cosmos 和 NEAR 等生态系统中实现无需信任的互操作性。本指南涵盖 Composable RPC 端点、如何连接到网络,以及何时从公共端点迁移到专用节点以用于生产工作负载。...

网络 RPCHydraDX

什么是 HydraDX,如何通过 RPC 连接到它?

# 什么是 HydraDX,如何通过 RPC 连接到它? HydraDX(现已更名为 Hydration)是一个构建在 Polkadot 上的下一代 DeFi 协议,作为平行链运行。其旗舰产品是 Omnipool,一种创新的自动做市商(AMM),将所有资产整合到一个单一交易池中,从而实现资本高效的兑...

网络 RPCAvalanche

什么是 Base 网络 RPC 端点,如何使用它?

Base 网络 RPC 端点是您的 dApp 或钱包用于与 Base 区块链通信的 URL。OnFinality 在 https://base.api.onfinality.io/public 提供了一个公共 HTTPS 端点,您可以使用它发送 JSON-RPC 请求来读取数据或提交交易。本文介绍了...

永远不用担心基础设施

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

开始