Logo
RPC Assistant

什么是 Solana RPC API,如何使用它?

摘要

# Solana RPC API:开发者指南 Solana RPC API 是与 Solana 区块链交互的主要接口。它提供了一组 JSON-RPC 方法,允许开发者读取网络状态、发送交易、模拟执行以及订阅实时更新。无论你是在构建 DeFi 应用、钱包还是 NFT 市场,RPC API 都是你通往 Solana 集群的门户。 本指南涵盖了核心概念、可用方法以及有效使用 Solana RPC API 的最佳实践。我们还将讨论如何为生产工作负载在公共端点和托管 RPC 服务之间做出选择。

关键要点

  • Solana RPC API 使用 JSON-RPC 2.0 协议,通过 HTTP 和 WebSocket 实现请求-响应和订阅方法。
  • 像 api.mainnet.solana.com 这样的公共端点有速率限制,不适合生产应用。
  • 关键的 RPC 方法包括 getAccountInfo、getBalance、getTransaction、sendTransaction 和 getProgramAccounts。
  • 状态确认级别(processed、confirmed、finalized)控制数据被视为最终确认的时效性。
  • 对于生产环境,使用像 OnFinality 这样的托管 RPC 提供商,以获得专用节点、更高吞吐量和可靠运行时间。
  • WebSocket 订阅支持账户、日志和交易的实时更新。
  • 通过缓存响应、批量请求以及尽可能避免轮询来优化 RPC 使用。

什么是 Solana RPC API?

Solana RPC API 是一个 JSON-RPC 2.0 接口,允许应用与 Solana 节点通信。它公开了用于查询账户余额、检索交易历史、发送交易以及通过 WebSocket 订阅事件的方法。与 Solana 区块链的每一次交互——无论是来自钱包、dApp 还是后端服务——都通过 RPC 端点进行。

Solana 的架构专为高吞吐量设计,RPC API 通过针对性能优化的方法反映了这一点。然而,公共 RPC 端点是共享基础设施,并带有可能阻碍生产应用的速率限制。为了可靠访问,许多开发者转向像 OnFinality 这样的托管 RPC 提供商。

  • 通过 HTTP POST 使用 JSON-RPC 2.0 进行请求-响应调用
  • 用于实时订阅的 WebSocket 连接
  • 支持主网、开发网和测试网集群
  • 方法涵盖账户、代币、交易、区块和集群信息

Solana RPC 端点和集群

Solana 运行三个公共集群:mainnet-beta、devnet 和 testnet。每个集群都有一个公共 RPC 端点,但这些端点有速率限制,不建议用于生产环境。官方端点是:

对于开发和测试,开发网和测试网提供免费访问,并配有测试 SOL 的水龙头。生产应用应使用专用 RPC 提供商以确保可靠性和可扩展性。

  • List the exact RPC methods, chains, and environments your app will call.
  • Test with the same request pattern your frontend, backend, bot, dashboard, or indexer will use.
  • Check whether archive, trace, WebSocket, testnet, analytics, or dedicated-node access is actually required.
  • Review pricing, usage visibility, and upgrade paths before moving sustained traffic.
标准检查内容为什么重要
集群公共端点用于测试或轻度使用
主网https://api.mainnet.solana.com使用真实 SOL 的生产网络
开发网https://api.devnet.solana.com开发者测试,可从水龙头获取免费 SOL
测试网https://api.testnet.solana.com验证者测试,稳定性较低

关键的 Solana RPC 方法

每个方法接受参数并返回 JSON 响应。例如,getBalance 接受 base58 编码的公钥并返回 lamport 余额。始终查看官方文档以了解参数详情和响应格式。

  • 账户:getAccountInfo、getBalance、getMultipleAccounts
  • 交易:getTransaction、sendTransaction、simulateTransaction
  • 代币:getTokenAccountBalance、getTokenAccountsByOwner、getTokenSupply
  • 区块:getBlock、getBlocks、getBlockHeight
  • 集群:getEpochInfo、getSlot、getHealth
  • 程序:getProgramAccounts(重型方法,请配合过滤器使用)
