Logo
RPC Assistant

什么是 Solana 公共节点,何时应该使用?

摘要

Solana 公共节点是一个免费的、社区运营的 RPC 端点,允许开发者无需运行自己的基础设施即可与 Solana 集群交互。虽然方便用于原型设计和低流量测试,但公共节点有严格的速率限制且无 SLA,不适合生产级 dApp。本文解释了公共节点的工作原理、局限性以及何时升级到专用 RPC 提供商。

Solana 公共节点决策清单

在公共节点和专用 RPC 提供商之间做出选择之前,请评估以下因素:

标准检查内容重要性
请求量估算每日 RPC 调用次数公共节点有严格的速率限制(例如,每个 IP 每 10 秒 100 次请求)
SLA 要求是否需要正常运行时间保证?公共节点无 SLA;专用提供商提供高正常运行时间
数据新鲜度是否需要最新区块数据?公共节点可能落后于最新区块
WebSocket 支持是否需要实时订阅?公共 WebSocket 端点通常有更严格的限制
隐私交易数据暴露公共节点可以看到所有请求;专用节点隔离您的流量
地理延迟您的用户在哪里?公共节点区域有限;专用提供商提供全球 PoP
归档数据是否需要历史状态?公共节点通常只提供最近的插槽
自定义配置是否需要特定的 RPC 方法或标志?公共节点是固定的;专用节点可以调整

什么是 Solana 公共节点?

Solana 公共节点是由 Solana 基金会或第三方运营的 JSON-RPC 端点,任何人都可以无需认证即可使用。这些端点允许开发者发送交易、查询账户余额和获取区块数据,而无需运行自己的验证器或 RPC 节点。

Solana 目前提供三个公共集群:

  • Mainnet Betahttps://api.mainnet-beta.solana.com
  • Devnethttps://api.devnet.solana.com
  • Testnethttps://api.testnet.solana.com

这些端点是免费开放的,但它们有显著的约束,使其不适合生产应用。

公共节点如何工作

公共节点通常由 Solana 基金会或社区成员作为生态系统服务运行。它们接受传入的 HTTP 和 WebSocket 连接,并将其转发到 Solana 集群。由于它们被所有用户共享,因此会实施速率限制以防止滥用并确保公平使用。

与公共节点的典型交互如下所示:

curl https://api.mainnet-beta.solana.com -X POST -H "Content-Type: application/json" -d '
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getSlot"
  }
'

这将返回当前的插槽号。虽然简单,但依赖此端点处理生产流量是有风险的。

速率限制和限制

公共 Solana 节点根据集群和端点实施不同的速率限制。截至撰写本文时,常见限制包括:

  • Mainnet Beta 每个 IP 每 10 秒 100 次请求
  • Devnet 每个 IP 每 10 秒 200 次请求
  • Testnet 每个 IP 每 10 秒 500 次请求

这些限制可能会随时更改,恕不另行通知。超出限制将导致 HTTP 429 响应或连接断开。对于任何拥有超过少量用户的应用,这些限制将成为瓶颈。

此外,公共节点可能:

  • 限制诸如 getProgramAccountsgetSignaturesForAddress 等重型方法
  • 不允许长时间 WebSocket 订阅
  • 如果节点落后于集群最新区块,则提供过时数据

何时使用公共节点

公共节点适用于:

  • 快速原型设计:在开发期间测试脚本或智能合约
  • 低流量查询:手动检查账户余额或交易状态
  • 学习和实验:在不投入基础设施的情况下了解 Solana 的 RPC API
  • 黑客马拉松和演示:正常运行时间不关键的短期项目

例如,为一次性脚本获取最新区块哈希:

const web3 = require('@solana/web3.js');
const connection = new web3.Connection('https://api.mainnet-beta.solana.com');
connection.getRecentBlockhash().then(console.log);

这在本地测试中运行良好,但在生产环境中部署会很快达到速率限制。

何时升级到专用 RPC 提供商

如果您的应用服务真实用户、每天处理超过几百次请求或需要可靠性能,则需要专用 RPC 提供商。以下是需要切换的迹象:

  • 速率限制错误:您的应用频繁收到 429 响应
  • 延迟不一致:响应时间变化很大
  • WebSocket 断开:订阅意外断开
  • 数据过时:查询返回过时的插槽信息
  • 无支持:端点宕机时无法获得帮助

专用提供商提供:

  • 更高或明确的速率限制:根据您的流量定制
  • 全局负载均衡:不同区域的多个节点
  • SLA 支持的正常运行时间:保证可用性
  • 专用基础设施:隔离节点以获得一致性能
  • 归档和追踪数据:访问历史状态
  • 自定义配置:根据您的用例调整 RPC 标志

如何选择 Solana RPC 提供商

评估提供商时,请考虑:

  1. 吞吐量:他们能否处理您的峰值请求量?
  2. 延迟:他们的节点相对于您的用户位于何处?
  3. 可靠性:他们的历史正常运行时间如何?是否发布状态页面?
  4. 数据访问:他们是否支持归档、WebSocket 和 gRPC?
  5. 定价:是否可预测且可扩展?

OnFinality 提供 Solana RPC 端点,包括共享和专用选项,支持 Mainnet、Devnet 和 Testnet。您可以从免费层开始,并根据需要扩展。查看我们的 RPC 定价 了解详情。

