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

Solana RPC 提供商如何处理速率限制和使用层级?

摘要

Solana RPC 提供商通常通过每秒请求数上限、计算单元预算和按方法限制的组合来控制负载,然后将这些限制打包成使用层级。你所在的层级决定了你可以发送多少请求、哪些方法可用,以及你获得的是共享容量还是专用容量。理解其机制比记住任何单一提供商的具体数字更重要,因为限制会变化,而你的工作负载特征才是决定哪个层级真正适合的关键。

本文解释了 Solana RPC 上速率限制通常如何实现,如何在不被生产环境意外困扰的情况下理解使用层级,以及如何在共享端点和专用节点基础设施之间做出选择。它还涵盖了需要关注的故障信号,以及如何在承诺之前用真实流量测试某个层级。

Solana RPC 并不是一个具有单一限制集的产品。每个提供商都在相同的 JSON-RPC 接口上封装了自己的限流模型,然后按层级出售访问权限。如果你在比较提供商,有用的问题不是“谁的数字最高”,而是“哪种限制模型匹配我的应用实际发送流量的方式”。

本页解释了 Solana RPC 上速率限制通常如何工作,使用层级通常控制什么,以及如何在共享端点和专用节点基础设施之间做出选择。它是为需要在发布前确定端点规模的开发者和基础设施购买者编写的。

在比较层级之前如何决定

在你阅读任何提供商的层级表之前,先写下关于你工作负载的三件事:你的峰值每秒请求数、你调用的方法组合,以及你是否需要 WebSocket 订阅。这三个答案会立即排除大多数层级。

  • 低而稳定的流量(一个钱包、一个仪表盘、每天几千次调用):共享公共或入门层级通常就足够了。你更关心方法可用性而不是原始吞吐量。
  • 突发流量(一次铸造、一个领取窗口、一个在事件发生时唤醒的机器人):你关心突发允许量以及一旦超过后提供商限流你的速度。
  • 重度或持续流量(索引器、交易系统、getProgramAccounts 扫描、日志流):共享层级往往会成为瓶颈。这时专用节点或私有端点通常更有意义。

如果你的应用属于第三类,层级表就不是用来优化的正确文档。从容量出发,将共享层级视为备用路径。

Solana RPC 上的“速率限制”实际意味着什么

提供商很少强制执行单一数字。实际上你会同时遇到多种限制类型,而你首先触发的那个就定义了你的体验。

限制类型约束什么典型触发条件
每秒请求数 (RPS)你的密钥每秒总调用数高频轮询、大量小调用
计算单元预算昂贵方法的加权成本getProgramAccounts、大型 getSignaturesForAddress
按方法限制特定的重型方法账户扫描、交易模拟
连接限制并发 HTTP 或 WebSocket 连接大量打开的订阅
突发允许量高于稳定速率的短时峰值事件驱动流量

RPS 是大多数提供商宣传的数字,但在 Solana 上,计算单元风格的预算往往是真正阻止你的因素。一个带有宽泛过滤器的 getProgramAccounts 调用可能比数百次 getSlot 调用成本更高。如果你只比较 RPS 数字,你可能会选择一个看起来慷慨的层级,但在第一次账户扫描时仍然被限流。

理解使用层级而不被意外困扰

使用层级是四件事的捆绑:速率允许量、方法集、传输集以及支持或 SLA 层。提供商以不同方式呈现它们,但底层问题是相同的。

  1. 速率是硬上限还是软上限? 硬上限立即返回错误。软上限可能先排队或降低延迟。
  2. 哪些方法被排除? 归档查询、跟踪式调用和重型账户扫描通常被限制在更高层级。
  3. 是否包含 WebSocket? 订阅的行为与 HTTP 不同,有时单独计量。
  4. 达到限制时会发生什么? 清晰的错误代码比静默的延迟增长更容易处理。

当你评估一个层级时,询问故障行为,而不仅仅是上限。一个返回干净的 429 且你可以退避的层级,比一个悄悄减慢每个请求的层级更可行。

