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

Solana 公共 RPC 节点:它们是什么以及何时使用它们

摘要

Solana 公共 RPC 节点是免费的、由社区运营的端点,允许你在不运行自己的验证器的情况下读写 Solana 上的数据。它们非常适合原型开发、轻量级 dApp 和快速测试,但存在速率限制和可靠性风险。本指南解释了它们的工作原理、局限性以及何时迁移到托管或专用 RPC 提供商。

Solana 公共 RPC 节点是在 Solana 上开始构建的最快方式。它们是免费的,无需注册,并允许你向网络发送 JSON-RPC 请求,而无需运行自己的验证器。但它们也是共享的、有限速的,并且不适用于生产工作负载。本指南解释了它们的工作原理、局限性以及何时应迁移到托管或专用 RPC 提供商。

快速决策指南:公共 vs 托管 vs 专用 RPC

在深入细节之前,这里有一个快速方法来确定哪种类型的 RPC 端点适合你的用例:

工作负载公共 RPC托管 RPC专用 RPC
原型开发和黑客松
低流量的轻量级 dApp
有真实用户的生产 dApp
高吞吐量的交易或索引
大量的 getProgramAccountsgetSignaturesForAddress 调用
大规模 WebSocket 订阅

如果你只是在试验或构建演示,公共 RPC 节点就足够了。 如果你要启动生产应用,应使用像 OnFinality 这样的托管 RPC 提供商,以获得可靠的吞吐量和支持。如果你有持续的高负载或需要可预测的性能,专用节点是正确的选择。

什么是 Solana 公共 RPC 节点?

Solana 公共 RPC 节点是向互联网上的任何人公开 Solana JSON-RPC API 的服务器。它允许你查询区块链数据(如账户余额、交易状态和区块数据)并提交交易。公共节点由 Solana 基金会、社区成员或基础设施提供商运营,并且免费使用。

当你向公共 RPC 端点发送请求时,你正在与许多其他开发人员共享该节点。这就是公共节点有速率限制并且在高峰使用期间可能变慢或不可用的原因。

如何使用 Solana 公共 RPC 节点

你可以使用任何 HTTP 客户端与公共 RPC 节点交互。以下是一个简单的 curl 示例,用于获取当前 slot:

curl https://solana.api.onfinality.io/public \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'

你也可以使用官方的 Solana Web3.js 库:

import { Connection } from '@solana/web3.js';

const connection = new Connection('https://solana.api.onfinality.io/public');
const slot = await connection.getSlot();
console.log('Current slot:', slot);

对于实时更新,你可以使用 WebSocket 订阅:

import { Connection } from '@solana/web3.js';

const connection = new Connection('wss://solana.api.onfinality.io/public-ws');
const subscriptionId = connection.onSlotChange((slotInfo) => {
  console.log('Slot changed:', slotInfo);
});

公共 RPC 节点的局限性

公共 RPC 节点很方便,但有几个局限性可能会在生产环境中破坏你的应用程序:

  • 速率限制:公共节点通常限制每秒或每天的请求数。如果超过限制,你会收到 429 Too Many Requests 错误。
  • 无 SLA:不保证正常运行时间或性能。节点可能在没有通知的情况下宕机或变慢。
  • 共享资源:由于许多开发人员使用同一个节点,一个应用程序的流量激增可能会影响其他所有人。
  • 历史数据有限:公共节点通常不提供完整的归档数据。如果你需要历史状态或日志,可能需要归档节点。
  • 无支持:如果出现问题,你无法联系任何人。你只能靠自己。

这些局限性是大多数生产 dApp 使用托管 RPC 提供商或专用节点的原因。

何时升级到托管 RPC 提供商

如果你的 dApp 已准备好面向真实用户,你应该迁移到托管 RPC 提供商。像 OnFinality 这样的托管提供商提供:

  • 更高的速率限制:你获得更多的每秒请求数,并且可以随着流量增长而扩展。
  • 可靠性:托管提供商在负载均衡器后面运行多个节点,因此如果一个节点发生故障,你的流量会被路由到另一个节点。
  • 支持:如果遇到问题,你可以联系提供商。
  • 附加功能:一些提供商提供归档数据、WebSocket 支持和分析。

OnFinality 为 Solana 提供托管 RPC 服务,包括 HTTP 和 WebSocket 端点。你可以在我们的支持的网络页面上查看完整的支持网络列表。

何时使用专用 Solana RPC 节点

专用节点为你提供不与他人共享的私有 RPC 端点。这适用于:

  • 高吞吐量应用:如果你运行交易机器人、索引器或数据密集型应用,专用节点可提供一致的性能。
  • 合规或数据隐私:如果需要控制谁可以访问你的节点,专用节点是正确的选择。
  • 自定义配置:你可以根据特定需求调整节点,例如启用归档模式或调整交易处理设置。

OnFinality 为 Solana 提供专用节点。你可以在我们的专用节点页面上了解更多信息。

如何评估 Solana RPC 提供商

