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

Solana RPC 节点:它是什么、如何连接以及如何选择

摘要

Solana RPC 节点是暴露 Solana JSON-RPC API 的服务器,允许应用程序读取链上数据并提交交易。本文解释了 Solana RPC 节点的工作原理、如何连接到公共和专用端点,以及为生产应用选择基础设施时应评估的内容。

快速决策指南:哪种 Solana RPC 设置适合您的应用?

在深入研究端点和方法之前,先决定您希望如何消费 Solana 数据。正确的选择取决于您的工作负载,而不是哪个选项最流行。

工作负载推荐设置原因
原型开发、黑客松、低流量公共 RPC 端点免费、零设置,适合轻量读取
中等流量的生产应用共享托管 RPC无需运行节点即可获得可靠的吞吐量
高吞吐量交易、索引、重型分析专用节点隔离容量、一致性能、自定义调优
在类似生产环境中测试Devnet RPC免费测试网,提供 SOL 水龙头用于开发

如果您需要可预测的性能,并且您的应用依赖 Solana RPC 调用,专用节点可以让您免受嘈杂邻居的影响。对于大多数团队来说,从托管共享 RPC 开始,在达到限制时升级到专用节点,是一条务实的路径。

什么是 Solana RPC 节点?

Solana RPC 节点是运行 Solana 客户端软件并暴露 JSON-RPC API 的服务器。应用程序使用此 API 查询账户余额、交易状态、区块数据,并提交已签名的交易。与以太坊的 JSON-RPC 不同,Solana 使用自己的 JSON-RPC 方法,具有不同的命名和响应格式。

Solana 的架构针对高吞吐量进行了优化,采用权益证明共识和称为历史证明的中央时钟。RPC 节点不是验证者;它们向客户端提供数据,并且可以以不同的配置运行,例如存储历史状态的归档节点。

Solana RPC 端点:链设置一览

当您连接到 Solana 时,需要正确的网络设置。以下是 Solana 主网和 Devnet 的关键参数。

设置主网Devnet
链名称Solana 主网Solana Devnet
原生货币SOL(9 位小数)SOL(9 位小数)
HTTP RPC URLhttps://solana.api.onfinality.io/public参见 Solana Devnet
WebSocket URLwss://solana.api.onfinality.io/public-ws参见 Solana Devnet
浏览器https://explorer.solana.comhttps://explorer.solana.com

注意:公共端点用于测试和轻量使用。对于生产环境,请考虑使用像 OnFinality 这样的提供商提供的托管或专用 RPC。

如何连接到 Solana RPC 节点

您可以使用 curl、JavaScript 库(如 @solana/web3.js)或特定语言的 SDK 与 Solana RPC 交互。以下是一个基本的 curl 示例,用于获取最新区块高度:

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

预期响应:

{"jsonrpc":"2.0","result":123456789,"id":1}

对于 JavaScript,使用 @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 订阅,连接到 WebSocket 端点:

const wsConnection = new Connection('wss://solana.api.onfinality.io/public-ws');
wsConnection.onAccountChange(accountPublicKey, (accountInfo) => {
  console.log('Account changed:', accountInfo);
});

您最常使用的 Solana RPC 方法

Solana 的 RPC API 包括用于读取账户、交易和区块的方法。以下是一些常见方法:

方法用途
getBalance获取账户的 SOL 余额
getAccountInfo获取账户数据和 lamports
getTransaction按签名获取交易详情
getBlock检索区块数据
sendTransaction提交已签名的交易
getSignaturesForAddress列出地址的交易签名
getLatestBlockhash获取最新区块哈希用于交易签名

有关完整列表,请参阅 Solana 文档

公共与专用 Solana RPC 节点

公共 RPC 端点很方便,但有速率限制,并且在负载下可能不可靠。专用节点提供具有专用资源的私有端点,这对于需要一致性能的生产应用至关重要。

因素公共 RPC专用 RPC
成本免费付费
速率限制更高或无
性能共享、可变隔离、可预测
可靠性取决于提供商更高的正常运行时间潜力
定制化可能(例如,归档、WebSocket)

OnFinality 提供 专用 Solana 节点,您可以在几分钟内部署,并提供归档数据和 WebSocket 支持选项。

如何选择 Solana RPC 提供商

