{"content":{"title":"使用Dune Analytics制作个人资产看板","body":"## 前言\r\nDune Analytics是一个链上分析工具。你只需要会写简单的Sql语句，就能快速生成链上数据可视化看板。即使你以前从未使用过Sql，根据几个简单的示例，照葫芦画瓢也能应付大部分场景。本文的Dashboard链接放在文章末尾，欢迎fork！\r\n\r\n## 关键词\r\nDune看板、Sql查询、可视化看板\r\n\r\n## 简介\r\nDune Analytics是一个基于Web的数据分析平台。经过4轮融资，目前估值已达10亿美元。\r\n\r\nDune 的原理就是把区块链原始数据保存到Dune的数据库中。原始数据包含交易时间、转入、转出地址、交易金额、调用信息、合约事件、tx_hash 等数据。通常情况下，来自区块的信息经过几分钟的延迟后便被解析并填充到Dune的数据库中。\r\n\r\n用户在平台注册账号后，通过编写、执行SQL查询语句，就能从区块链数据仓库中查询出想要的数据，然后再对查询到的数据进行可视化，最终汇总而成Dashboard 面板。\r\n\r\n\r\n![最终效果](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/bY2cET7T63212af28eb8a.png)\r\n\r\n其实，Dune的操作界面还是符合日常操作习惯的，因此大家不要有畏难的心理。界面和Mysql的Navicat长的是差不多的。\r\n\r\n![Dune操作界面](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/24Eff8zP63212b07504f6.png)\r\n\r\n![Navicat操作界面](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/jGlUUlw563212b1be6fc6.png)\r\n## 开始使用\r\n\r\n### 注册用户\r\n\r\n>官网地址：https:\/\/dune.com\/browse\/dashboards\r\n\r\n免费用户只能并行运行3个查询语句，付费后最多并行运行6个查询。\r\n\r\n### 基本案例\r\n\r\n#### 1、欧皇共发送ETH数量\r\n```\r\nselect\r\n  sum(value \/ 1e18) as \"total\" -- value 字段的值换算为 ETH 单位\r\nfrom\r\n  ethereum.transactions\r\nwhere\r\n  \"from\" = '\\x356faDD245d35ff8F1a207aC83BE7EEa911abeEE' -- 交易的发出地址为 欧皇钱包\r\n```\r\n![image.png](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/Zx5Djn1v63212b2f01a74.png)\r\n#### 2、欧皇共收到的ETH\r\n```\r\nselect\r\n  sum(value \/ 1e18) as \"total\" -- value 字段的值换算为 ETH 单位\r\nfrom\r\n  ethereum.transactions\r\nwhere\r\n  \"to\" = '\\x356faDD245d35ff8F1a207aC83BE7EEa911abeEE' -- 交易的接收地址为 欧皇钱包\r\n```\r\n\r\n![image.png](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/bcjgmGdD63212b3c938ff.png)\r\n#### 3、欧皇钱包发送ETH按天统计\r\n```\r\nselect block_time as \"date\",\r\nvalue\/1e18 as \"value\" -- value 字段的值换算为 ETH 单位\r\nfrom ethereum.transactions\r\nwhere \"from\" = '\\x356faDD245d35ff8F1a207aC83BE7EEa911abeEE' -- 交易的发出地址为 V神钱包\r\nand value\/1e18 > 0.1 -- 转账金额 > 0.1 ETH\r\norder by \"block_time\" desc \r\n```\r\n\r\n\r\n![image.png](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/YnJhUPcC63212b59e715a.png)\r\n\r\n#### 4、欧皇每天发出的ETH累计求和\r\n```\r\nwith daily_eth as\r\n(\r\n    select day,\r\n    sum(\"total\") as daily_sum \r\n    from (\r\n        select value\/1e18 as \"total\", \r\n        date_trunc('day', \"block_time\") as day\r\n        from ethereum.\"traces\" \r\n        where \"from\" = '\\x356faDD245d35ff8F1a207aC83BE7EEa911abeEE' -- 从 V神钱包地址 发出的交易\r\n     ) as \"total_amount\"\r\n     group by day\r\n)\r\n-- 使用WITH创建一张中间临时表，然后再对临时表进行累加求和\r\n\r\nselect \r\nday, SUM(SUM(\"daily_sum\")) OVER (ORDER BY day)\r\nfrom daily_eth\r\ngroup by day\r\norder by day desc\r\n```\r\n\r\n![image.png](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/lkmPANtK63212b4b2e748.png)\r\n\r\n\r\n一些非常有用的表举例：\r\n- ethereum.transactions：以太坊上的所有交易\r\n- ethereum.logs：合约触发的以太坊事件的日志(例如: Transfer)\r\n- erc20.ERC20_evt_Transfer：发送通证时触发的所有转账事件\r\n- prices.layer1_usd：以分钟为单位的 ETH 和许多其他流行代币的价格表\r\n\r\n### SQL语法\r\nPostgreSQL 语法教程：\r\n>https:\/\/www.runoob.com\/postgresql\/postgresql-tutorial.html\r\n\r\n\r\n### Fork别人的仪表盘\r\n你可以在右侧的搜索栏中搜索特定项目上的仪表盘。然后fork它。\r\n\r\n\r\n![image.png](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/PutO9j3u63212b6b3a4c0.png)\r\nfork完成后，双击标题就能看到对应的sql语句。\r\n\r\n![image.png](https:\/\/img.learnblockchain.cn\/attachments\/2022\/09\/z8VqGJRW63212b7509986.png)\r\n\r\n直接站在巨人的肩膀上，这下简直无敌了，哈哈哈哈！！！\r\n## 参考文章\r\n- 个人资产看板\r\nhttps:\/\/dune.com\/ouhuang\/duneru-men-jiao-cheng\r\n- Dune入门教程\r\nhttps:\/\/twitter.com\/gm365\/status\/1525018161686675456\r\n\r\n- PostgreSQL WITH 子句\r\nhttps:\/\/www.runoob.com\/postgresql\/postgresql-with.html\r\n\r\n- 大神Dune Dashboard\r\nhttps:\/\/dune.com\/gm365\/lens"},"author":{"user":"https:\/\/learnblockchain.cn\/people\/6721","address":null},"history":null,"timestamp":1663118315,"version":1}