标准检查内容为什么重要
ClusterPublic EndpointUse for testing or light usage
Mainnethttps://api.mainnet.solana.comProduction network with real SOL
Devnethttps://api.devnet.solana.comDeveloper testing with free SOL from faucet
Testnethttps://api.testnet.solana.comValidator testing, less stable

状态确认和最终性

Solana RPC 方法接受一个可选的 commitment 参数,用于控制数据必须被确认的时效性。三个级别是:

选择合适的确认级别对你的应用至关重要。例如,钱包可能使用 'confirmed' 来获取交易状态,而区块浏览器可能使用 'finalized' 来获取历史数据。

  • Accounts: getAccountInfo, getBalance, getMultipleAccounts
  • Transactions: getTransaction, sendTransaction, simulateTransaction
  • Tokens: getTokenAccountBalance, getTokenAccountsByOwner, getTokenSupply
  • Blocks: getBlock, getBlocks, getBlockHeight
  • Cluster: getEpochInfo, getSlot, getHealth
  • Programs: getProgramAccounts (heavy method, use with filters)
标准检查内容为什么重要
确认级别描述速度与最终性之间的权衡
processed节点最新的区块(可能被回滚)最快,但非最终
confirmed集群投票的区块(超级多数)对大多数应用来说平衡良好
finalized整个集群确认的区块(>= 32 次确认)最高安全性,速度较慢

WebSocket 订阅

除了 HTTP 方法,Solana RPC API 还支持用于实时更新的 WebSocket 订阅。你可以订阅账户变更、程序日志、交易确认和插槽更新。这比轮询更高效。