在评估 RPC 提供商时,请考虑以下标准:

  • 可靠性:寻找具有正常运行时间记录的提供商,但通过您自己的监控进行验证。
  • 性能:针对您的特定工作负载测试延迟和吞吐量。
  • 速率限制:了解免费和付费层的限制。
  • 支持:检查提供商是否为生产问题提供专门支持。
  • 网络覆盖:确保提供商支持您需要的网络(主网、devnet、testnet)。

如需更深入的了解,请参阅我们的 选择 RPC 提供商指南

常见陷阱和故障排除

以下是开发人员在使用 Solana RPC 节点时遇到的典型问题及其解决方法:

症状可能原因修复
429 Too Many Requests超出速率限制升级到付费计划或使用专用节点
sendTransaction 超时网络拥塞或交易无效检查交易费用并使用最近的区块哈希重试
WebSocket 断开空闲连接或提供商限制实现重连逻辑和心跳
Slot skipping节点落后使用同步更好或归档节点的提供商

关键要点

  • Solana RPC 节点暴露 JSON-RPC API,用于读取数据和发送交易。
  • 公共端点适合测试,但生产应用需要可靠、可扩展的基础设施。
  • 根据性能、速率限制和支持来评估提供商。
  • OnFinality 提供共享和专用 Solana RPC 选项,支持 HTTP 和 WebSocket。

常见问题解答

Solana RPC 节点和验证者有什么区别?

验证者参与共识并产生区块。RPC 节点向客户端提供数据,不参与共识。有些节点可以同时担任两个角色,但它们是独立的角色。

我可以自己运行 Solana RPC 节点吗?

可以,您可以使用官方客户端运行 Solana 节点。但是,这需要大量的硬件和维护。像 OnFinality 这样的托管服务可以为您处理这些。

什么是归档节点?

归档节点存储区块链的完整历史状态,允许查询历史账户数据。这对于分析和索引很有用。

如何获取 devnet 的 SOL?

您可以使用 devnet 水龙头请求 SOL 用于测试。有关详细信息,请参阅 Solana Devnet 页面

OnFinality 是否支持 Solana WebSocket?

是的,OnFinality 为 Solana 提供 WebSocket 端点,如上面的链设置所示。

有关定价和网络的更多详细信息,请访问 RPC 定价支持的 RPC 网络

RPC 知识库

相关 RPC 内容

网络 RPCSolana

Solana RPC Access: Authentication, Rate Limits & Common Errors

Solana RPC access uses JSON-RPC over HTTP and WebSocket. Public endpoints such as https://api.mainnet-beta.solana.com require no key but enforce chang...

RPC 提供商选择

What to Look for in a Dedicated Node as a Service Provider

Dedicated nodes as a service (DNaaS) provide exclusive, managed blockchain infrastructure for a single project, eliminating resource contention and of...

网络 RPCArbitrum

什么是 Arbitrum RPC 端点,如何使用它?

Arbitrum RPC 端点允许钱包和 dApp 在 Arbitrum One、Arbitrum Nova 和 Arbitrum Sepolia 上读写数据。本指南涵盖官方公共端点、链设置、如何使用 curl 或 ethers 连接,以及如何为生产环境选择可靠的提供商。...

网络 RPCAvalanche

什么是 Avalanche 归档节点,何时应该使用?

Avalanche 归档节点存储 C 链、X 链和 P 链的完整历史状态,能够回答修剪节点无法回答的查询。本文解释了归档节点、修剪节点和状态同步节点之间的区别,并帮助您决定是自己运行节点还是使用托管的 RPC 提供商。...

网络 RPCEnjin

Enjin RPC:端点、链设置与开发者工作流

Enjin 运行两条基于 Substrate 的链:Enjin Matrix Chain(NFT 和代币的应用层)和 Enjin Relay Chain(共识和安全层)。两者都使用 Substrate RPC(而非 EVM JSON-RPC),因此开发者需要使用 Polkadot.js 或原始的 W...

RPC 提供商选择Starknet

Starknet RPC:端点、提供商和最佳实践

Starknet 是基于以太坊的 ZK-rollup,使用 STARK 证明实现可扩展性。要与 Starknet 交互,您需要一个 RPC 端点。本指南涵盖公共和私有 Starknet RPC 端点、如何选择提供商以及针对开发者的常见故障排除技巧。...

永远不用担心基础设施

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

开始