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

免费 Solana 节点端点实际上能做什么?

摘要

免费 Solana 节点端点是一个共享的 RPC URL,无需付费即可调用,通常用于学习、原型设计或低流量脚本。它适用于 getBalance 和 getLatestBlockhash 等基本读取操作,但共享容量意味着速率限制、延迟波动以及在高负载下偶尔出现故障。

本页解释了免费 Solana 端点的适用场景、在哪些情况下会失效,以及何时应迁移到托管或专用 Solana RPC 设置。它还展示了如何测试端点、配置钱包,并判断你的工作负载是否可以保持免费,还是需要付费计划。

快速建议:免费 Solana 节点是否足以满足你的工作负载?

大多数搜索免费 Solana 节点的开发者想要以下三件事之一:一个可以粘贴到钱包中的 URL、一种运行脚本或机器人的廉价方式,或者在为基础设施付费之前测试一个想法的方法。正确的选择取决于你正在做哪件事。

你的情况免费 Solana 节点通常下一步做什么
学习、教程、一次性脚本可以使用共享端点并保持低请求量
本地钱包或 devnet 测试可以,但使用 devnet将钱包指向 Solana devnet 端点
拥有几百用户的小型 dApp有风险测量错误率,然后转向托管计划
交易机器人、索引器或高频读取不适合评估专用 Solana 节点
有付费用户的生产应用不适合使用托管或专用 RPC 提供商

如果你仍在探索,免费端点是最快的起步方式。如果你要发布给真实用户,请将免费访问视为临时桥梁,而非基础。

“免费 Solana 节点”实际意味着什么

Solana 不会像云提供商提供免费套餐那样提供免费节点。人们所说的免费 Solana 节点几乎总是以下之一:

  • 由基金会、提供商或社区团体运行的公共 RPC 端点。
  • 共享 RPC 层级,在一定请求量内免费,之后限速或计费。
  • 你在自己硬件上运行的自托管验证器或 RPC 节点,其中“免费”仅意味着你不向提供商付费。

每种选项都有不同的权衡。公共端点最容易上手,但你与所有找到相同 URL 的人共享它。自托管节点给你控制权,但 Solana RPC 节点有真实的硬件要求,同步和维护是一项持续的工作。

免费端点最好被理解为共享资源。你获得访问权,但没有容量保证、延迟保证或支持渠道。

连接前需要的 Solana RPC 设置

在将任何 URL 粘贴到钱包或脚本之前,请确认网络和传输方式。Solana 主网和 devnet 是独立的集群,具有独立的状态,指向错误网络的钱包即使端点健康也会看起来像坏了。

设置Solana 主网Solana devnet
集群Mainnet BetaDevnet
原生货币SOL(9 位小数)SOL(9 位小数,无实际价值)
典型用途生产读写测试、水龙头资助的实验
浏览器https://explorer.solana.comhttps://explorer.solana.com(devnet 切换)
传输HTTP 和 WebSocketHTTP 和 WebSocket

OnFinality 通过 HTTP 和 WebSocket 暴露 Solana 主网。公共端点是:

https://solana.api.onfinality.io/public
wss://solana.api.onfinality.io/public-ws

对于 devnet 工作,请使用专用的 Solana Devnet RPC 页面,而不是将测试代码指向主网。混合两者是导致令人困惑的故障的最常见原因之一。

在一分钟内测试免费 Solana 端点

你不需要 SDK 来检查端点是否存活并返回合理数据。一个 JSON-RPC 调用就能告诉你很多信息。

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"}]
  }'

健康的响应包括最近的区块哈希和 lastValidBlockHeight。如果调用超时、返回速率限制错误,或返回远落后于当前 slot 的区块哈希,则端点要么过载,要么跟不上。

在确定使用某个端点之前,还值得运行另外两个调用:

# 检查当前 slot 以及节点是否跟上
curl https://solana.api.onfinality.io/public \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[{"commitment":"confirmed"}]}'

# 检查钱包余额
curl https://solana.api.onfinality.io/public \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["<WALLET_ADDRESS>",{"commitment":"confirmed"}]}'

