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

如何使用 Solana 浏览器 API 检查交易和账户?

摘要

Solana 浏览器 API 是驱动区块浏览器的 JSON-RPC 接口,允许开发者查询交易、账户和区块。本文解释了如何将其用于调试和分析,以及如何为生产工作负载选择可靠的 RPC 提供商。

快速决策指南:应该使用哪个 Solana API?

在编写任何代码之前,请确定您需要公共 RPC 端点、托管 API 服务还是专用节点。选择取决于您的工作负载:

  • 原型开发或轻量测试:公共端点如 https://solana.api.onfinality.io/public 适用于偶尔的请求。
  • 生产 dApp 或索引器:您需要一个可靠、可扩展的 RPC 提供商,具有高吞吐量和低延迟。OnFinality 的托管 Solana RPC 提供共享和专用选项。
  • 重分析或归档数据:考虑专用节点或支持归档数据的提供商。

对于大多数生产用例,托管 RPC 服务是合适的选择,因为它处理基础设施、扩展和故障转移。如果您需要完全控制或自定义配置,专用节点 可能更好。查看 RPC 定价 以比较选项。

什么是 Solana 浏览器 API?

Solana 浏览器 API 是像 Solana Explorer 这样的区块浏览器用来获取链上数据的 JSON-RPC 接口。它允许您查询交易、账户、区块和网络状态。开发人员使用它来构建仪表板、监控活动和调试应用程序。

该 API 本质上与标准 Solana RPC API 相同。术语“浏览器 API”通常指为浏览器功能提供支持的只读方法,例如 getTransaction、getAccountInfo 和 getBlock。这些方法是 Solana JSON-RPC 规范的一部分。

探索 Solana 数据的关键方法

以下是检查链上数据最有用的方法:

方法描述用例
getTransaction通过签名获取交易验证交易的状态和详细信息
getAccountInfo获取账户余额和数据检查代币余额或程序状态
getBlock通过 slot 获取区块分析区块内容和奖励
getSignaturesForAddress列出地址的交易签名显示账户的交易历史
getBalance获取账户的 SOL 余额快速余额检查
getLatestBlockhash获取最新区块哈希准备交易

这些方法是只读的,不需要发送交易。它们非常适合构建浏览器、分析工具和监控系统。

如何调用 Solana 浏览器 API

您可以使用任何 HTTP 客户端调用 Solana JSON-RPC API。以下是一个 curl 示例,用于通过签名获取交易:

curl https://solana.api.onfinality.io/public \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getTransaction",
    "params": [
      "2mN7Z1mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3",
      {
        "encoding": "jsonParsed",
        "maxSupportedTransactionVersion": 0
      }
    ]
  }'

将签名替换为浏览器中的真实签名。jsonParsed 编码提供人类可读的 JSON,而不是原始二进制。

在 JavaScript 中使用 API

对于 JavaScript 应用程序,您可以使用官方的 @solana/web3.js 库。以下是获取交易的示例:

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

const connection = new Connection('https://solana.api.onfinality.io/public');

const signature = '2mN7Z1mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3mQmZ3';
const tx = await connection.getParsedTransaction(signature, {
  maxSupportedTransactionVersion: 0
});

console.log(tx);

这将为您提供一个解析后的交易对象,其中包含账户密钥、指令和余额。

使用浏览器 API 时的常见陷阱

  • 速率限制:公共端点通常有速率限制。如果您发出许多请求,可能会收到 429 错误。对于生产环境,请使用具有更高限制的托管提供商。
  • 交易版本:较新的 Solana 交易可能使用版本 0。始终设置 maxSupportedTransactionVersion 为 0 以避免错误。
  • 编码:使用 jsonParsed 获取可读数据,但请注意,对于大型负载,它可能比 base58 慢。
  • Slot 延迟:交易后数据可能不会立即可用。查询前等待几秒钟。

如何为浏览器类工作负载选择 Solana RPC 提供商

如果您正在构建浏览器或分析工具,您需要一个能够处理高读取吞吐量的提供商。考虑以下因素:

因素检查内容为什么重要
吞吐量每秒请求数 (RPS) 限制高流量需要高 RPS
延迟不同区域的响应时间低延迟改善用户体验
可靠性正常运行时间历史和故障转移避免停机
数据保留归档数据可用性历史查询需要归档节点
WebSocket 支持实时订阅浏览器的实时更新

