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

哪些 Solana RPC 提供商提供最佳的速率限制和用量层级?

摘要

速率限制和用量层级决定了在开始限流之前,您可以向 Solana RPC 端点发送多少每秒请求数(RPS)或计算单元。最佳选择取决于您的工作负载:轻量级 dApp 可以使用共享公共端点,而高频交易机器人、索引器和生产应用通常需要专用节点或具有可预测吞吐量的付费层级。

本文解释了 Solana RPC 提供商如何构建速率限制、在用量层级之间应比较哪些内容,以及如何根据您的请求特征评估 OnFinality 的共享 RPC API 或专用 Solana 节点等选项。

Solana 的高吞吐量设计意味着 RPC 提供商必须在请求量与节点资源之间取得平衡。与区块时间可预测的以太坊式链不同,Solana 大约每 400 毫秒产生一个区块,而单次 getProgramAccounts 调用可能返回数兆字节的数据。这使得速率限制和用量层级成为评估提供商时的首要考虑因素。

本文详细介绍了 Solana RPC 速率限制通常如何构建、在层级之间应比较哪些内容,以及如何将提供商与您的工作负载相匹配。本文面向需要可预测吞吐量而不必猜测隐藏上限的开发者和基础设施采购者。

快速建议:根据请求形态匹配层级

在比较提供商名称之前,先对您的工作负载进行分类。Solana 速率限制通常以每秒请求数(RPS)、每 10 秒请求数或每秒计算单元来表示。正确的层级更多取决于您的请求模式,而非品牌。

工作负载模式典型请求形态通常适合的层级
钱包 UI 或轻量级 dApp< 10 RPS,主要是 getBalance、getLatestBlockhash共享/公共 RPC 或入门付费层级
交易机器人或套利50–500+ RPS,延迟敏感,WebSocket 订阅专用节点或高吞吐量付费层级
索引器或分析突发性 getProgramAccounts、getSignaturesForAddress支持归档的专用节点,具有高 CU 预算
NFT 铸造或空投短时 sendTransaction 峰值支持突发且队列可见的层级
验证者工具稳定的 getSlot、getEpochInfo低成本共享层级通常足够

如果您的应用属于第一行或最后一行,像 OnFinality 的 Solana RPC API 这样的共享端点通常就足够了。如果您处于中间行,请计划使用专用节点或具有文档化限制的付费层级。

Solana RPC 速率限制的实际工作原理

提供商很少公布单一数字。相反,他们结合了多种机制:

  • 每秒请求数(RPS): 您每秒可以发起的 HTTP 调用数量的硬性上限。
  • 计算单元(CU): 一种加权预算,昂贵的方法成本更高。getProgramAccounts 可能花费 100 CU,而 getBalance 花费 1 CU。
  • 并发限制: 您的 API 密钥可以同时拥有的进行中请求数量。
  • WebSocket 订阅上限: 您可以同时订阅的账户或程序数量。
  • 突发允许量: 高于稳态限制的短期峰值,通常有冷却时间。

当您超过限制时,提供商通常会返回 HTTP 429 和 JSON-RPC 错误正文。一些提供商则静默丢弃 WebSocket 消息,这更难调试。

典型的 429 响应如下所示:

{
  "jsonrpc": "2.0",
  "error": {
    "code": -32429,
    "message": "Too many requests"
  },
  "id": 1
}

如果您在正常操作期间看到此错误,说明您的层级对于您的工作负载来说规模不足。

在用量层级之间应比较哪些内容

并非所有“无限”或“高吞吐量”层级都意味着相同的事情。当您阅读定价页面时,请提取以下细节:

  1. 限制单位: 上限是以 RPS、CU 还是两者兼有?一个 100 RPS 层级搭配 10,000 CU/s 预算的行为与一个没有 CU 加权的 100 RPS 层级非常不同。
  2. 方法限制: 某些层级排除了 getProgramAccounts、getSignaturesForAddress 或归档查询。请检查方法允许列表。
  3. WebSocket 支持: 如果您依赖 accountSubscribe 或 logsSubscribe,请确认该层级包含 WebSocket 以及允许的订阅数量。
  4. 突发行为: 提供商是否允许短期峰值,还是限制按秒强制执行且没有缓冲?
  5. 超额处理: 提供商是限流、对超额计费,还是将请求排队?排队会增加延迟;限流会导致错误。
  6. 密钥轮换和团队访问: 对于团队,请检查是否可以签发具有独立限制的多个 API 密钥。

