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

你能推荐一个适合初创公司预算且保持生产就绪的 Solana RPC 提供商吗?

摘要

可以。对于大多数早期团队来说,实用的答案是:从包含 WebSocket 支持和可预测请求定价的共享或按需付费 Solana RPC 方案开始,然后仅当你能测量瓶颈时,才将特定的高流量工作负载迁移到专用节点。OnFinality 提供 Solana RPC API 访问和专用节点选项,因此你可以随着使用量的增长扩展相同的端点设置。

预算很少是真正的限制。真正的限制是将你的工作负载形态(读密集型 dApp、索引器、交易机器人或钱包后端)与正确的方案层级匹配,然后在有流量之前避免过度配置。本文介绍了如何根据成本、方法覆盖范围、WebSocket 行为和故障转移来评估 Solana RPC 提供商,以便你选择一个适合初创公司预算且不会让自己陷入困境的方案。

Solana RPC 是初创公司从第一天起就能真正合理调整的基础设施项目之一。你不需要为钱包后端、读密集型 dApp 和交易机器人使用相同的端点。诀窍是根据工作负载匹配方案层级,而不是根据团队规模。

本页面直接回答预算问题,然后提供一种评估提供商的方法,这样你就不会在早期多付费用,也不会在流量增长后陷入困境。

快速推荐

如果你处于预收入或早期阶段,请从包含 HTTP 和 WebSocket 的共享或按需付费 Solana RPC 方案开始,然后一旦你能测量,就将任何需要稳定吞吐量的工作负载隔离到专用节点上。OnFinality 为 Solana 提供这两个层级,因此你可以保持相同的端点形态并在它们之间移动工作负载,而无需重写客户端。

将此作为起始规则:

你的情况合理的起始层级原因
原型、黑客松、内部工具共享/公共 RPC成本最低,适合低请求量
有真实用户的早期 dApp,读密集型带付费方案的共享 RPC可预测的计费,包含 WebSocket
索引器、回填或大量 getProgramAccounts专用节点持续吞吐量,无需竞争共享容量
交易机器人或延迟敏感路径专用节点一致的连接,无邻居干扰效应
钱包或托管后端共享 RPC + 专用故障转移冗余比原始速度更重要

如果不确定,请从共享开始,并记录你的请求组合两周。数据会比猜测更可靠地告诉你是否需要专用节点。

真正驱动 Solana RPC 成本的因素

Solana 定价不仅仅是“每月请求数”。提供商根据多种因素定价,了解哪些因素适用于你可以防止意外账单。

  • 请求量和方法权重。 getLatestBlockhash 调用和 getProgramAccounts 扫描并不相等。重方法通常成本更高或受到不同的速率限制。
  • 计算单元 (CU)。 Solana RPC 提供商通常按计算单元而非原始调用次数计量,因为某些方法比其他方法做的工作多得多。
  • WebSocket 订阅。 持久订阅(accountSubscribelogsSubscribeslotSubscribe)占用服务器资源,并与 HTTP 调用分开定价或限制。
  • 归档和历史数据。 如果你查询旧插槽或交易,可能需要支持归档的节点,这属于与标准节点不同的层级。
  • 专用容量。 专用节点是固定月费而非计量费用,这更容易预算,但仅在超过一定利用率时才有意义。

对于初创公司,目标是在计量层级比专用节点更便宜时保持使用它,然后在不便宜时干净地切换。查看当前的 RPC 定价 以了解适用于你工作负载的层级。

评估提供商而不过度设计

你不需要 40 行的评分卡。你需要回答五个直接映射到初创公司风险的问题。

评估领域需要确认的内容忽略后的初创公司风险
方法覆盖getProgramAccountsgetSignaturesForAddresssimulateTransaction、代币和元数据调用便宜方案阻止了你的应用依赖的某个方法
WebSocket 支持wss:// 端点、订阅限制、重连行为实时功能在负载下中断
传输同一提供商上的 HTTP 和 WS你最终将两个供应商拼接在一起
故障转移用于冗余的第二端点或提供商一次中断导致你的应用宕机
计费模式计量与固定、超额规则病毒式传播时刻变成意外账单

OnFinality 支持 Solana 的 HTTP 和 WebSocket,这意味着你可以针对同一提供商运行标准 JSON-RPC 调用和订阅,而不是拆分你的技术栈。有关端点详细信息,请参阅 Solana RPC API 页面。

连接到 Solana RPC 端点

一旦你有了方案,连接本身很简单。Solana 客户端使用 HTTP URL 进行标准调用,使用 WebSocket URL 进行订阅。

# Standard JSON-RPC call over HTTP
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"}]
  }'

在 JavaScript 客户端(如 @solana/web3.js)中,你将连接指向你的端点,并传递与一致性需求匹配的 commitment 级别:

import { Connection, PublicKey } from "@solana/web3.js";

const connection = new Connection(
  "https://solana.api.onfinality.io/public",
  "confirmed"
);

const slot = await connection.getSlot();
console.log("Current slot:", slot);

对于实时更新,请使用 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 data = JSON.parse(event.data);
  // handle log notification
};

将程序 ID 替换为你自己的。如果你在 mainnet 之前进行测试,请使用 Solana Devnet 网络页面获取匹配的端点和配置。

初创公司在 Solana RPC 上超支的地方