要使用订阅,请连接到 WebSocket 端点(例如 wss://api.mainnet.solana.com)并发送 JSON-RPC 订阅请求。服务器将推送通知,直到你取消订阅。

  • accountSubscribe:当账户数据发生变化时通知
  • logsSubscribe:监听程序日志
  • signatureSubscribe:当交易被确认时获得通知
  • slotSubscribe:当产生新插槽时接收更新
标准检查内容为什么重要
CommitmentDescriptionTrade-off between speed and finality
processedNode's most recent block (may be rolled back)Fastest, but not final
confirmedBlock voted by cluster (supermajority)Good balance for most apps
finalizedBlock confirmed by full cluster (>= 32 confirmations)Maximum safety, slower

使用 Solana RPC API 的最佳实践

对于高吞吐量应用,考虑使用专用节点。OnFinality 提供具有隔离资源的专用 Solana 节点,确保即使在重负载下也能保持一致的性能。

  • 避免轮询不常变化的数据;改用 WebSocket 订阅。
  • 缓存 getProgramAccounts 和 getSignaturesForAddress 等昂贵方法的响应。
  • 尽可能使用 JSON-RPC 批量调用进行批量请求。
  • 使用托管 RPC 提供商进行生产,以避免速率限制并确保运行时间。
  • 监控你的 RPC 使用情况,并为错误率或延迟峰值设置警报。
  • 在部署到主网之前先在开发网上进行测试。

选择 Solana RPC 提供商

公共 RPC 端点适合开发,但不足以用于生产。托管提供商提供更高的速率限制、专用节点、增强的 API 和支持。评估提供商时,请考虑:

OnFinality 提供 Solana RPC 端点,具有灵活的方案,包括共享和专用节点选项。你可以通过免费层快速入门,并随着应用的增长进行扩展。

  • Avoid polling for data that changes infrequently; use WebSocket subscriptions instead.
  • Cache responses for expensive methods like getProgramAccounts and getSignaturesForAddress.
  • Batch requests when possible using JSON-RPC batch calls.
  • Use a managed RPC provider for production to avoid rate limits and ensure availability.
  • Monitor your RPC usage and set up alerts for error rates or latency spikes.
  • Test on devnet before deploying to mainnet.
标准检查内容为什么重要
特性为何重要对你的应用的影响
速率限制允许的每秒请求数限制你的吞吐量
运行时间 support terms保证的可用性用户的可靠性
专用节点隔离的基础设施一致的性能
增强的 API超出标准 RPC 的额外端点简化开发
全球覆盖端点的地理分布全球更低的延迟

Choosing a Solana RPC Provider

Public RPC endpoints are fine for development but insufficient for production. Managed providers offer higher rate limits, dedicated nodes, enhanced APIs, and support. When evaluating providers, consider:

OnFinality provides Solana RPC endpoints with flexible plans, including shared and dedicated node options. You can get started quickly with a free tier and scale as your application grows.

标准检查内容为什么重要
FeatureWhy It MattersImpact on your app
Rate limitsRequests per second allowedLimits your throughput
support and monitoring optionsdocuments availabilityReliability for users
Dedicated nodesIsolated infrastructureConsistent performance
Enhanced APIsAdditional endpoints beyond standard RPCSimplify development
Global coverageGeographic distribution of endpointsLower latency worldwide

常见问题

Solana RPC HTTP 和 WebSocket 方法有什么区别?

HTTP 方法是请求-响应模式:你发送请求并得到响应。WebSocket 方法允许你订阅事件,并在数据变化时接收推送通知,这对于实时更新更高效。

如何在 Solana 开发网上获取免费 SOL 进行测试?

你可以使用 Solana 水龙头 https://faucet.solana.com 请求开发网 SOL。一些 RPC 提供商也提供水龙头端点。

什么是 Solana 上的“重型”RPC 方法?

像 getProgramAccounts 这样的重型方法会消耗大量节点资源,因为它们会扫描大型账户空间。始终使用过滤器(例如按数据大小或所有者)来限制结果集。

我可以在生产环境中使用公共 Solana RPC 端点吗?

公共端点有速率限制,并且所有用户共享,因此不适合生产环境。请使用像 OnFinality 这样的托管 RPC 提供商,以获得可靠、可扩展的访问。

如何通过 Solana RPC API 发送交易?

使用 sendTransaction 方法,并传入 base58 或 base64 编码的已签名交易。如果成功,该方法将返回交易签名。

RPC 知识库

相关 RPC 内容

Network Rpc

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

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

Network Rpc

什么是Kusama Asset Hub以及如何连接?

# 什么是Kusama Asset Hub以及如何连接? Kusama Asset Hub(原名Statemine)是Kusama网络上的一个公益平行链,支持同质化和非同质化资产的发行与转移。它也是持有和转移KSM代币的低成本链。经过最近的运行时升级,Asset Hub现在支持智能合约,并承载了以前...

Rpc Provider Selection

哪个RPC提供商提供最可靠的Optimism RPC端点?

# 哪个RPC提供商提供最可靠的Optimism RPC端点? 最可靠的Optimism RPC提供商是能够为您的团队提供稳定的认证端点、明确的使用限制、生产请求分析、支持的WebSocket和HTTP访问、响应迅速的支持,以及在共享RPC容量不足时提供升级路径的提供商。对于在Optimism上构建...

Blockchain Infrastructure

What is node infrastructure and how do you evaluate it for Web3 projects?

Node infrastructure refers to the hardware, software, and network components that run blockchain nodes to support decentralized applications. This gui...

Testnet Rpc

What is Solana Devnet and how do you start building on it?

Solana Devnet is a public test network that mirrors Mainnet Beta, allowing developers to deploy and test programs without using real SOL. This guide c...

Network Rpc

Gnosis RPC:端点、提供商与最佳实践

# Gnosis RPC:端点、提供商与最佳实践 Gnosis Chain(原 xDai)是一个兼容 EVM 的 L1 区块链,以其稳定的 gas 代币(xDAI)和低交易成本而闻名。为了与 Gnosis Chain 交互,开发者和应用程序需要一个可靠的 RPC(远程过程调用)端点。本指南涵盖了您需...

永远不用担心基础设施

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

开始