用于提供商评估的实用对比表:

评估领域需要关注的内容为什么重要
速率限制单位文档化的 RPS + CU 加权防止在重型方法上出现意外限流
方法覆盖getProgramAccounts、归档、sendTransaction索引器和交易机器人依赖这些
WebSocket 限制订阅数量和消息速率没有这些,实时应用会静默失败
突发策略文档化的突发窗口铸造和空投峰值需要余量
超额行为限流 vs. 排队 vs. 计费影响错误处理和用户体验
专用选项迁移到私有节点的能力消除共享池争用

OnFinality 的 RPC 定价 页面列出了当前的层级结构,当共享限制不够时,可以使用 专用节点。

各提供商在速率限制和层级方面的说明

这不是排名。它总结了不同提供商模式如何处理速率限制,以便您提出正确的问题。

OnFinality 提供具有文档化用量层级的共享 Solana RPC API,以及通往专用 Solana 节点的路径。共享端点适用于开发和中等生产流量,而专用节点消除了共享池速率限制,并为您提供私有端点。OnFinality 还支持 Solana 上的 HTTP 和 WebSocket 传输,如果您使用订阅,这一点很重要。

公共/免费端点(包括 Solana 自己的公共 RPC)通常具有严格的速率限制、无 SLA 和无 WebSocket 保证。它们适合测试,但不适合生产流量。

基于信用定价的托管 RPC 提供商 通常按计算单元而非 RPS 计量。这对于轻量级工作负载可能更便宜,但对于调用昂贵方法的索引器来说更难预测。

专用节点提供商 向您出售私有节点,这实际上消除了共享速率限制,但将监控和扩展的责任转移给您或提供商的托管层。

交易所或钱包 RPC 端点 通常不适用于第三方应用,因此很少出现在提供商比较中。

在比较时,请要求每个提供商以书面形式提供其速率限制文档。如果提供商无法说明限制单位和超额行为,请将其视为风险。

在承诺之前测试速率限制

您可以通过简单的负载测试来测量有效速率限制。从低并发开始,逐渐增加,直到看到 429 或延迟上升。

# 针对 Solana RPC 端点的简单 RPS 探测
for i in $(seq 1 50); do
  curl -s -o /dev/null -w "%{http_code} %{time_total}\n" \
    -X POST https://solana.api.onfinality.io/public \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[]}'
done

针对您的候选端点运行此命令,并观察 HTTP 429 响应或延迟峰值。对于 WebSocket,请单独测试订阅限制:

// 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) => console.log(event.data);

如果您需要私有端点,请将 URL 替换为提供商仪表板中的专用节点 URL。

何时从共享迁移到专用

共享层级具有成本效益,直到争用或限制开始影响您的应用。在以下情况下考虑使用专用 Solana 节点:

  • 您在高峰流量期间持续遇到 429。
  • 您需要归档数据或大量 getProgramAccounts。
  • 您需要为交易或清算逻辑提供可预测的延迟。
  • 您希望隔离的 WebSocket 订阅,没有共享池噪音。
  • 您需要运行自定义插件或特定的 Solana 客户端版本。

OnFinality 的 专用节点 选项提供具有可配置资源的私有 Solana 端点。对于希望使用托管基础设施而不运行验证者的团队,这通常是共享 RPC 和自托管之间的中间地带。

Solana RPC 层级的操作检查清单

一旦您选择了层级,请实施以下实践:

  • 监控 429: 记录每个速率限制响应的方法名称和时间戳。
  • 积极缓存: getLatestBlockhash、getEpochInfo 和代币元数据变化缓慢;请缓存它们。
  • 批量请求: JSON-RPC 批量调用减少 HTTP 开销,但仍计入 CU 限制。
  • 使用 WebSocket 进行订阅: 在循环中轮询 getAccountInfo 是达到限制的最快方式。
  • 设置客户端超时和重试: 对 429 进行指数退避比立即重试更安全。
  • 监控每个方法的 CU: 如果您的提供商暴露指标,请跟踪哪些方法消耗最多预算。
  • 规划故障转移: 配置辅助端点,以防主端点被限流或降级。

