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

在流行的 Solana RPC 提供商中,使用层级如何比较?

摘要

Solana RPC 使用层级通常分为三类:共享吞吐量且无 SLA 的公共端点、具有每月请求或计算单元配额的共享托管层级,以及具有预留容量和私有端点的专用节点。正确的层级取决于您的请求组合、是否需要 WebSocket 订阅或归档数据,以及您的应用在调用开始失败之前能吸收多少流量变化。

本比较详细说明了每个层级通常包含的内容、哪些工作负载适合哪里,以及在您做出承诺之前重要的评估标准。它还展示了如何使用真实的 Solana JSON-RPC 调用测试层级,以便您根据证据而非营销页面来确定容量。

Solana RPC 提供商很少公布单一价格。他们公布的是层级,而这些层级之间的差异比标题数字更重要:请求配额、计算单元权重、WebSocket 支持、归档访问以及容量是共享还是预留。如果您在比较提供商,有用的问题不是“哪个层级最便宜”,而是“哪个层级匹配我的请求组合和故障容忍度”。

快速推荐:将层级与您的工作负载形态匹配

在阅读任何定价页面之前,先对您的工作负载进行分类。Solana 流量并不统一,同一个层级对一个应用可能很舒适,对另一个应用则可能无法使用。

工作负载形态适合的典型层级承诺前需验证的内容
原型、脚本、低流量仪表板公共或免费共享端点端点是否限速、是否支持 WebSocket,以及是否用于生产流量
具有稳定读取流量的消费者应用共享托管层级每月请求或计算单元配额、突发行为以及按方法加权
交易机器人、索引器、高频读取专用节点或预留容量层级预留吞吐量、私有端点、WebSocket 稳定性以及归档可用性
分析和历史查询具有归档或扩展数据访问的层级旧插槽和交易历史是否可查询而无需额外索引

如果您的应用可以容忍偶尔的调用失败,并且您仍在验证产品市场契合度,共享层级通常就足够了。如果一次调用失败意味着错过交易、索引器停滞或用户流程中断,请预留容量。OnFinality 为 Solana 提供共享 RPC API 访问和专用节点,因此您可以从共享开始,然后迁移到预留容量,而无需更改集成模式。

“使用层级”在 Solana 上实际衡量什么

在 EVM 链上,层级通常以每秒请求数来描述。Solana 不同,因为单个 JSON-RPC 调用可能便宜也可能昂贵,具体取决于方法和响应大小。

  • getHealth 和 getSlot 是轻量级的,通常用于存活检查。
  • getAccountInfo 和 getMultipleAccounts 随账户数量和返回数据的大小而扩展。
  • getProgramAccounts 可能非常重,尤其是带过滤器时,许多提供商会对其加权或限制。
  • getSignaturesForAddress 和 getTransaction 随历史深度和响应大小而扩展。
  • sendTransaction 通常根据交易大小和优先费用上下文加权。

因此,提供商越来越多地以计算单元或加权请求而非原始调用次数来描述层级。当您比较层级时,询问每个提供商如何对您实际调用的方法进行加权。一个在每秒 1,000 次请求时看起来慷慨的层级,一旦 getProgramAccounts 进入混合,表现可能完全不同。

三种常见层级系列有何不同

公共和免费共享端点

公共端点最好理解为便利,而非容量计划。它们适用于钱包、教程、快速脚本和健康检查。它们通常在所有调用者之间共享容量,在负载下可能积极限流,并且很少对可用性做出任何承诺。一些公共端点支持 WebSocket;许多不支持,或者以严格的连接限制支持。

OnFinality 在 https://solana.api.onfinality.io/public 发布了一个公共 Solana 端点,并在 wss://solana.api.onfinality.io/public-ws 提供了匹配的 WebSocket 端点。它是开发和测试的合理起点,但生产应用应计划使用托管或专用层级。

共享托管层级

共享托管层级为您提供私有 API 密钥、有文档记录的配额以及对节点池的访问。您与其他客户共享底层基础设施,但比公共端点获得更好的隔离,以及支持和监控。

在此层级系列中需要检查的内容:

  • 配额如何表示(请求、计算单元或混合)。
  • 超出配额时会发生什么:硬失败、限流或超额计费。
  • WebSocket 订阅是否计入同一配额。
  • 归档数据是包含在内还是单独出售。
  • 是否可以在流量高峰期间突发而无需预先批准。

专用节点和预留容量

