如何使用Dune构建Solana数据仪表板

  • Helius
  • 发布于 4天前
  • 阅读 225

本文深入探讨了如何在Dune平台上构建Solana区块链仪表板,介绍了Solana的高吞吐量所产生的数据,以及如何利用Dune分析和可视化这些数据。通过示例引导读者,作者详细介绍了Solana的账户模型、交易结构以及如何有效查询和分析交易,最终帮助用户有效利用这些数据进行决策。

Solana 的区块链是一个速度和可扩展性的强大工具,处理每秒数千笔交易。

这为分析师和开发者创造了大量数据——但要利用这些数据需要正确的工具。Dune 就是这样一个领先的 onchain 数据平台,可以将原始区块链数据转化为可操作的洞察和开发者 API。

在本指南中,你将学习如何在 Dune 上构建一个全面的 Solana 仪表板,利用实时指标、历史趋势和解码的程序数据。

理解 Solana 的数据量

Solana 的高吞吐量——通常超过 3000 笔交易每秒——生成了惊人的数据量。这包括从区块生产和交易日志到特定程序交互(如代币交换或 NFT 铸造)的一切。

Dune 以最低的延迟捕获 Solana 的实时活动。原始数据流,例如区块头和交易签名,会在一分钟内更新。例如,查询 solana.transactions 可以让你监控网络活动,例如在代币启动期间用户参与的激增。

在 Dune 平台上可视化这些数据非常简单。Dune 索引了 Solana 的整个历史,从其 2020 年的创世区块到最新的插槽。这使得分析长期趋势成为可能,例如总交易数量的增长(现已超过 3000 亿)或 DeFi 活动的季节性波动。例如,这个查询追踪了 自网络创立以来的累计交易,而另一个查询识别了 最早和最新的记录区块

与以太坊、BSC 或 Polygon 相比,Solana 的数据量因其高吞吐量而显得尤为突出。一项 并列比较 表明 Solana 在日常交易中的主导地位,尽管以太坊在费用和 DeFi 流动性方面仍然领先。

Solana 相对其他网络的交易

基础概念:Solana 的数据结构

让我们探讨 Solana 的账户模型、交易结构以及如何使用 Dune 分析 Solana 交易。

Solana 账户模型

Solana 的核心是其 独特的账户模型。区块链上的每一条数据都存储在账户中,包括程序逻辑、代币余额和可执行代码。以下是 Solana 账户的独特之处:

账户地址

从公钥或程序派生地址 (PDAs) 的种子生成的 32 字节标识符。例如,Raydium 流动性池地址是从代币铸造和其他参数生成的 PDAs。

数据存储

账户可以保存多达 10MB 的可执行字节码程序数据或 10KB 的状态信息在 PDAs 中。

所有权和租赁

账户必须持有 lamports(SOL 的分数)以支付原存储费用(租金),与其数据大小成比例。所有者字段指定控制该账户的程序或钱包。只有所有者可以修改其数据或扣除 lamports。一个可执行标志表明账户是否包含可执行代码。

作为一个实际例子,一个 SPL 代币账户存储其关联钱包余额data 字段中,而它的所有者是代币程序。

Solana 交易的结构

交易是与 Solana 程序交互的载体。每个交易包括:

  • 一个 签名(唯一标识符)和以 lamports 支付的费用
  • 一个或多个 指令(ixs),具体说明:
    • 要执行的程序(例如,Raydium 的交换功能)。
    • 读取和写入的账户(例如,代币库、用户钱包)。
    • 特定指令的参数(例如,交换金额、费用)。

交易的关键特征是:

  • 原子执行:交易要么完全成功,要么失败——没有部分状态。
  • 跨程序调用 (CPI):程序可以调用其他程序,从而创建嵌套指令。
  • 日志和错误:失败的交易包含错误消息,而日志捕捉运行时事件(例如,交换详情)。

在 Dune 上分析交易

