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

Solana RPC 提供商在速率限制和使用层级方面如何比较?

摘要

通过速率限制、使用层级和请求类型来比较 Solana RPC 提供商。了解在选择提供商之前需要检查什么,以及如何将你的工作负载与合适的计划相匹配。

Solana 应用程序依赖 RPC 提供商来完成从读取账户状态到提交交易的所有操作。当你比较提供商时,速率限制和使用层级往往比原始延迟或正常运行时间更重要。一个在纸面上看起来慷慨的计划,如果限制是按每秒请求数而不是计算单元来衡量的,或者如果像 getProgramAccounts 这样的重方法计入单独的配额,那么它仍然可能限制你的工作负载。

本文介绍了你将遇到的速率限制模型、提供商发布的使用层级,以及在你做出承诺之前要问的问题。目标是帮助你根据流量特征选择合适的提供商计划,而不是猜测。

决策指南:将你的工作负载与提供商层级匹配

在比较价格表之前,先定义你的工作负载。Solana RPC 流量并不统一。一个简单的 NFT 铸造网站、一个 DEX 聚合器和一个验证器监控机器人对端点的需求截然不同。

工作负载典型请求模式最需要关注的点
轻量 dApp(读取余额、偶尔交易)低 QPS、突发性免费层级或低成本共享计划
交易机器人或做市商高 QPS、低延迟、WebSocket 订阅专用节点、高速率限制、低延迟
数据索引器或分析大量 getProgramAccounts、getSignaturesForAddress计算单元限制、归档数据、专用容量
NFT 市场混合读写、偶尔峰值可预测的速率限制、突发处理

一旦你了解了你的工作负载,向每个提供商提出三个问题:

  1. 速率限制是多少? 是每秒、每分钟还是每天的请求数?是按 IP 还是按 API 密钥?
  2. 限制是如何执行的? HTTP 和 WebSocket 是否有单独的限制?重方法是否计费更多?
  3. 超过限制时会发生什么? 你会收到 HTTP 429 响应、连接被断开,还是被静默限流?

对于生产应用程序,你需要对这三个问题都有清晰的答案。如果提供商无法解释其速率限制模型,那是一个危险信号。

Solana RPC 提供商如何构建速率限制

大多数提供商使用以下三种模型之一:

  • 每秒请求数(RPS):对每秒请求数的简单上限。易于理解,但未考虑每个请求的成本。
  • 计算单元(CU):每个方法根据处理成本有一个权重。getBalance 可能花费 1 CU,而 getProgramAccounts 可能花费 100 CU。你的限制是每秒或每天 CU 预算。
  • 每日请求配额:每天请求总数,通常与每秒突发限制结合。

Solana 的 RPC 方法成本差异很大。getLatestBlockhash 很便宜,但带有大数据切片的 getProgramAccounts 可能对节点来说很昂贵。使用基于 CU 限制的提供商能更好地保护其基础设施,但开发者可能更难预测。

WebSocket 订阅通常单独限制。一些提供商限制并发连接数,而另一些则限制每个连接的订阅数。如果你的应用依赖实时更新,请仔细检查这些限制。

使用层级:提供商通常提供什么

大多数 Solana RPC 提供商提供免费层级和多个付费层级。免费层级通常足以用于开发和小型项目,但通常有严格的限制,使其不适合生产环境。

常见的层级结构包括:

  • 免费层级:低 RPS(例如 5-10)、每日请求有限、无 WebSocket 或归档访问。
  • 按量付费:按使用量付费,每百万请求有基本费率。适合流量波动的情况。
  • 月度订阅:每月固定请求数的固定价格,超出部分额外收费。对于稳定流量可预测。
  • 专用节点:你获得一个私有端点,没有共享速率限制。该节点专用于你的流量,因此你可以维持高吞吐量而不会遇到共享限制。

OnFinality 同时提供共享 RPC 访问和专用节点。共享服务为开发提供公共端点,而专用节点为你提供具有自己容量的私有端点。对于持续流量的生产工作负载,专用节点通常是正确的选择。

评估提供商时要比较什么

当你比较 Solana RPC 提供商时,不要只看标题速率限制。考虑以下因素:

请求类型和方法成本

一些提供商对所有方法一视同仁,而另一些则对昂贵方法加权。如果你的应用大量使用 getProgramAccounts,那么对其加权的提供商可能比不加权的更昂贵。索取方法权重列表或成本计算器。

WebSocket 支持

Solana 应用通常使用 WebSocket 订阅进行实时账户更新。检查提供商是否支持 WebSocket、你可以拥有多少并发连接,以及订阅是否计入速率限制。

归档数据和历史访问

如果你需要历史状态或交易,你需要一个归档节点。并非所有提供商都提供归档数据,即使提供也可能收取额外费用。检查归档是完整还是部分,以及可以追溯多远。

地理分布

延迟对于交易和其他时间敏感的应用很重要。在多个区域拥有端点的提供商可以通过从附近位置提供请求来减少延迟。检查提供商的节点位于何处,以及你是否可以选择区域。

故障转移和冗余

如果提供商的端点宕机,你能故障转移到另一个提供商吗?一些提供商提供多个端点或自动故障转移。对于生产应用,单点故障是有风险的。

速率限制错误及如何处理

当你超过速率限制时,通常会看到 HTTP 429 响应。响应可能包含 Retry-After 头,指示等待多长时间。你的客户端应通过退避和重试来优雅地处理此问题。

以下是在 JavaScript 中处理速率限制的简单示例:

async function rpcCall(url, body, retries = 3) {
  for (let i = 0; i < retries; i++) {
    const response = await fetch(url, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(body)
    });
    if (response.status === 429) {
      const retryAfter = response.headers.get('Retry-After') || 1;
      await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
      continue;
    }
    return response.json();
  }
  throw new Error('Rate limit exceeded after retries');
}

