摘要
Solana RPC 定价通常按三个维度计费:请求量、计算单元(CU)消耗和专用基础设施。大多数提供商提供免费、按量付费和承诺或专用层级,但对生产应用真正重要的限制隐藏在 CU 上限、速率限制以及归档或 WebSocket 访问中。本文详细解析这些层级是如何构成的、每个层级适合什么场景,以及如何在不只依赖标价的情况下进行比较。
Solana RPC 定价在落地页上看起来很简单——一个免费层级、一个月度计划和一个“联系我们”按钮——但决定你账单的数字通常隐藏在计算单元(CU)核算、按方法乘数和速率限制中。如果你正在为生产应用比较提供商,层级名称远不如该层级实际计量什么重要。
本页解释 Solana RPC 定价层级通常如何构成、每个层级实际适合什么,以及在你承诺之前应该问哪些问题。它是为需要将工作负载映射到计划的开发者和基础设施采购者编写的,而不仅仅是阅读价格表。
快速推荐:哪个层级适合你的工作负载
在比较供应商之前,先对你的工作负载进行分类。Solana RPC 定价不是线性的,同一个计划对一个应用可能便宜,对另一个应用可能昂贵。
| 工作负载概况 | 典型请求形态 | 通常适合的层级 |
|---|---|---|
| 原型设计、黑客松、本地开发 | 低量、混合方法、无 SLA | 免费或公共端点 |
| 早期生产、中等流量 | 稳定读取、部分 getProgramAccounts、偶尔 WebSocket | 按量付费或入门承诺计划 |
| 高流量 dApp 或索引器 | 大量 getProgramAccounts、getSignaturesForAddress、日志订阅 | 有 CU 余量的承诺计划,或专用节点 |
| 交易、MEV 或延迟敏感机器人 | 突发写入、sendTransaction、严格的 p99 | 带私有端点的专用节点 |
| 分析和回填 | 归档读取、大量历史扫描 | 带归档访问的专用节点 |
如果你不确定,从按量计费计划开始,按方法记录你的 CU 使用情况,只有在能够预测每月消耗后才转向承诺或专用层级。OnFinality 在 RPC 定价页面 上公布了其 RPC 计划结构,Solana 网络页面 涵盖了端点和传输细节。
Solana RPC 提供商实际计量什么
几乎每个 Solana RPC 提供商都根据以下某些组合定价。了解哪一个主导你的工作负载,就能知道你需要哪个层级。
请求数。 最简单的指标:每月 JSON-RPC 调用次数。对于 getSlot 和 getLatestBlockhash 来说便宜,但对于重型方法具有误导性。
计算单元(CU)。 Solana 为每个 RPC 方法分配 CU 成本,许多提供商将其乘以按方法权重。一次 getProgramAccounts 调用可能比 getBalance 贵几个数量级。如果提供商宣传“无限请求”但计量 CU,你的实际上限是 CU,而不是请求数。
带宽和响应大小。 大型账户扫描和日志流返回大负载。一些提供商限制出口流量或将字节数计入 CU 计算。
并发和速率限制。 每秒请求数(RPS)或并发连接数。这通常是流量高峰期间真正的约束,即使每月流量看起来没问题。
功能访问。 归档数据、带过滤器的 getProgramAccounts、WebSocket 订阅和优先费用 API 通常被限制在更高层级。
当你阅读定价页面时,将每个要点翻译成这五个类别之一。如果提供商没有说明 CU 如何计算,在承诺之前先询问。
你会看到的四个层级及其用途
免费和公共层级
免费层级的存在是为了让你开始构建。它们通常包括每日或每月请求上限、严格的速率限制,并且不保证可用性。公共端点——包括 OnFinality 公共 Solana 端点——对于钱包、脚本和测试网工作来说没问题,但它们是共享的,并非为持续的生产流量设计。
使用免费层级来验证集成,而不是服务用户。
按量付费层级
按量计费计划按请求或按 CU 计费,没有每月承诺。它们是早期生产的正确默认选择,因为它们可以吸收不可预测的增长而无需合同。代价是单价高于承诺计划,并且在突发期间仍可能触及速率限制。
承诺或订阅层级
这些计划以较低的单价捆绑每月 CU 或请求额度,有时带有超额定价。它们适合流量可预测的应用。风险是过度配置:如果你购买 5 亿 CU 但只使用 1.2 亿,你就为不需要的余量付费了。只有在至少有一个完整的按量计费数据月之后才购买承诺层级。
专用节点层级
专用基础设施为你提供一个不与其他客户共享的节点(或集群)。定价通常是每个节点固定的月费,有时带有归档、更高 RPS 或额外区域的附加项。这是交易系统、索引器和高吞吐量 dApp 汇聚的层级,因为它消除了吵闹邻居效应并提供了可预测的延迟。OnFinality 的 专用节点 产品遵循此模式。
如何比较两个 Solana RPC 报价
标价在不同提供商之间不可比较,因为计量方式不同。在决定之前先进行标准化。
| 需要标准化的内容 | 为什么它会改变答案 |
|---|---|
| 每个方法的 CU | 一个对 getProgramAccounts 权重很高的提供商,对于同一个应用可能贵 10 倍 |
| 包含的 RPS 与突发 RPS | 月流量高但 RPS 低的计划会在高峰时限制你 |
| WebSocket 订阅限制 | 日志和账户订阅通常与 HTTP 分开限制 |
| 归档保留窗口 | 回填和分析需要历史 slot;并非所有层级都包含 |
| 超额费率 | 超出计划的成本是预算崩溃的地方 |
| 区域和故障转移 | 多区域访问可能是单独的行项目 |
一个实用的方法:取一周的生产流量,针对每个提供商的计量规则重放,然后比较得出的月度数字。这个数字是唯一值得比较的。
阅读 Solana RPC 定价页面而不被误导
一些模式反复出现。
- “无限请求”但有 CU 上限。 请求数无限;CU 预算不是。检查 CU 额度。
- 免费层级但 RPS 上限低。 适合开发,但对于有真实用户的钱包不可用。
- 专用定价按节点而非按请求报价。 与你的按量计费支出比较,而不是与另一个提供商的订阅层级比较。
- 附加项单独列出。 归档、追踪和额外区域是常见的追加销售。在比较总数之前加上它们。
如果提供商没有公布 CU 权重,将定价页面视为不完整,并要求方法级别的细分。
估算你的每月 Solana RPC 成本
你不需要完美的模型——你需要一个可辩护的模型。首先记录代表性期间的方法级调用次数。
# 示例:从一天的 RPC 访问日志中统计方法调用次数
# (根据你的设置调整日志路径和模式)
grep -o '"method":"[a-zA-Z]*"' rpc-access.log \
| sort | uniq -c | sort -rn | head -20
一旦你有了分布,应用每个提供商的 CU 权重并乘以他们的单价。然后加上固定成本:承诺计划费、专用节点费和任何附加项。总和就是你可比较的月度成本。
一个有用的合理性检查是分别计算每 1,000 次 getProgramAccounts 调用的成本和每 1,000 次 sendTransaction 调用的成本。这两个数字通常会揭示哪个提供商对你的应用实际上更便宜。
什么时候专用 Solana 节点比按量计费计划更便宜
按量计费计划看起来便宜,直到单个工作负载主导你的账单。两种情况会改变计算:
- 索引器和分析。 回填程序账户或扫描历史签名可能在一天内消耗一个月的 CU。带归档访问的专用节点通常更可预测。
- 交易和延迟敏感服务。 当 p99 延迟重要时,共享层级引入了你无法控制的方差。私有端点消除了这个变量。
如果其中任何一种描述了你的工作负载,在扩展按量计费计划之前先为专用节点定价。OnFinality 的 Solana RPC 和 专用节点 选项就是为这些情况设计的,RPC 定价页面 列出了计划结构。
连接到 Solana RPC 端点
无论你选择哪个层级,连接模式都是相同的。以下是对 Solana 端点的最小 JSON-RPC 调用:
curl https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getLatestBlockhash",
"params": [{"commitment": "confirmed"}]
}'
对于订阅,使用 WebSocket 端点:
const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");
ws.onopen = () => {
ws.send(JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "logsSubscribe",
params: [{ mentions: ["<PROGRAM_ID>"] }, { commitment: "confirmed" }]
}));
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.method === "logsNotification") {
console.log(msg.params.result.value.signature);
}
};
当你转向付费或专用层级时,将公共 URL 替换为你的提供商发放的端点。保持传输方式(HTTP 与 WebSocket)与计划支持的一致。
告诉你需要更改层级的监控信号
不要等账单告诉你计划错了。关注这些信号:
- 429 响应。 你正在触及速率限制;要么提高层级,要么减少突发并发。
- 每请求 CU 上升。 新的代码路径(通常是
getProgramAccounts)正在推高成本。 - p95 延迟漂移。 共享层级在负载下降级;专用节点可以稳定它。
- 超额费用。 如果你连续两个月超出承诺额度,重新调整层级。
- WebSocket 断开连接。 订阅限制或空闲超时可能是原因。
在扩展之前就监控这些,而不是之后。
关键要点
- Solana RPC 定价层级通常由请求量、计算单元、速率限制和功能访问定义——而不是由层级名称定义。
- 免费和公共层级用于开发;按量计费计划适合早期生产;承诺计划适合可预测流量;专用节点适合高吞吐量、延迟敏感或归档密集型工作负载。
- 在比较价格之前,通过将真实流量重放到每个提供商的 CU 权重来标准化报价。
- 关注 429、每请求 CU、延迟漂移和超额费用,以决定何时更改层级。
- OnFinality 提供 Solana RPC 和专用节点选项;请参阅 RPC 定价 和 支持的 RPC 网络 了解当前详情。
常见问题
免费的 Solana RPC 层级足以用于生产吗? 通常不够。免费层级是共享的、速率受限的,并且缺乏可用性承诺。它们适合开发和低风险脚本。
为什么两个提供商对同一个应用报价差异很大? 因为他们计量方式不同。CU 权重、按方法乘数和速率限制各不相同,所以相同的流量可能花费非常不同的金额。
什么时候应该从按量计费计划转向专用节点?
当单个工作负载(归档扫描、getProgramAccounts 或延迟敏感交易)主导你的账单或延迟方差时,或者当你持续触及速率限制时。
我需要归档访问吗? 只有当你查询历史 slot、回填数据或运行分析时才需要。许多生产 dApp 不需要它;索引器和分析工具通常需要。
如何预测我的每月成本? 记录代表性期间的方法级调用次数,应用每个提供商的 CU 权重,乘以单价,然后加上固定计划和附加费用。