公共节点的常见陷阱

1. 假设可用性

公共节点可能在没有警告的情况下宕机。Solana 基金会的端点在网络拥塞期间曾出现过中断。始终准备一个备用端点。

2. 忽略速率限制

即使是简单的 dApp,如果频繁轮询,也可能超过每 10 秒 100 次请求。实施缓存和退避策略。

3. 在生产中使用公共节点

公共节点明确不适用于生产。Solana 文档警告:“这些端点受速率限制,且不保证可用。”

4. 不监控延迟

公共节点延迟在高流量期间可能飙升。使用监控工具跟踪响应时间,并在需要时切换提供商。

设置可靠的 Solana 连接

对于生产环境,配置您的应用使用带有备用逻辑的专用 RPC 端点:

const connection = new web3.Connection(
  'https://solana.api.onfinality.io/public',
  {
    commitment: 'confirmed',
    confirmTransactionInitialTimeout: 60000
  }
);

此示例使用 OnFinality 的公共端点,它提供比默认 Solana 基金会端点更高的限制。为了获得更好的性能,请考虑 专用节点

关键要点

  • Solana 公共节点是免费的,但有严格的速率限制且无 SLA。
  • 它们仅适用于原型设计和低流量测试。
  • 生产应用需要具有保证吞吐量和正常运行时间的专用 RPC 提供商。
  • 选择提供商时,评估吞吐量、延迟、可靠性和定价。
  • 始终实施备用端点和缓存,以最小化对任何单个节点的依赖。

常见问题

问:我可以在生产 dApp 中使用 Solana 公共节点吗? 答:不建议。公共节点有速率限制、无 SLA,并且在网络拥塞期间可能不可用。请使用专用 RPC 提供商进行生产。

问:Solana 公共节点的速率限制是多少? 答:Mainnet Beta 大约为每个 IP 每 10 秒 100 次请求,但限制可能会更改。请查看官方 Solana 文档以获取最新信息。

问:如何找到 Solana 公共节点列表? 答:Solana 基金会为每个集群发布端点。社区维护的列表(如 extrnode GitHub 仓库)汇总了许多公共端点。

问:公共节点和专用节点有什么区别? 答:公共节点由所有用户共享,有速率限制且无保证。专用节点是为您独家使用而配置的,提供更高的吞吐量、更低的延迟和 SLA。

问:OnFinality 是否提供 Solana 公共节点? 答:是的,OnFinality 为 Solana Mainnet、Devnet 和 Testnet 提供公共端点。对于生产工作负载,我们推荐我们的专用节点服务。查看我们的 支持的网络 了解详情。

RPC 知识库

相关 RPC 内容

RPC 故障排查

什么是加密中的 nonce?

# 什么是加密中的 nonce? Nonce(“一次性使用的数字”)是在加密通信中仅使用一次的独特任意数字。在像以太坊这样的区块链网络中,nonce 是一个顺序计数器,确保来自给定地址的交易按顺序处理,并防止重放攻击。每笔交易的 nonce 必须比同一账户的上一笔交易高 1;否则,网络会拒绝该交易。...

Rpc Provider Selection

哪个RPC提供商提供最可靠的以太坊RPC端点?

# 哪个RPC提供商提供最可靠的以太坊RPC端点? 以太坊RPC端点的可靠性意味着持续的正常运行时间、低延迟、准确的数据以及处理流量高峰而不受速率限制或错误的能力。没有哪个提供商能普遍适用于所有工作负载,但生产团队应根据端点性能、方法支持、归档和追踪访问以及扩展选项来评估提供商。OnFinality...

Rpc Provider Selection

什么是以太坊RPC节点,如何选择?

以太坊RPC节点是暴露JSON-RPC API的服务器,允许应用程序读取区块链数据并发送交易。选择正确的节点——无论是自托管、共享还是专用——取决于您的吞吐量、可靠性和成本需求。本指南涵盖以太坊RPC节点的工作原理、关键评估标准以及入门实践步骤。...

Network Rpc

关于 Celo RPC 端点,我需要了解什么?

# 关于 Celo RPC 端点,我需要了解什么? Celo RPC 端点之所以重要,是因为 Web3 应用依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配你的工作负载,支持所需的网络和测试网,使限制可见,并在共享 RPC 不再足够时提供扩展路径。 对于 Celo 构建者、基...

Rpc Provider Selection

如何为你的应用选择最佳的Solana RPC节点

选择合适的Solana RPC节点对于应用的性能、可靠性和成本至关重要。本指南帮助开发者和基础设施采购者根据延迟、吞吐量、归档访问和定价模型评估提供商。内容包括决策清单、对比表以及选择共享节点与专用节点的实用技巧。...

Network Rpc

Peaq RPC:如何连接DePIN Layer 1

# Peaq RPC:如何连接DePIN Layer 1 Peaq 是一个基于 Substrate 构建的 Layer 1 区块链,作为 Polkadot 平行链运行,专为去中心化物理基础设施网络(DePIN)和机器经济设计。它提供双执行环境——兼容 EVM 的智能合约和 Substrate pal...

永远不用担心基础设施

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

开始