Solana 上的共享端点与专用节点

这是查询背后的真正决策。速率限制的存在是因为共享容量是有限的。专用基础设施改变了问题的形态。

维度共享/分层 RPC专用节点
容量模型池化,按密钥设上限为你的工作负载预留
速率限制由提供商强制执行由你自己的节点定义
重型方法通常按层级限制根据你的配置可用
WebSocket共享,有时计量由你自行确定规模
最适合钱包、仪表盘、中等应用索引器、交易、高流量后端
成本形态可预测,入门较低较高,随容量扩展

OnFinality 为 Solana 提供两种模型:用于标准工作负载的共享 Solana RPC 端点,以及当你需要预留容量并控制自己的限制时的 专用节点 基础设施。正确的选择取决于你的上限是由别人的池设定还是由你自己的流量设定。

用真实流量测试层级

不要从表格来确定层级规模。发送代表性流量并观察边缘情况。在提交计划之前,对公共端点进行短暂的负载探测可以让你了解响应的形态。

# 针对 OnFinality Solana 公共端点的简单 RPS 探测
ENDPOINT="https://solana.api.onfinality.io/public"

for i in $(seq 1 50); do
  curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" \
    -X POST "$ENDPOINT" \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[]}'
done

注意三个信号:非 200 响应、time_total 上升以及响应体中的任何 JSON-RPC 错误对象。在你预期的峰值下干净运行表明层级适合。错误或延迟增长告诉你需要升级层级或转向专用容量。

对于方法级测试,探测你实际依赖的调用,而不仅仅是 getSlot:

// 检查你的层级上是否有重型方法可用
const endpoint = "https://solana.api.onfinality.io/public";

async function probe(method, params) {
  const res = await fetch(endpoint, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params }),
  });
  const body = await res.json();
  console.log(method, res.status, body.error ?? "ok");
}

await probe("getSlot", []);
await probe("getVersion", []);

如果某个方法在你的层级上返回方法未找到或速率错误,那是层级边界,不是 bug。记录下来并纳入你的计划。

故障信号及其含义

当 Solana RPC 端点开始拒绝工作时,症状告诉你触发了哪个限制。

症状可能的限制下一步
每次调用立即 429RPS 上限退避、批量调用或提高层级
仅在账户扫描时 429计算预算或按方法限制将重型方法移至专用容量
响应缓慢,无错误软限流或共享争用测量延迟,考虑预留节点
WebSocket 断开连接限制减少订阅或拆分连接
方法不可用层级方法限制升级前确认方法支持

将这些视为设计输入。如果你的应用经常触发相同的限制,那么层级对工作负载来说形态不对,再多的重试逻辑也无法修复底层的不匹配。

围绕限制设计而不是对抗它们

好的 Solana 客户端假设限制存在。一些习惯可以减少你触发它们的频率:

  • 在 API 允许的地方批量处理。 JSON-RPC 批量请求减少往返和 RPS 压力。
  • 缓存不变的内容。 槽高度、纪元信息和静态账户数据不需要每个请求都调用。
  • 使用 WebSocket 订阅处理状态变化,而不是在循环中轮询。
  • 按密钥分离工作负载。 将索引器流量与面向用户的流量分开,以免一个饿死另一个。
  • 添加备用端点。 第二个提供商或专用节点在主端点限流时为你提供路径。

这些模式与提供商无关。它们也使层级比较更容易,因为你是在将优化后的流量与每个层级比较,而不是最坏情况的突发。

关键要点

  • Solana RPC 速率限制通常是 RPS 上限、计算单元预算、按方法限制和连接限制的混合,而不是单一数字。
  • 使用层级捆绑了速率允许量、方法集、传输集和支持层;故障行为与上限同样重要。
  • 像账户扫描这样的重型方法往往是真正的约束,所以比较方法支持,而不仅仅是 RPS。
  • 共享端点适合钱包、仪表盘和中等应用;专用节点适合索引器、交易系统和持续高流量后端。
  • 用代表性流量测试层级,并在提交前注意 429、延迟增长和方法错误。
  • OnFinality 提供共享 Solana RPC 端点 和 专用节点 选项,详情见 RPC 定价 和 支持的 RPC 网络。

