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”通常指为浏览器功能提供支持的只读方法,例如 getTransactiongetAccountInfogetBlock。这些方法是 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 接口。
  • 使用 getTransactiongetAccountInfogetBlock 等方法检查数据。
  • 公共端点适合测试,但生产应用程序需要可靠的提供商。
  • 根据吞吐量、延迟、可靠性和数据保留选择提供商。
  • 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 内容

RPC 提供商选择TON

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

专用 TON 节点是专为您的项目部署的全节点或归档节点,为您提供具有隔离计算资源的私有 RPC 端点。本文解释了共享节点和专用节点之间的区别、何时选择专用设置,以及如何评估生产工作负载的提供商。...

网络 RPCBNB Chain

Binance Smart Chain 开发者需要了解什么?

Binance Smart Chain (BSC) 是一条兼容 EVM 的区块链,提供低费用和快速出块时间。开发者可以使用 Solidity、Hardhat 和标准的以太坊工具来构建 dApp。本文涵盖链基础知识、RPC 端点设置、智能合约部署以及选择基础设施的关键考虑因素。...

网络 RPCMangata X

什么是 Mangata X,如何连接其 RPC?

Mangata X 是一个社区拥有的、基于 Kusama 上 Substrate 应用链构建的全链去中心化交易所(DEX),旨在最小化 MEV 并实现跨链交换。本页介绍 Mangata X 是什么、如何连接其 RPC 端点,以及如何评估在其上构建的基础设施选项。...

RPC 提供商选择Solana

Solana RPC 提供商应提供哪些高级分析 API?

Solana 上的高级分析需要能够处理高吞吐量数据提取、历史查询和实时流而不会降低应用程序性能的 RPC 基础设施。本文概述了评估 Solana RPC 提供商时需要考察的关键 API 能力,从 getSignaturesForAddress 和 getTransaction 到 WebSocket...

网络 RPCArbitrum

Arbitrum API:端点、方法及生产环境建议

Arbitrum API 允许开发者使用标准的以太坊 JSON-RPC 方法与 Arbitrum One 和 Arbitrum Nova 交互,完全兼容 EVM。本文涵盖链设置、常见 API 调用、提供商选择标准以及生产环境 dApp 的最佳实践。...

网络 RPCOptimism

Optimism 端点:链设置、连接和调试

Optimism 端点是 JSON-RPC URL,可让您的 dApp 或后端在 OP Mainnet 或 OP Sepolia 上读写数据。本文涵盖确切的链设置、如何通过 curl 或 ethers.js 连接,以及如何调试常见的端点故障。...

永远不用担心基础设施

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

开始