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

顶级 Solana RPC 提供商的速率限制选项如何比较?

摘要

Solana RPC 提供商在实施速率限制方面有所不同:有些按 IP 限制每秒请求数,有些按计算单元或积分计量,高级套餐提供更高吞吐量或专用节点。本文比较了主要提供商的速率限制模型,并帮助您为工作负载选择合适的方案。

快速建议:将速率限制与您的工作负载匹配

在比较提供商之前,先确定您的应用实际需要什么。轻量级 NFT 行情器可以在共享 RPC 上运行,只需适度的请求上限。高频交易机器人或重放历史数据的 Solana 索引器会很快耗尽共享限制,可能需要专用节点或基于计算单元计量的套餐。

问三个问题:

  1. 您的请求模式是什么?getLatestBlockhashsendTransaction 的突发调用需要高于平均 RPS 的余量。
  2. 您是否使用 WebSocket 订阅? 许多提供商单独计算每个订阅,并限制并发连接数。
  3. 您是否需要历史数据?getSignaturesForAddressgetTransaction 这样的方法开销较大;提供商可能会更严格地计量它们。

如果您预期持续负载或需要可预测的性能,请尽早评估专用节点选项。OnFinality 提供具有隔离容量的 专用 Solana 节点,其 RPC 定价 页面列出了共享和专用套餐。有关提供商选择标准的更广泛视图,请参阅 如何选择 RPC 提供商

为什么速率限制在 Solana 上很重要

Solana 专为高吞吐量而设计,但该吞吐量取决于您使用的 RPC 端点。单个共享端点可能被少数重度消费者淹没,从而降低每个人的延迟。速率限制保护提供商的基础设施并确保公平使用,但它们也直接影响您应用程序的可靠性。

与以太坊(通常采用简单的每秒请求数上限)不同,Solana RPC 提供商通常使用更细粒度的计量。有些对每个 JSON-RPC 调用一视同仁,而另一些则根据计算负载为每个方法分配成本。这意味着允许 100 RPS 的套餐如果您发送许多 getTransaction 请求(远比 getSlot 昂贵),仍然可能限制您。

Solana RPC 提供商使用的速率限制模型

提供商通常分为三类:

1. 每秒请求数(RPS)上限

最简单的模型:您被允许每秒固定数量的请求,通常按 IP 地址计算。免费套餐可能允许 10-50 RPS,而付费套餐可扩展到数百或数千。此模型易于理解,但对于成本差异很大的方法可能不公平。

2. 计算单元或基于积分的计量

一些提供商为每个 RPC 方法分配成本,类似于 Solana 自身的计算限制。简单的 getHealth 调用可能花费 1 个积分,而响应较大的 getTransaction 可能花费 10 或更多。您的套餐包含每月积分配额,当您用完时会受到限制。此模型将定价与实际服务器负载对齐,但要求您更仔细地估算使用量。

3. WebSocket 的并发连接限制

WebSocket 订阅对于实时更新至关重要,但它们保持持久连接。提供商通常限制并发 WebSocket 连接数,有些还限制每个连接的订阅数。如果您需要监控许多账户,此限制可能成为瓶颈。

比较顶级 Solana RPC 提供商

下表总结了主要提供商的速率限制方法。请始终查看提供商的最新文档,因为套餐经常变化。

提供商速率限制模型免费套餐WebSocket 限制专用选项
OnFinality基于 RPS 的分层套餐是,按套餐是,隔离节点
提供商 ARPS + 计算单元是,较低上限
提供商 B基于积分是,按订阅
提供商 C仅 RPS

OnFinality 提供具有明确 RPS 限制的共享 RPC 端点,以及完全消除共享节流的专用节点。其 Solana 网络页面 列出了用于测试的公共端点和 WebSocket URL。

提供商 A 使用混合模型:基本 RPS 上限加上对昂贵方法的计算单元计量。这对轻度用户来说可能具有成本效益,但如果您依赖 getSignaturesForAddress,可能会让您感到意外。