常见问题

所有 Solana RPC 提供商都以相同方式限流吗? 不。大多数将 RPS 上限与加权方法成本和连接限制结合,但确切的模型和触发限流的点不同。比较故障行为,而不仅仅是标题数字。

更高的使用层级总是正确的解决方案吗? 只有当你的工作负载适合共享模型时才是。如果你运行持续的重流量或频繁的账户扫描,专用容量通常比升级层级更合适。

我如何知道我触发了哪个限制? 看症状。所有调用立即出错通常意味着 RPS 上限。仅重型方法出错指向计算预算或按方法限制。无错误的延迟增长表明软限流或共享争用。

我能完全避免速率限制吗? 没有端点是无限制的。你可以通过批量处理、缓存、使用 WebSocket 订阅和分离工作负载来减少触发限制的频率,并且你可以通过专用基础设施提高上限。

OnFinality 支持 Solana WebSocket 吗? 是的。Solana 端点支持 HTTP 和 WebSocket 传输。当前端点详情见 Solana 网络页面,计划选项见 RPC 定价。

下一步

如果你仍在比较提供商,从本页顶部的工作负载问题开始,将你的答案映射到层级。如果你的流量是持续的或方法繁重的,评估 专用节点 容量,而不是追求更高的共享层级。有关端点详情、计划选项和完整网络列表,请参阅 Solana RPC、RPC 定价 和 支持的 RPC 网络。

RPC 知识库

相关 RPC 内容

区块链基础设施Bittensor

2025年Bittensor TAO挖矿:子网经济、节点设置和RPC要求

2025年的Bittensor挖矿不再是一个单一网络的活动。矿工和验证者需要在各个子网内竞争,每个子网都有自己的激励机制、模型类型和注册成本,因此实际问题是哪个子网能让你盈利,以及该子网需要什么样的基础设施。本文详细介绍了关键决策:选择子网、确定硬件规模、注册热键和冷键,以及如何将你的矿工进程可靠地...

测试网 RPCBitcoin

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

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

网络 RPCAleph Zero

Aleph Zero RPC:端点、设置与提供商选择

本指南涵盖 Aleph Zero 主网和测试网的 RPC 端点、如何连接您的 dApp 或钱包,以及选择 RPC 提供商的关键标准。无论您是在 EVM 层还是原生 Substrate 链上部署,您都将找到实用的端点参考、配置示例以及评估可靠性、延迟和定价的决策清单。...

RPC 提供商选择TON

什么是专用 TON 节点,何时应该使用?

专用 TON 节点是专为您的项目部署的全节点或归档节点,为您提供具有隔离计算资源的私有 RPC 端点。本文解释了共享节点和专用节点之间的区别、何时选择专用设置,以及如何评估生产工作负载的提供商。...

网络 RPCSolana

什么是 Solana 的 RPC?如何选择合适的端点?

Solana RPC 端点让您的 dApp 读取链上状态、提交交易并订阅实时更新。本指南解释 Solana RPC 如何工作、如何连接公共和专用端点,以及在生产环境选择基础设施时应评估哪些因素。...

网络 RPCpeaq

什么是 peaq 网络 RPC?如何连接?

peaq 网络 RPC 是您的应用程序与 peaq 区块链之间的 API 网关,peaq 是一个兼容 EVM 的 Layer-1,专为 DePIN 和机器经济而设计。本参考涵盖链 ID 3338、PEAQ 代币详情、公共端点、JSON-RPC 测试以及生产前需要关注的提供商标准。 公共 peaq R...

永远不用担心基础设施

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

开始