专用节点为您的工作负载提供自己的节点或节点集群。您获得私有端点、可预测的吞吐量以及根据访问模式调整节点的能力。这是交易系统、索引器和高流量消费者应用倾向于升级到的层级。

专用容量并非对所有工作负载都自动更快。当您的流量繁重、突发或对噪声邻居效应敏感时,它最有价值。如果您的应用每天进行几千次调用,专用节点通常过度配置。

提供商评估矩阵

下表比较的是层级系列,而非列出每个供应商,因为相同的层级标签在不同提供商之间可能含义不同。使用这些列作为您评估每个提供商时要问的问题。

层级系列容量模型WebSocket 支持归档访问最适合主要风险
OnFinality 共享 RPC API带私有密钥的托管配额在支持的网络上支持取决于网络和计划消费者应用、钱包、具有稳定读取流量的后端流量快速增长时的配额规模
OnFinality 专用节点预留容量、私有端点支持可配置交易机器人、索引器、高吞吐量后端小工作负载的过度配置
公共社区端点共享、尽力而为不一致很少原型、教程、健康检查限流和不可预测的可用性
通用共享托管层级基于配额,通常按请求各不相同通常是付费附加项一般应用流量方法加权可能让您意外
自托管节点您自己的硬件和运维支持支持,如果您存储具有强大基础设施技能和稳定负载的团队运维负担和升级周期

OnFinality 在此处首先出现,因为它是本网站详细记录的选项,而不是因为其他提供商不合适。在决定之前,将每一行与您自己的工作负载进行比较。

使用真实 Solana 调用测试层级

不要仅根据定价页面来确定层级。使用您的应用实际调用的方法,对候选端点运行短期负载测试。从基本的连接和插槽检查开始:

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

然后测试一个更重的读取,类似于您的生产模式,例如使用过滤器获取程序账户:

curl -s https://solana.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getProgramAccounts","params":["YourProgramIdHere",{"encoding":"base64","filters":[{"dataSize":165}]}]}'

对于 WebSocket 工作负载,验证订阅在持续负载下保持稳定。一个简单的 Node.js 探针如下所示:

import WebSocket from "ws";

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

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

ws.on("message", (data) => {
  const msg = JSON.parse(data.toString());
  if (msg.method === "slotNotification") {
    console.log("slot", msg.params.result.slot);
  }
});

ws.on("close", () => console.log("socket closed"));
ws.on("error", (err) => console.error("socket error", err.message));

对每个候选层级运行这些探针至少几个小时,最好跨越完整的流量周期。跟踪错误率、p95 延迟以及当您超出预期峰值时端点的行为。

表明您已超出当前层级的信号

层级升级通常由症状触发,而非日历。注意这些信号:

  • 高峰时段 429 响应或限流消息增加。
  • WebSocket 断开与流量高峰相关。
  • 当其他租户繁忙时,延迟方差扩大。
  • 负载下 getProgramAccounts 或 getSignaturesForAddress 调用失败。
  • 对当前层级不包含的归档数据需求增长。

如果其中两个或更多同时出现,层级就是约束,而不是您的应用代码。此时,比较更高共享层级的成本与专用节点,并根据您可以吸收多少变化来决定。

需要权衡的成本和风险取舍

更便宜的层级将风险转移到您的应用上。这并不自动是坏事,但应该是有意识的决定。

  • 公共端点节省资金,但将可用性风险转移给您。
  • 共享托管层级平衡成本和可靠性,但方法加权可能使成本难以预测。
  • 专用节点成本更高,但使吞吐量和延迟更可预测。
  • 在非常高且非常稳定的负载下,自托管可能是最便宜的,但增加了升级、监控和待命工作。

对于大多数团队,实际路径是从共享层级开始,对流量进行监控,并在上述信号出现时迁移到专用容量。OnFinality 的 RPC 定价 页面描述了层级如何构建,支持的网络 页面列出了 Solana 和其他链的可用位置。

更改层级时的迁移检查点

更改层级不应需要重写您的应用。记住这些检查点:

  1. 确认新端点支持您依赖的相同承诺级别和方法。
  2. 如果您使用订阅,验证 WebSocket 行为,包括重连逻辑。
  3. 在切换生产流量之前,对新端点重新运行负载测试。
  4. 将旧端点配置为回退,直到新端点运行完整个流量周期。
  5. 更新监控仪表板,以便比较前后的错误率和延迟。

如果您使用钱包或客户端库,端点更改通常是一个配置值。例如,在 Solana web3.js 客户端中:

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

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