提供商 B 因其积分系统而广受欢迎,该系统为您提供每月配额。对于稳定的工作负载,它是可预测的,但对于突发流量可能难以调整。

提供商 C 仅提供简单的 RPS 上限,并且缺乏 WebSocket 支持,使其不适合实时应用程序。

如何评估适合您用例的速率限制

在比较套餐时,请超越表面的 RPS 数字。考虑:

  • 方法成本:提供商是否更严格地计量 getTransactiongetSignaturesForAddress?如果是,请将其纳入容量规划。
  • 突发余量:一些提供商允许高于平均 RPS 的短突发,而另一些则在上限处硬性节流。如果您的应用有峰值,突发余量很有价值。
  • 基于 IP 与基于密钥的限制:如果您运行多个后端服务器,基于 IP 的限制可能有问题。与 API 密钥关联的基于密钥的限制更易于管理。
  • WebSocket 订阅上限:计算您需要并发订阅的数量,并验证提供商支持该数量。
  • 存档数据访问:如果您需要历史数据,请检查提供商是否提供存档节点,以及这些请求是否计入相同的限制。

在承诺之前测试速率限制

您可以使用简单的脚本测量提供商的速率限制行为。以下示例发送一批 getSlot 请求,并报告在达到限制之前有多少成功。

for i in $(seq 1 200); do
  curl -s -o /dev/null -w "%{http_code}\n" \
    -X POST https://solana.api.onfinality.io/public \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
done | sort | uniq -c

如果您看到 HTTP 429 响应,则您已触发速率限制。确切阈值将取决于提供商和套餐。对于生产测试,请使用您的 API 密钥和真实的方法组合。

WebSocket 速率限制及其处理方法

WebSocket 连接通常与 HTTP 请求分开限制。常见限制是每个 API 密钥 10-50 个并发连接。如果您需要更多,可能需要专用节点。

为了减少连接数,您可以使用带有过滤器的单个订阅,而不是单独订阅每个账户。例如,使用 programSubscribe 监控程序的所有账户,而不是订阅每个地址。

以下是一个 Node.js 片段,它打开到 OnFinality 公共端点的 WebSocket 连接并订阅时隙更新:

const WebSocket = require('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) => {
  console.log(data.toString());
});

请记住,每个订阅都会消耗连接限制中的一个槽位。监控您的使用情况以避免意外断开。

何时选择专用 Solana 节点

共享 RPC 端点对于开发和低流量应用程序具有成本效益,但它们有固有限制。如果您遇到以下任何情况,请考虑专用节点:

  • 您经常遇到 HTTP 429 或 WebSocket 断开。
  • 您的应用程序需要一致的低延迟,例如交易或游戏。
  • 您需要运行重型分析或索引大量历史数据。
  • 您希望避免可能降低共享端点性能的嘈杂邻居。

OnFinality 的 专用节点服务 提供具有专用资源的 Solana 节点,让您完全控制速率限制和性能。您还可以使用它访问存档数据或运行自定义配置。

常见速率限制错误及其调试方法

当您超过速率限制时,通常会看到以下响应之一:

  • HTTP 429 Too Many Requests:提供商正在限制您的请求。检查您当前的使用情况与套餐限制。
  • JSON-RPC 错误 -32005:这是 Solana 特定的错误,表示您已超过节点的速率限制。它通常包含 retryAfter 字段。
  • WebSocket 关闭代码 1008:服务器因策略违规而关闭连接,通常是因为您超过了订阅限制。

要调试,请在 RPC 客户端中添加日志记录以捕获响应头和错误代码。许多提供商包含诸如 x-ratelimit-remaining 之类的头,帮助您跟踪使用情况。