对于 WebSocket 连接,速率限制可能表现为连接断开或消息丢失。实现具有指数退避的重连逻辑。

将 OnFinality 与其他 Solana RPC 提供商进行比较

OnFinality 通过共享和专用选项提供 Solana RPC 访问。共享端点适用于开发和轻度生产使用,而专用节点为高吞吐量工作负载提供专用容量。

提供商速率限制模型免费层级专用节点WebSocket归档
OnFinality共享端点按秒和按天限制;专用节点无共享限制是是是是(专用节点)
提供商 A基于 RPS是是是额外费用
提供商 B基于 CU是否有限否
提供商 C每日配额是是是是

此表仅供说明。请务必查看提供商当前文档以获取确切限制和定价。OnFinality 的 RPC 定价 页面列出了当前计划,支持的网络 页面显示了哪些网络可用。

迁移清单:切换 Solana RPC 提供商

如果你要切换提供商,请遵循此清单以避免停机:

  1. 审计当前使用情况:测量一周内的 RPS、每日请求和 WebSocket 连接。
  2. 识别重方法:使用日志查看哪些方法消耗了大部分请求。
  3. 测试新提供商:对新端点运行负载测试,以验证其能处理你的流量。
  4. 更新配置:更改应用中的 RPC URL。例如,在 Solana web3.js 连接中:
import { Connection } from '@solana/web3.js';

const connection = new Connection('https://solana.api.onfinality.io/public', {
  wsEndpoint: 'wss://solana.api.onfinality.io/public-ws',
  commitment: 'confirmed'
});
  1. 监控错误:在过渡期间注意 429 响应和 WebSocket 断开。
  2. 保留旧提供商作为后备:在应用中配置故障转移,以便在新提供商出现问题时切换。

关键要点

  • 速率限制因提供商而异,可能基于每秒请求数、计算单元或每日配额。
  • 将工作负载与层级匹配:轻量应用可以使用免费层级,但生产应用需要可预测的限制。
  • WebSocket 和归档访问通常单独限制;在承诺之前检查这些限制。
  • OnFinality 提供共享和专用 Solana RPC 选项,具有用于开发的公共端点和用于高吞吐量工作负载的专用节点。
  • 在切换之前,始终使用实际流量模式测试新提供商。

常见问题解答

Solana RPC 的典型免费层级速率限制是多少?

免费层级通常允许每秒 5-10 个请求和有限的每日请求数。它们适用于开发,但不适用于生产流量。

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

如果你在共享计划上持续达到速率限制,或者你需要低延迟和高吞吐量用于交易或索引,专用节点可提供专用容量,而不会受到共享限流。

OnFinality 是否支持 Solana 的 WebSocket?

是的,OnFinality 为 Solana 提供 WebSocket 端点。查看 Solana 网络页面 获取最新详细信息。

我可以将 OnFinality 的公共 Solana 端点用于生产吗?

公共端点是共享的且有限速,因此最适合开发和测试。对于生产,请考虑专用节点或具有更高限制的付费共享计划。

如果我收到 HTTP 429 错误,该怎么办?

实现具有指数退避的重试逻辑,并遵守 Retry-After 头。如果你持续达到限制,请升级计划或迁移到专用节点。

RPC 知识库

相关 RPC 内容

网络 RPCTON

什么是 TON RPC,如何使用它?

# 什么是 TON RPC,如何使用它? TON(The Open Network)是一个为高可扩展性和与 Telegram 深度集成而设计的 layer-1 区块链。与 EVM 链不同,TON 采用独特的分片和异步智能合约架构。要从 Web 应用程序与 TON 交互,需要一个 RPC(远程过程调用...

网络 RPCHydraDX

什么是 HydraDX,如何通过 RPC 连接到它?

# 什么是 HydraDX,如何通过 RPC 连接到它? HydraDX(现已更名为 Hydration)是一个构建在 Polkadot 上的下一代 DeFi 协议,作为平行链运行。其旗舰产品是 Omnipool,一种创新的自动做市商(AMM),将所有资产整合到一个单一交易池中,从而实现资本高效的兑...

网络 RPCKaia

Kaia RPC:端点、提供商和最佳实践

本指南涵盖您需要了解的关于Kaia RPC端点的所有内容——从公共JSON-RPC URL到为生产环境选择可靠的提供商。了解如何连接到Kaia主网和Kairos测试网,评估RPC服务,并避免常见陷阱。...

网络 RPCpeaq

Peaq RPC Endpoint: Chain Settings, Faucet, and Debugging

Find the official Peaq RPC endpoint, chain ID, native currency, and step-by-step setup for EVM-compatible wallets. Learn how to use the Peaq faucet, c...

区块链基础设施Polkadot

Polkadot 验证者:自建 vs. 购买 – 运行节点 vs. 使用 RPC 提供商

Polkadot 验证者通过质押 DOT、验证平行链区块并参与共识来保护中继链。运行验证者需要大量的硬件、管理和质押保证金。对于许多开发者和 dApp 运营者而言,使用托管的 RPC 提供商可以消除运营负担,同时间接支持网络。...

网络 RPCSolana

Solana RPC 端点:如何连接、配置和调试

Solana RPC 端点是您的 dApp 或验证器用来向 Solana 网络发送 JSON-RPC 请求的 URL。本页介绍主网和开发网端点、如何在代码中配置它们,以及如何调试常见的连接问题。对于生产环境的工作负载,OnFinality 提供的托管或专用 RPC 端点可提供可靠性和可扩展性。...

永远不用担心基础设施

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

开始