如果 getSlot 返回的值持续攀升,并且 getLatestBlockhash 返回新鲜数据,则该端点可用于基本读取。这是底线,不是上限。

免费 Solana 端点在何处失效

免费和公共端点往往以可预测的方式失败。了解症状有助于你决定是重试、重新配置,还是转向付费计划。

症状可能原因尝试什么
429 响应触及共享速率限制降低请求速率、批量调用,或转向托管计划
getProgramAccounts 超时共享节点上的繁重扫描添加过滤器、分页,或使用专用节点
WebSocket 断开连接共享连接限制使用退避重连,或使用专用 WebSocket 端点
区块哈希过时错误节点落后于链尖使用新鲜区块哈希重试,或切换端点
调用间结果不一致在不均匀节点间负载均衡固定到单个端点或使用状态一致的提供商

getProgramAccounts 值得特别关注。它是最昂贵的 Solana RPC 调用之一,在共享端点上它往往是第一个失败的。如果你的应用依赖它,请计划使用专用节点或能可靠支持它的提供商。

何时从免费转向托管或专用

没有适用于每个应用的单一每秒请求数,但有明确信号表明免费端点不再适合:

  • 你的用户看到失败交易,但重试后成功。
  • 你的日志显示 429 或超时响应比例上升。
  • 你需要长时间保持打开的 WebSocket 订阅。
  • 你依赖归档数据或历史查询。
  • 当出现问题时,你需要支持渠道。

此时,决定是在托管共享计划和专用节点之间。托管共享计划更便宜,适合中等流量。专用节点提供隔离容量,这对交易机器人、索引器和具有突发负载的应用很重要。你可以在 RPC 定价 页面比较选项,如果你跨链运营,可以查看 支持的 RPC 网络

OnFinality 同时提供托管 RPC API 访问和 专用节点,因此你可以从共享开始,然后迁移到隔离容量,而无需更改集成模式。

配置钱包或应用以使用 Solana 端点

大多数 Solana 工具接受集群 URL。在钱包中,你通常添加自定义 RPC 端点并选择它。在代码中,你将 URL 传递给客户端。

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

// 用于轻量读取的免费/共享端点
const connection = new Connection(
  "https://solana.api.onfinality.io/public",
  { commitment: "confirmed" }
);

const balance = await connection.getBalance(
  new PublicKey("<WALLET_ADDRESS>")
);
console.log("lamports:", balance);

对于 WebSocket 订阅,使用匹配的 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: "slotSubscribe",
    params: []
  }));
};

ws.onmessage = (event) => {
  console.log("slot update:", event.data);
};

在你的应用中保持 commitment 级别一致。在同一流程中混合 processedconfirmedfinalized 是导致令人困惑的状态错误的常见原因。

监控端点健康的简单方法

如果你在免费端点上运行,请监控它,以便知道何时不再足够好。每分钟运行一次的轻量级探测足以捕获大多数问题。

async function probe(url) {
  const start = Date.now();
  try {
    const res = await fetch(url, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        jsonrpc: "2.0",
        id: 1,
        method: "getSlot",
        params: [{ commitment: "confirmed" }]
      })
    });
    const latency = Date.now() - start;
    const body = await res.json();
    return { ok: res.ok, latency, slot: body.result };
  } catch (err) {
    return { ok: false, error: String(err) };
  }
}

随时间跟踪三件事:成功率、中位延迟和 slot 新鲜度。当成功率下降或 slot 新鲜度滞后时,这就是你改变计划的信号。

关键要点

  • “免费 Solana 节点”几乎总是共享公共端点或免费层级,而不是私有节点。
  • 免费端点适合学习、devnet 测试和低流量脚本。
  • 它们在高负载下会失效,尤其是对于 getProgramAccounts、长期 WebSocket 订阅和突发流量。
  • 在依赖任何端点之前,使用 getLatestBlockhashgetSlotgetBalance 进行测试。
  • 当用户开始看到失败交易或你需要支持时,转向托管或专用 Solana RPC。
  • OnFinality 通过 HTTP 和 WebSocket 提供 Solana 主网,以及用于隔离容量的专用节点。