Dune 的 solana.transactions 表提供详细的洞察:

  • block_slot: 处理交易时的插槽号。
  • fee: 交易费用,以 lamports 表示。
  • error: 失败原因(如果适用)。
  • accounts: 所有相关账户的地址。
  • log_messages: 发出的事件日志(例如,代币铸造)。

为深入检查,使用 solana.instruction_calls

  • outer_instruction_index: 指令在交易中的位置。
  • inner_instruction_index: 跟踪 CPI 层级。这是特定指令中的 inner_instruction 的位置,与 stack_height 不同。Dune 正在努力添加 stack_height
  • executing_account: 执行指令的程序。
  • data: 原始指令字节(十六进制编码)。

在 Dune 上浏览 Solana 数据

Dune 支持超过 150 个解码的 Solana 程序,包括 Raydium 和 Magic Eden 等主要协议。社区已构建超过 2000 个仪表板,涵盖从验证者性能到 meme 代币趋势的指标。新程序定期添加。用户可以通过 Dune 的网站 提交解码请求

Dune 将 Solana 数据分成三层:

1. 原始数据

solana.blockssolana.instruction_calls 这样的表提供对链上活动的未过滤访问。

2. 清理的数据

预处理过的抽象,例如代币价格或美元等价物,简化了分析。

3. 解码的数据

特定协议数据集(例如,dex.trades 用于 DEX 交换或 nft.trades 用于 NFT 销售)提供即插即用的指标。

对于资产跟踪,可以探索像 staking.actions 的表用于验证者活动或 prices.usd 的表用于代币价格。交易分析师可以利用 dex.trades 比较 Orca 和 Raydium 等平台之间的交易量。

幕后揭秘:Dune 如何处理数据

Dune 通过 Geyser 插件 获取 Solana 数据,这些插件将链上更新流式传输到其索引系统。从那里,使用程序 IDLs 解码原始数据,并组织成便于查询的表。要详细了解 Solana 的数据基础设施,请查看 Helius 关于 Solana 数据工具的指南

步骤:构建你的 Solana 仪表板

步骤 1:定义目标

首先确定关注领域。你是在分析 NFT 销售、DeFi 收益还是网络性能?在这个例子中,我们将构建一个跟踪每日 DEX 交易量的仪表板。

步骤 2:查询数据

前往 Dune 的查询编辑器,从 dex.trades 拉取交易数据:

SELECT DATE(block_time) AS date, SUM(amount_usd) AS volume
FROM solana.dex.trades
WHERE project = 'orca'
GROUP BY 1
ORDER BY date DESC;

这将获取 Orca 的每日交易量。保存该查询并将其可视化为柱状图。

步骤 3:组装和定制

创建一个新仪表板并添加你的图表。用附加小部件增强它,例如总交易计数器或按交易量排名的代币表。使用文本框注释趋势,例如由新代币发行驱动的激增。

查看这个 短视频系列 以完整了解如何在 Dune 上构建 Solana 仪表板。

高级分析小贴士

提示 1:结合原始和解码数据

如果一个程序未完全解码(例如,一个新的 NFT 市场),请使用 solana.instruction_calls 手动解析日志。然后,与解码的代币表交叉参考,以识别资产细节。

提示 2:优化速度

Solana 的数据量可能会减慢查询速度。

尽早按 block_slotblock_time 进行过滤,并对频繁访问的指标使用物化视图。

Dune Analytics 的分区列

提示 3:利用价格数据

通过将交易与 prices.usd 连接,将代币金额转换为美元。这为波动性资产的交易量提供了背景信息。

最后的思考

Dune将 Solana 的海量数据转化为结构化、可访问的资源。通过掌握其数据集和工具,你可以发现推动决策的洞察——无论你是在优化协议还是跟踪市场趋势。

欲进一步阅读,请查看 Solana 的 Geyser 插件架构 并观看 Solana 数据 YouTube 播放列表 中的视频教程。

  • 原文链接: helius.dev/blog/how-to-b...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 1
收藏 2
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Helius
Helius
https://www.helius.dev/