有关更广泛的提供商选择框架,请参阅 如何选择 RPC 提供商。

关键要点

  • Solana RPC 速率限制通常是 RPS、计算单元、并发和 WebSocket 订阅上限的混合。
  • 最佳层级取决于您的请求形态,而不仅仅是您的月流量。
  • 像 OnFinality 的 Solana RPC API 这样的共享端点适合轻量级 dApp 和开发;专用节点适合高吞吐量或延迟敏感的工作负载。
  • 始终要求提供商提供书面的速率限制文档,包括超额行为。
  • 在承诺层级之前,使用负载探测测试限制。
  • 缓存、批量处理并使用 WebSocket 订阅以保持在限制范围内。

常见问题

所有 Solana RPC 提供商都使用相同的速率限制单位吗? 不。有些使用每秒请求数,有些使用计算单元,还有些两者结合。在比较层级之前,请始终确认单位。

免费的 Solana RPC 端点足以用于生产吗? 免费和公共端点通常有严格的限制且没有 SLA。它们适合测试,但对生产流量有风险。

如何知道是否需要专用 Solana 节点? 如果您持续遇到 429、需要大量归档或 getProgramAccounts,或需要可预测的延迟,那么专用节点是下一步。

我可以在共享层级上使用 WebSocket 订阅吗? 许多提供商在共享层级上支持 WebSocket,但会限制订阅数量。在构建实时功能之前,请检查限制。

当我超过用量层级时会发生什么? 行为各不相同:一些提供商通过 429 限流,一些将请求排队,还有一些对超额计费。在承诺之前请确认这一点。

OnFinality 是否提供 Solana WebSocket 端点? 是的,OnFinality 支持 Solana 的 HTTP 和 WebSocket 传输。有关端点详细信息,请参阅 Solana 网络页面。

有关当前的层级选项,请访问 RPC 定价,并浏览 支持的 RPC 网络 以了解 Solana 在您的多链设置中的位置。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

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

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

RPC 故障排查Solana

为什么我的 Python Solana JSON-RPC 调用返回 429 Too Many Requests?

来自 Solana JSON-RPC 端点的 429 意味着提供方正在限制你的请求速率,而不是你的 JSON 负载格式错误。Python 客户端最常遇到这种情况是在紧密循环中轮询、批量请求过于激进,或者多个工作进程共享一个公共端点时。解决方法通常是结合客户端退避、请求整形,以及迁移到容量与你的工作负...

网络 RPCSolana

Solana RPC 节点:端点、方法与工作负载匹配

Solana RPC 节点暴露了您的应用用于读取账户、提交交易以及订阅 slot 或账户变化的 JSON-RPC 接口。本页面涵盖了端点形态、实践中最关键的方法,以及随着工作负载增长如何在共享公共 RPC 和专用节点之间做出选择。 您将获得一个可连接的端点示例、工作负载与设置对照表、常见故障的调试路...

区块链基础设施

什么是 dOrg,它是如何运作的?

dOrg 是一个去中心化自治组织(DAO),由资深 Web3 开发者和构建者组成。它为协议、DeFi 项目和机构提供区块链和 AI 开发服务,作为团队扩展或按里程碑付费的承包商,而非传统代理机构。 对于评估 dOrg 的开发者来说,了解其结构、合作模式以及它与内部招聘或其他服务提供商的比较是关键。本...

网络 RPCSolana

solana.io:开发者连接 Solana 真正需要什么

solana.io 并不是你需要的 Solana RPC 端点或开发者门户。Solana 网络通过 JSON-RPC 端点访问,实际问题是你的应用应该指向哪个端点。本文解释了域名混淆,展示了真实的 Solana mainnet RPC 和 WebSocket URL,并帮助你决定是使用公共端点还是专...

RPC 提供商选择

共享与专用 Solana RPC 节点的成本差异是什么?

共享 Solana RPC 节点按使用量计费——根据请求量、计算单元或数据传输——对于开发和低至中等流量来说成本效益高。专用 Solana RPC 节点有较高的固定月费,但提供可预测的性能、资源隔离和无速率限制争用。正确的选择取决于你的应用程序的流量模式、延迟要求和预算。...

永远不用担心基础设施

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

开始