常见问题

是否存在真正免费的 Solana 节点?

有免费使用的公共端点和免费层级,但它们是共享的。你得到的不是私有节点;你获得的是对共享节点的访问,没有容量保证。

我可以免费运行 Solana RPC 节点吗?

你可以运行自己的节点,但“免费”仅意味着你不向提供商付费。Solana RPC 节点需要大量的 CPU、RAM、磁盘和带宽,以及持续的维护和监控。

为什么我的免费 Solana 端点返回 429 错误?

429 响应通常意味着你触及了共享速率限制。降低请求速率,尽可能批量调用,如果限制持续阻碍你,考虑托管计划。

我应该为交易机器人使用免费端点吗?

通常不应该。机器人需要一致的延迟和可靠的 WebSocket 流。共享端点可能引入延迟和断开连接,直接影响执行。

如何从免费端点切换到付费端点?

在大多数情况下,你更改配置或钱包中的 RPC URL,并保持相同的客户端代码。先在暂存环境测试,然后推出。

OnFinality 提供免费 Solana 端点吗?

OnFinality 提供用于轻量使用的公共 Solana 端点,以及托管和专用选项。查看 Solana 网络页面RPC 定价 了解当前详情。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

您能推荐提供增强型NFT数据API的Solana RPC服务吗?

是的。对于Solana NFT数据,您需要超越标准JSON-RPC并提供专门用于元数据、压缩NFT(cNFT)和资产索引的端点的RPC服务。本文介绍了需要关注的内容,比较了提供商的能力,并展示了如何为您的NFT市场、钱包或分析应用评估它们。...

RPC 提供商选择zkSync

ZKsync 正常运行时间:监控什么以及如何保持 dApp 的弹性

ZKsync 正常运行时间指的是 ZKsync 网络及其 RPC 端点的可用性。虽然网络的官方状态页面跟踪排序器和 API 的健康状况,但您的 dApp 的可靠性还取决于您的 RPC 提供商的冗余和故障转移策略。本文解释了要监控什么、如何评估提供商,以及如何在您的技术栈中构建弹性。...

网络 RPCArbitrum

Arbitrum 端点:链设置、RPC URL 和调试

本页介绍什么是 Arbitrum 端点、如何连接到 Arbitrum One 和 Arbitrum Sepolia,以及如何在公共 RPC、专用节点和 API 服务之间进行选择。它涵盖了链设置、请求示例和常见故障模式,以便您可以自信地配置您的 dApp 或后端。...

RPC 提供商选择Base

哪些 RPC 提供商支持 Base RPC?

Base 是一个基于 OP Stack 构建的以太坊 Layer 2 网络,许多 RPC 提供商都为其提供端点。本文介绍了在选择 Base RPC 提供商时需要注意的事项,包括端点类型、可靠性和定价,并列出了值得考虑的几家主要提供商。...

网络 RPCAcala

Acala 流动性质押:LDOT 如何运作以及质押前需要检查什么

Acala 流动性质押允许您将 DOT 存入 Acala 的质押模块并获得 LDOT,这是一种可转让的衍生代币,在您将其用于 DeFi 其他场景时仍能持续赚取质押奖励。本文解释了该流程如何运作、LDOT 代表什么,以及读取质押状态或构建流动性质押集成所需的 RPC 和 API 接口。文章还涵盖了开发...

RPC 提供商选择Arbitrum

什么是Arbitrum RPC节点,如何选择合适的节点?

Arbitrum RPC节点是一个端点,让你的dApp能够读取和写入Arbitrum One、Nova或Sepolia测试网的数据。选择合适的节点提供商需要评估吞吐量限制、归档数据支持、WebSocket可用性以及故障转移模式。本文涵盖了链设置、公共与私有端点,以及一个决策清单,帮助你选择符合生产需...

永远不用担心基础设施

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

开始