关键要点

  • 速率限制模型各不相同:RPS 上限、计算单元计量和 WebSocket 连接限制是最常见的。
  • 将提供商的模型与您的工作负载匹配:突发型应用需要余量,重型分析需要存档访问,实时应用需要 WebSocket 容量。
  • 在承诺套餐之前,始终使用真实的请求组合测试速率限制。
  • 专用节点消除共享节流,并为要求苛刻的应用程序提供可预测的性能。
  • 查看每个提供商的最新文档,因为限制和定价经常变化。

常见问题解答

Solana RPC 提供商的典型免费套餐速率限制是多少?

免费套餐通常允许每秒 10 到 50 个请求,WebSocket 连接限制较低。一些提供商还限制每日请求数。这些限制足以用于开发和轻度测试,但不适用于生产流量。

如何知道我是否需要专用 Solana 节点?

如果您持续达到速率限制,需要低延迟用于时间敏感的应用程序,或需要存档数据访问,那么专用节点值得投资。它提供隔离资源并消除共享端点的可变性。

我可以在多台服务器上使用同一个 API 密钥吗?

大多数提供商允许这样做,但速率限制可能按 IP 地址或按密钥应用。如果您有多台服务器,请检查提供商是汇总使用量还是按 IP 应用限制。在分布式设置中,基于密钥的限制更易于管理。

WebSocket 订阅是否与 HTTP 请求计入相同的速率限制?

通常不会。提供商通常对 WebSocket 连接和订阅有单独的限制。您应该监控两者以避免意外节流。

如何监控我的 RPC 使用情况?

许多提供商提供仪表板,您可以在其中查看请求计数、错误率和当前限制。您还可以添加客户端日志记录以跟踪响应代码和头。对于全面的方法,请考虑使用监控服务来跟踪 RPC 健康和延迟。

有关 Solana RPC 端点和套餐的更多详细信息,请访问 Solana 网络页面RPC 定价页面

RPC 知识库

相关 RPC 内容

RPC 提供商选择

即用即付区块链节点如何运作,何时应该使用它们?

即用即付区块链节点是按实际使用量计费而非固定月费的托管 RPC 端点。这种模式适合流量不均衡、多链实验或早期阶段产品的团队,因为它能使基础设施成本与需求保持一致。 在采用按使用量计费的计划之前,请将速率限制、超额定价、WebSocket 支持和归档数据访问与您的预期工作负载进行比较。使用真实流量样本...

RPC 提供商选择TON

TON RPC Provider Comparison: What to Check Before Going to Production

Choosing the right TON RPC provider is critical for dApps, Telegram Mini Apps, and payment flows. This guide breaks down the key evaluation criteria—l...

网络 RPCPichiu

How to Connect to Pichiu Network RPC for Oracle Data

Pichiu Network provides decentralized oracle services on Kusama. This article explains how developers can integrate with Pichiu using RPC endpoints, c...

网络 RPCKusamaAsset Hub

什么是Kusama Asset Hub以及如何连接?

# 什么是Kusama Asset Hub以及如何连接? Kusama Asset Hub(原名Statemine)是Kusama网络上的一个公益平行链,支持同质化和非同质化资产的发行与转移。它也是持有和转移KSM代币的低成本链。经过最近的运行时升级,Asset Hub现在支持智能合约,并承载了以前...

RPC 提供商选择

Dwellir 与其他 RPC 提供商:应比较什么?

Dwellir 是一个多链 RPC 基础设施提供商,宣称可访问超过 150 个区块链网络。开发者在比较 API 提供商或为 Ethereum、Polkadot、Base 等链寻找可靠的 HTTPS 和 WebSocket 端点时,通常会搜索到它。本页面可帮助你根据真实生产需求评估 Dwellir 的...

网络 RPCSolana

什么是 JSON RPC Solana,如何使用它?

Solana 的 JSON-RPC API 是应用程序与网络交互的标准方式——查询账户、提交交易以及订阅实时更新。本文解释了核心方法、如何连接到端点,以及在 Solana 上构建时需避免的常见陷阱。...

永远不用担心基础设施

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

开始