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

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

摘要

# Solana API 指南:RPC 端点、方法及最佳实践 Solana API 是一个 JSON-RPC 接口,允许开发者与 Solana 区块链交互。它提供了读取网络状态、发送交易、模拟执行以及订阅实时更新的方法。本指南涵盖了核心 API 方法、如何连接到不同集群,以及为生产应用选择可靠 RPC 提供商的注意事项。

关键要点

  • Solana API 使用 JSON-RPC 2.0 协议,通过 HTTP POST 和 WebSocket 进行订阅。
  • 关键的 HTTP 方法包括 getBalance、getTransaction、sendTransaction 和 getProgramAccounts。
  • 公共 RPC 端点有速率限制,不适合生产环境;应使用专用提供商。
  • Solana 提供三个主要集群:Mainnet、Devnet 和 Testnet,各有不同用途。
  • WebSocket 订阅支持账户、日志和程序的实时更新。
  • 选择低延迟和高可靠性的提供商对用户体验至关重要。
  • OnFinality 提供可扩展的 Solana RPC 端点,并支持生产工作负载的专用节点选项。

什么是 Solana API?

Solana API 是一个 JSON-RPC 接口,使应用程序能够与 Solana 区块链通信。它遵循 JSON-RPC 2.0 规范,支持 HTTP 和 WebSocket 传输。通过此 API,开发者可以查询账户余额、发送交易、获取区块数据以及订阅实时事件。

官方 Solana 文档提供了全面的 RPC 方法列表,但对于生产应用,由于速率限制和可靠性问题,不建议使用公共端点。相反,开发者通常使用提供专用基础设施的第三方 RPC 提供商。

  • Use HTTP POST for request-response methods.
  • Set Content-Type: application/json.
  • Check the error object in responses for RPC-specific failures.

Solana API 方法概览

Solana API 包含数十种方法,分为以下几类:账户、代币、交易、区块、集群信息和经济数据。一些最常用的方法包括:

  • getBalance – 返回账户的 SOL 余额。
  • getTransaction – 根据签名检索已确认的交易。
  • sendTransaction – 向集群提交已签名的交易。
  • getProgramAccounts – 返回某个程序拥有的所有账户。
  • getLatestBlockhash – 获取用于构建交易的最新区块哈希。
  • simulateTransaction – 模拟交易而不提交。
  • getSlot – 返回当前槽位号。
  • getBlock – 根据槽位号获取区块。

连接到 Solana 集群

Solana 运行三个主要集群:Mainnet、Devnet 和 Testnet。每个集群都有公共 RPC 端点,但这些端点是共享且受速率限制的。对于生产应用,应使用提供更高吞吐量和可靠性的专用 RPC 提供商。

公共端点如下:

Mainnet: https://api.mainnet.solana.com

Devnet: https://api.devnet.solana.com

Testnet: https://api.testnet.solana.com

  • Mainnet – 使用真实 SOL 的生产网络。用于正式 dApp。
  • Devnet – 开发者测试网络,可通过水龙头获取免费 SOL。适合开发和测试。
  • Testnet – 验证者测试网络。用于网络性能测试。

发起您的第一个 API 调用

以下是一个使用 curl 通过公共端点调用 Solana Mainnet 上 getSlot 方法的简单示例:

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

对于生产环境,您应将公共端点替换为提供商特定的 URL。例如,使用 OnFinality 的 Solana RPC 端点:

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

  • 1. Call getLatestBlockhash
  • 2. Build and sign transaction with your keypair
  • 3. Test with simulateTransaction
  • 4. Submit with sendTransaction
  • 5. Confirm with getSignatureStatuses or signatureSubscribe

WebSocket 订阅

Solana API 还支持 WebSocket 订阅以获取实时更新。您可以订阅账户变更、程序日志和槽位更新。这对于构建响应链上事件的 dApp 非常有用。

订阅账户变更的示例:

wscat -c wss://api.mainnet.solana.com

> {"jsonrpc":"2.0","id":1,"method":"accountSubscribe","params":["PUBLIC_KEY",{"commitment":"finalized"}]}

  • accountSubscribe – account data changes
  • logsSubscribe – program logs
  • programSubscribe – program-owned account updates
  • signatureSubscribe – transaction confirmation
  • slotSubscribe – new slot notifications

选择 Solana RPC 提供商

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