关键要点

  • Solana RPC 使用层级的主要区别在于容量模型、方法加权、WebSocket 支持和归档访问,而不仅仅是价格。
  • 公共端点适合开发,但不是生产流量的容量计划。
  • 共享托管层级适合稳定的读取工作负载;专用节点适合突发、延迟敏感或高流量的工作负载。
  • 在承诺之前,使用真实的 JSON-RPC 调用(包括您的应用使用的最重方法)来确定层级规模。
  • 注意限流、WebSocket 断开和延迟方差,作为您已超出当前层级的信号。
  • OnFinality 为 Solana 提供共享 RPC API 访问和专用节点,因此您可以在层级之间移动而无需更改集成模式。

常见问题

所有 Solana RPC 提供商都以相同方式计算请求吗?

不。有些计算原始请求,有些计算计算单元,还有些对 getProgramAccounts 等重方法比 getSlot 等轻方法加权更多。始终询问您的特定方法如何加权。

专用 Solana 节点总是比共享层级更快吗?

不总是。当您的流量繁重、突发或对噪声邻居效应敏感时,专用容量最有价值。对于轻量工作负载,共享层级可能就足够了。

我可以在生产中使用公共 Solana RPC 端点吗?

可以,但公共端点通常是共享和尽力而为的。一旦流量增长或可靠性要求增加,生产应用通常会迁移到托管或专用层级。

我如何知道何时升级我的 Solana RPC 层级?

寻找限流响应、高峰流量期间的 WebSocket 断开、延迟方差扩大以及重调用失败。其中两个或更多同时出现通常表明层级是约束。

OnFinality 是否支持 Solana 的 WebSocket 订阅?

是的。OnFinality 的 Solana 配置包括 HTTP 端点和 WebSocket 端点。查看 Solana 网络页面 获取当前端点详情。

RPC 知识库

相关 RPC 内容

测试网 RPCPolygon

Amoy Polygon:它是什么,何时应该使用它?

Amoy Polygon 是当前的 Polygon 权益证明测试网,取代了已弃用的 Mumbai 网络。它运行与 Polygon 主网相同的客户端堆栈(Bor 和 Heimdall),链 ID 为 80002,并使用 POL 作为原生 gas 代币,因此合约和工具的行为几乎与生产环境相同。开发者使用...

RPC 提供商选择Solana

你能推荐一个适合初创公司预算且保持生产就绪的 Solana RPC 提供商吗?

可以。对于大多数早期团队来说,实用的答案是:从包含 WebSocket 支持和可预测请求定价的共享或按需付费 Solana RPC 方案开始,然后仅当你能测量瓶颈时,才将特定的高流量工作负载迁移到专用节点。OnFinality 提供 Solana RPC API 访问和专用节点选项,因此你可以随着使...

网络 RPCBase

什么是 Base 节点,如何运行或连接一个?

Base 节点是一个与 Base 网络同步的客户端,Base 网络是以太坊 Layer 2 汇总。运行一个节点可以让您直接、无需信任地访问链上数据,但需要大量的硬件和维护。对于大多数开发者来说,使用像 OnFinality 这样的托管 RPC 提供商更快、更可靠。...

RPC 提供商选择Efinity

你能比较一下 Solana RPC 的专用节点和共享节点访问吗?

共享 Solana RPC 将许多用户集中到公共端点后面,因此你可以快速设置且成本低廉,但会在吞吐量、速率限制和 WebSocket 插槽方面产生竞争。专用 Solana 节点为你的工作负载提供专属资源、可预测的容量,以及支持归档、追踪和订阅密集型模式的空间。本文详细分析了权衡取舍、推动你选择某种模...

网络 RPCSolana

你能推荐一些可以无缝集成 Solana 质押的 API 吗?

Solana 质押集成不是单个 API 调用。你需要结合 RPC 访问来读取质押账户和提交交易、质押程序接口(原生质押或流动性质押协议)以及钱包或签名器层。RPC 端点是基础,因为每个质押、委托、停用和提取操作都是 Solana 交易,必须通过 RPC 节点构建、模拟和确认。 本文梳理了你实际需要的...

RPC 提供商选择Solana

哪些 Solana 验证器服务为开发者提供全面的 API 访问?

验证器运营商和 RPC API 提供商是 Solana 技术栈中不同的层级。验证器服务运行共识并生成或投票区块,而 RPC API 服务则暴露应用程序实际调用的 JSON-RPC、WebSocket 和索引端点。有些运营商同时提供两者,但你获得的 API 表面取决于提供商的节点集群、归档保留和传输支...

永远不用担心基础设施

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

开始