OnFinality 提供 Solana RPC 端点,支持 HTTP 和 WebSocket。您可以从共享端点开始,随着流量增长升级到 专用节点。

使用浏览器 API 进行调试

当交易失败时,浏览器 API 可以帮助您诊断问题。使用 getTransaction 检查错误消息和日志。例如,失败的交易将在响应中具有 err 字段。

您还可以使用 getSignaturesForAddress 查看账户的近期交易并检查其状态。这对于监控和调试很有用。

关键要点

  • Solana 浏览器 API 是用于读取链上数据的 JSON-RPC 接口。
  • 使用 getTransaction、getAccountInfo 和 getBlock 等方法检查数据。
  • 公共端点适合测试,但生产应用程序需要可靠的提供商。
  • 根据吞吐量、延迟、可靠性和数据保留选择提供商。
  • OnFinality 提供托管 Solana RPC 和专用节点 以实现可扩展的基础设施。

常见问题解答

Solana 浏览器 API 和 RPC API 有什么区别?

浏览器 API 本质上与 RPC API 相同。它指的是区块浏览器用于获取数据的只读方法。

我可以使用浏览器 API 发送交易吗?

不能,浏览器 API 是只读的。要发送交易,您需要通过 RPC API 签名并提交。

如何获取 Solana RPC 端点?

您可以使用公共端点,如 https://solana.api.onfinality.io/public,或在 OnFinality 注册托管服务。

OnFinality 是否支持 Solana devnet?

是的,OnFinality 提供 Solana devnet RPC 用于测试。

监控 Solana 交易的最佳方式是什么?

使用 WebSocket 订阅获取实时更新,或使用 getSignaturesForAddress 轮询 RPC API。

RPC 知识库

相关 RPC 内容

网络 RPCSolana

什么是面向生产级 dApp 的最佳 Solana RPC 提供商?

# 什么是面向生产级 dApp 的最佳 Solana RPC 提供商? 最佳 Solana RPC 提供商之所以重要,是因为 Solana 应用依赖稳定的端点访问来执行读取、交易、仪表盘和后端工作流。合适的提供商应匹配你的工作负载,支持你所需的网络和测试网,使限制透明可见,并在共享 RPC 不再够用...

网络 RPCEfinity

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

Solana 专用节点是一个单租户 RPC 端点,为您的应用程序提供对 Solana 节点的独占访问,避免共享基础设施的速率限制和嘈杂邻居效应。它非常适合需要一致性能的高吞吐量交易机器人、数据分析和生产级 dApp。本文解释了专用节点与共享节点和自托管节点的区别,并提供了实用的决策指南,帮助您为工作...

网络 RPCSORA

什么是 SORA 区块链项目,如何在其上构建?

SORA 区块链项目是一个基于 Substrate 构建的去中心化货币系统和 DeFi 平台,旨在创建一个超国家经济框架。它包括 XOR 代币、Polkaswap DEX 和 TBC(代币绑定曲线)。本文解释了该项目的架构、如何通过 RPC 端点连接到 SORA 网络,以及如何选择合适的基础设施来构...

网络 RPCBNB Chain

BNB智能链节点:它是什么以及如何可靠连接

BNB智能链节点是存储BSC状态并提供JSON-RPC请求的客户端。您可以自己运行一个节点,也可以使用托管的RPC提供商。本页解释了节点类型、如何连接以及如何选择与您的工作负载匹配的基础设施。...

测试网 RPCArbitrum

Sepolia Beacon RPC 端点:链设置、方法和调试

Sepolia beacon RPC 端点暴露了以太坊 Sepolia 测试网的共识层,让您可以查询验证者职责、最终性和 blob 数据。本页涵盖链设置、常见的 beacon API 方法,以及如何为您的测试网或 L2 开发选择可靠的端点。...

网络 RPCBittensor

Bittensor 主网、Lite 和测试网的 RPC URL 是什么?

Bittensor 为不同的网络层级提供多个 RPC 端点:Finney(主网)位于 `wss://entrypoint-finney.opentensor.ai:443`,Lite(EVM 兼容)位于 `https://lite.chain.opentensor.ai`,测试网位于 `https:...

永远不用担心基础设施

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

开始