在选择 Solana RPC 提供商时,请考虑以下标准:

标准检查内容重要性
速率限制每秒请求数、每日配额决定你的应用能否处理峰值流量
正常运行时间历史正常运行时间、SLA确保你的应用在用户需要时可用
延迟不同区域的响应时间影响用户体验,尤其是实时应用
WebSocket 支持提供商是否提供 WebSocket 端点?实时订阅所需
归档数据提供商是否提供归档节点?历史查询所需
支持是否有支持团队?帮助你快速解决问题
定价每次请求或每月的成本符合你的预算

你可以使用这些标准比较提供商。OnFinality 对许多团队来说是一个不错的选择,因为它在性能、可靠性和定价之间取得了平衡。你可以查看我们的 RPC 定价 了解详情。

常见陷阱及如何避免

以下是开发人员在使用 Solana RPC 节点时常犯的一些错误:

  • 在生产环境中使用公共节点:这是最常见的错误。公共节点对于生产应用来说不够可靠。始终使用托管或专用节点。
  • 不处理速率限制:如果你使用公共节点,应优雅地处理 429 错误。实现带有指数退避的重试逻辑。
  • 忽略 WebSocket 重连:WebSocket 连接可能会断开。确保你的应用自动重连。
  • 未根据用例使用正确的端点:如果需要实时数据,请使用 WebSocket。如果需要历史数据,请使用归档节点。

关键要点

  • Solana 公共 RPC 节点免费且易于使用,但它们有速率限制且没有可靠性保证。
  • 公共节点适用于原型开发和轻量级 dApp,但生产应用应使用托管 RPC 提供商。
  • 专用节点是高吞吐量或数据密集型应用的最佳选择。
  • 评估提供商时,请考虑速率限制、正常运行时间、延迟、WebSocket 支持、归档数据、支持和定价。
  • OnFinality 提供托管和专用 Solana RPC 节点,支持 HTTP 和 WebSocket 端点。

常见问题解答

什么是 Solana 公共 RPC 节点? Solana 公共 RPC 节点是免费的、社区运营的端点,公开 Solana JSON-RPC API。它允许你查询区块链数据并提交交易,而无需运行自己的节点。

Solana 公共 RPC 节点可靠吗? 公共 RPC 节点对于生产使用并不可靠。它们有速率限制、没有 SLA,并且可能在高峰使用期间变慢或不可用。对于生产应用,请使用托管或专用 RPC 提供商。

如何获取 Solana RPC 端点? 你可以使用公共端点(如 https://solana.api.onfinality.io/public)进行测试。对于生产环境,请注册托管 RPC 服务或部署专用节点。

公共 RPC 节点和私有 RPC 节点有什么区别? 公共 RPC 节点由许多用户共享,并且有速率限制。私有 RPC 节点(专用)是专属于你的,提供更好的性能和可靠性。

OnFinality 支持 Solana 吗? 是的,OnFinality 支持 Solana 主网和 devnet。你可以在我们的 Solana 网络页面 上找到更多信息。

RPC 知识库

相关 RPC 内容

网络 RPCAleph Zero

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

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

网络 RPCAstar

Astar API:如何连接Astar网络RPC和数据端点

Astar API是指用于与Astar网络交互的JSON-RPC接口,以及官方的代币和dApp质押数据API。本指南解释了不同类型的Astar API,如何使用RPC端点进行连接,以及如何为生产应用选择合适的基础设施。...

RPC 提供商选择Solana

哪些 Solana RPC 提供商以其针对 DeFi 的增强 API 而闻名?

Solana 上的 DeFi 应用需要的不仅仅是基本的 JSON-RPC:它们依赖于增强的 API,如优先费用估算、代币账户索引和实时 WebSocket 流。本文介绍了在为 DeFi 工作负载选择 Solana RPC 提供商时应注意什么,以及如何评估 OnFinality 的托管 RPC 和专用...

RPC 提供商选择Optimism

How to Evaluate Optimism RPC Providers for Reliability in Production Apps?

When selecting an Optimism RPC provider, reliability goes beyond uptime. This article covers the key criteria to evaluate: endpoint consistency, archi...

区块链基础设施BNB Chain

什么是币安智能链节点,你应该如何访问它们?

BNB智能链节点是维护BSC状态副本、验证区块并提供JSON-RPC请求服务的客户端实例。你可以自己运行全节点、归档节点或快速节点,或者在需要可靠访问而无需基础设施开销时连接到托管的RPC端点。 本文解释了主要的节点类型、运行自己的节点涉及的内容,以及如何在自托管、专用BSC节点和RPC API服务...

RPC 提供商选择Arbitrum

什么是Arbitrum RPC,如何选择合适的端点?

Arbitrum RPC端点是dApp、钱包和索引器与Arbitrum One、Nova或测试网通信的网关。本文涵盖链设置、公共与私有端点、排序器行为以及为生产环境选择可靠RPC提供商的标准。...

永远不用担心基础设施

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

开始