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 订阅。 持久订阅(accountSubscribe、logsSubscribe、slotSubscribe)占用服务器资源,并与 HTTP 调用分开定价或限制。
  • 归档和历史数据。 如果你查询旧插槽或交易,可能需要支持归档的节点,这属于与标准节点不同的层级。
  • 专用容量。 专用节点是固定月费而非计量费用,这更容易预算,但仅在超过一定利用率时才有意义。

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

评估提供商而不过度设计

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

评估领域需要确认的内容忽略后的初创公司风险
方法覆盖getProgramAccounts、getSignaturesForAddress、simulateTransaction、代币和元数据调用便宜方案阻止了你的应用依赖的某个方法
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. 轮询而不是订阅。 在循环中轮询 getSlot 或 getSignaturesForAddress 会快速消耗计算单元。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 内容

测试网 RPCSui

Sui 测试网 RPC 与 gRPC:端点、水龙头与开发者配置

Sui 测试网 RPC 为开发者提供了以 gRPC 为先的途径来查询检查点、对象和余额;模拟和执行交易;并使用 OnFinality 托管端点流式传输实时活动。现代工作流使用 LedgerService 获取检查点数据,使用 StateService 读取对象和余额,使用 TransactionEx...

RPC 提供商选择Solana

如何选择Solana WebSocket基础设施提供商

Solana WebSocket基础设施支持实时账户订阅、交易监控和订单簿流。选择合适的提供商取决于你的工作负载:公共端点适合原型开发,但生产应用需要具有稳定连接和低延迟的托管或专用节点。本指南比较了提供商类型,并为你提供了实用的评估框架。...

网络 RPCAvalanche

如何将 Polygon 网络添加到 MetaMask?

将 Polygon 添加到 MetaMask 大约需要一分钟:打开网络选择器,选择“添加网络”,然后输入 Polygon 主网链设置(链 ID 137、POL 作为 Gas 代币以及一个 RPC 端点)。棘手的部分通常是 RPC URL,因为公共端点会限速,并且在繁忙时段可能失败。 本页面为您提供确...

区块链基础设施

Blockchain Node as a Service: Key Criteria for Choosing a Provider

Blockchain node as a service (also called node-as-a-service or NaaS) lets developers access blockchain nodes without running, syncing, or maintaining ...

区块链基础设施Bittensor

如何使用Bittensor浏览器监控TAO网络

# 如何使用Bittensor浏览器监控TAO网络 Bittensor浏览器是一种基于网页的工具,可让您查看Bittensor网络的实时区块链数据,包括区块、交易、外部调用、事件和子网活动。与通用区块链浏览器不同,Bittensor浏览器专为Subtensor链定制,并提供针对质押、委托、子网代币和...

区块链基础设施Bittensor

Bittensor 矿工设置:从钱包到注册 UID

设置 Bittensor 矿工意味着准备一个 coldkey/hotkey 钱包,为其充值 TAO,在子网上注册 UID,然后针对可靠的 Finney RPC 端点运行子网的矿工进程。RPC 层至关重要,因为注册、质押检查和元图同步都依赖于一致的链访问。 本指南将引导您完成实际设置路径、容易让人困惑...

永远不用担心基础设施

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

开始