最常见的预算错误不是选择错误的提供商,而是为工作负载选择了错误的层级。

  1. 在测量之前购买专用节点。 专用节点是固定成本。如果你的流量是突发性的且较低,计量共享方案几乎总是更便宜。
  2. 轮询而不是订阅。 在循环中轮询 getSlotgetSignaturesForAddress 会快速消耗计算单元。WebSocket 订阅通常对于变更检测更高效。
  3. 忽略方法权重。 单个无界的 getProgramAccounts 调用可能比数千次轻量调用花费更多。尽可能添加过滤器并使用 dataSlice
  4. 没有故障转移计划。 运行单个端点是单点故障。即使是一个便宜的辅助端点,对于任何面向用户的东西都是值得的。
  5. 跳过 commitment 调优。 在所有地方使用 finalized 更安全但更慢,并可能增加重试。将 commitment 与功能匹配。

何时从共享 RPC 迁移到专用节点

共享 RPC 不是你必须立即超越的妥协。它是正确的默认值,直到出现以下信号之一:

  • 你的 p95 延迟在高峰时段变得不一致。
  • 你经常在重方法上达到速率限制或 CU 上限。
  • 你运行需要持续吞吐量的索引器或回填作业。
  • 你需要归档数据或特定的方法保证。
  • 你想要可预测的固定月费而不是计量计费。

当这些信号出现时,仅将受影响的工作负载迁移到 专用节点,其余部分保留在共享 RPC 上。这种混合方法可以保持低成本,同时保护需要稳定容量的应用部分。

一个简单的监控设置

如果不测量,你就无法合理调整方案。一个检查延迟和错误率的最小探针就足以做出共享与专用的决定。

# Lightweight health probe for a Solana RPC endpoint
for i in 1 2 3; do
  curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" \
    https://solana.api.onfinality.io/public \
    -X POST -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
done

跟踪三个数字随时间的变化:错误率、p95 延迟和每天消耗的计算单元。当计算单元接近专用节点更便宜的点时,切换。在此之前,保持计量。

关键要点

  • 从共享或按需付费 Solana RPC 方案开始,仅当你能测量需求时,才将特定工作负载迁移到专用节点。
  • 成本由方法权重、计算单元、WebSocket 订阅、归档访问以及容量是计量还是固定决定。
  • 在承诺提供商之前,确认方法覆盖、WebSocket 支持、传输、故障转移和计费模式。
  • OnFinality 支持 Solana 的 HTTP 和 WebSocket,因此你可以将标准调用和订阅保留在一个提供商上。
  • 在升级层级之前,监测错误率、p95 延迟和计算单元使用情况。
  • 查看 RPC 定价支持的 RPC 网络 以比较适合你工作负载的内容。

常见问题

免费的或公共的 Solana RPC 端点对初创公司足够吗? 对于原型和内部工具,是的。对于任何有真实流量的面向用户的东西,付费共享方案提供更可预测的限制和 WebSocket 支持,而公共端点通常不保证这些。

我需要从第一天就使用专用的 Solana 节点吗? 通常不需要。专用节点是固定成本,一旦你的持续使用量或延迟要求超过共享方案舒适处理的范围,它才有意义。先测量。

为什么 Solana RPC 定价使用计算单元而不是请求计数? 因为方法的成本差异很大。按计算单元计量反映了调用执行的实际工作,因此轻量调用和重量扫描的定价不同。

我可以为 HTTP 和 WebSocket 使用同一个提供商吗? 可以。OnFinality 为 Solana 提供 HTTP 和 WebSocket 端点,这避免了为标准和订阅调用拼接两个供应商。

在 mainnet 之前如何测试? 使用 Solana Devnet 网络页面获取测试网端点,并在切换到 mainnet 之前验证你的客户端配置。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

什么让 Solana RPC 变快,以及如何为你的应用选择最快的端点?

Solana RPC 的速度不仅仅取决于原始吞吐量:地理距离、网络路径、硬件调优以及你调用的方法都会影响延迟。本文解释了决定 RPC 性能的关键因素,并提供了评估提供商的实用清单,以便你选择满足应用需求且不会过度付费的端点。...

网络 RPCAleph Zero

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

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

测试网 RPCEthereumBase

Base Sepolia RPC 端点:链设置、水龙头与调试

Base Sepolia 是基于 OP Stack 构建的 Base L2 网络的测试网,使用 Sepolia ETH。本页面提供官方 RPC 端点、链配置、水龙头链接以及开发者在 Base Sepolia 上测试 dapp 时的常见故障排除技巧。...

测试网 RPCSolana

Solana Devnet RPC:端点设置、空投与调试

Solana devnet 是测试集群,您可以在接触主网之前验证程序、交易和客户端代码。本页介绍如何连接 Solana devnet RPC 端点、如何获取测试 SOL,以及如何调试开发过程中最常出现的故障。 它还涵盖了何时公共 devnet 端点就足够,以及何时托管或专用 RPC 服务(如 OnF...

测试网 RPCZenChain

如何连接 ZenChain 测试网:RPC 端点、水龙头和开发者设置

ZenChain 测试网是一个兼容 EVM 的比特币 Layer 1 测试环境,用于构建和测试具有比特币安全性和以太坊可编程性的 dApp。本指南涵盖 RPC 端点、链设置、水龙头访问以及开发者的逐步设置。...

RPC 提供商选择BNB Chain

如何为高吞吐量工作负载扩展 BNB Chain RPC

为了扩展 BNB Smart Chain (BSC) RPC 以应对高吞吐量工作负载,不要将每秒请求数视为唯一指标。一个快速执行 eth_call 和 eth_getTransactionReceipt 循环的交易机器人、一个使用 eth_getLogs 扫描大区块范围的分析索引器,以及一个广播交易...

永远不用担心基础设施

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

开始