标准检查内容为什么重要
正常运行时间与可靠性服务等级协议(support terms)和历史正常运行时间统计。停机可能导致应用中断并失去用户信任。
延迟端点的地理分布和响应时间。低延迟可改善用户体验,尤其对于实时应用。
速率限制每秒请求数(RPS)限制以及是否可根据需求扩展。速率限制可能在高峰使用期间限制您的应用。
专用节点 vs 共享节点提供商是否提供具有有保障资源的专用节点。专用节点提供一致的性能,对于高流量应用至关重要。
网络支持Mainnet、Devnet 和 Testnet 端点的可用性。您需要访问测试网络以进行开发和预发布。

为什么选择 OnFinality 的 Solana RPC?

OnFinality 提供可靠的 Solana RPC 端点,支持 Mainnet、Devnet 和 Testnet。我们的基础设施专为生产工作负载设计,具有低延迟和高可用性。无论您需要共享公共端点还是专用节点,OnFinality 都提供灵活的选项以满足您的规模需求。

立即使用免费 API 密钥开始体验 OnFinality 带来的性能和可靠性。

  • Test the exact request patterns your frontend and backend will use.
  • Confirm WebSocket access if you use subscriptions.
  • Check archive support if you need historical data beyond recent slots.
  • Verify rate limits and upgrade paths for sustained traffic.
  • Use devnet for staging and test SOL from the official faucet.
  • Monitor error rates, latency, and usage before full rollout.

常见问题

什么是 Solana API?

Solana API 是一个 JSON-RPC 接口,允许开发者与 Solana 区块链交互。它提供了查询网络状态、发送交易和订阅实时事件的方法。

如何获取 Solana API 密钥?

您可以从 OnFinality 等提供商处获取免费 API 密钥。只需注册并创建 API 密钥即可访问 Solana RPC 端点。

Solana Mainnet、Devnet 和 Testnet 之间有什么区别?

Mainnet 是使用真实 SOL 的生产网络。Devnet 供开发者使用免费 SOL 测试应用。Testnet 用于验证者测试和网络性能。

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

公共端点有速率限制且是共享的,不适合生产环境。请使用专用 RPC 提供商以获得可靠、可扩展的访问。

最常见的 Solana API 方法有哪些?

常见方法包括 getBalance、getTransaction、sendTransaction、getProgramAccounts、getLatestBlockhash 和 getSlot。

RPC 知识库

相关 RPC 内容

网络 RPCCelo

Celo 主网和测试网的 RPC 端点是什么?

Celo RPC 端点允许开发者连接到 Celo 区块链。主网链 ID 为 42220,测试网(Celo Sepolia)链 ID 为 11142220。存在免费的公共端点,但有速率限制;对于生产应用,请考虑使用如 OnFinality 等专用 RPC 提供商。...

网络 RPCEthereumSolanaPolygonBasepeaq多链

开发者应如何评估 Sepolia、Polygon、Solana Devnet、Base Sepolia 和 peaq 上的 RPC 端点?

选择合适的 RPC 端点对于 dApp 的性能和可靠性至关重要。本指南将介绍五个流行网络(以太坊 Sepolia、Polygon、Solana Devnet、Base Sepolia 和 peaq)的关键评估标准——速率限制、链 ID、测试网可靠性以及何时升级到托管或专用基础设施。无论您是在测试网上...

RPC 提供商选择多链

哪个RPC提供商覆盖的区块链最广?

不同的RPC提供商支持的区块链网络数量差异很大,但单纯的网络数量只是故事的一部分。OnFinality 提供对 100 多个网络的访问,包括 Ethereum、Solana、Polkadot、BNB Chain 以及许多测试网,并同时提供共享和专用节点选项。你应该关注那些为你实际需要的链提供深度支持...

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 节点,你应该如何运行或访问它们?

Arbitrum 节点是维护 Arbitrum 链(如 Arbitrum One 和 Arbitrum Sepolia)状态的软件客户端。你可以运行自己的全节点或归档节点来独立验证链,或者使用托管的 RPC 提供商来访问,而无需操作基础设施。本指南解释了节点类型、运营权衡,以及如何决定是自托管还是使...

网络 RPCOptimism

Optimism RPC 列表:公共端点、链设置和生产级提供商

本页列出了公共 Optimism RPC 端点、OP Mainnet 和 Optimism Sepolia 的链设置,以及选择生产级 RPC 提供商的指南。公共端点有速率限制,适合开发使用,而生产应用通常需要像 OnFinality 这样的托管提供商以确保可靠性和可扩展性。...

永远不用担心基础设施

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

开始