区块链数据分析1-如何查询token余额

前文[1]中已经介绍了区块链的公开数据,今天分享一下如何查询 eth 和 token 的余额

公开数据集

  • bigquery.crypto_ethereum

以我目前认知对数据集里个别表的理解:

  • tokens: 记录了token的address、name、供应量和小数位数等信息
  • amended tokens: 修正的tokens表
  • balances: 用户的最新eth余额 (截止etl完成的时刻)
  • transactions: eth链上,原生代币eth的转移和gas费的消耗记录,即我们在etherscan上看到的Transactions
  • token_transfers: erc20上,token的流转记录,即etherscan上的Erc20 Token Txns
  • traces:没有看过,猜测包含了transactions表里没有的记录,即etherscan上的Internal Txns
  • logs: event log,即etherscan中的Logs,没有细看看过,猜测大神们从这里,etl出不同dapp的event,从而实现对不同dapp的独立分析
  • blocks: 没有看过,猜测包含了矿工的地址信息

ETH的余额 和 每日余额

直接看大神开源的代码吧

  • Top Ethereum Balance

(ps.上面是top用户的余额,要所有人的话,把最后的order和limit删掉即可)

比较绕的处理是: 交易的gas费只向转出方收取,而矿工的地址,则会奖励gas费,即对应代码中

-- transaction fees debits
-- transaction fees credits

这两段。

另外还需要特殊处理的,是链上的一些记账失败的记录,大神使用了下面的代码来处理,我没有细究:

    where to_address is not nulland status = 1and (call_type not in ('delegatecall', 'callcode', 'staticcall') or call_type is null)
  • Every Ethereum Balance on Every Day

这段代码就太神了,感兴趣的自己品吧

token的余额

还是大神提供了开源代码

  • Token balance for any address on any block height

跳转到medium后,直接搜"Token balance for any address"就能找到。

代码逻辑很简单,就是用流进地址的token数量减去流出地址的token数量。然而事情并没有这么简单,我们也遇到了github issue上,别的同仁遇到的问题,即有个别的token,通过上述方式计算出来,数量为负。

我的理解,原因如下:

token_transfers是大神们,通过event log筛选出Transfer函数的调用记录而已。所以没有通过Transfer函数记账的token流转操作,如Deposit或者Withdrawal,就被忽略了。

对这种特殊的case,上面的issue提供了两种解决方案

其中一种是针对该token,编写个性化的sql来查询余额,另一种则是大神提供的etl解决方案,单独把contract对应的event都洗出来,再基于event表来统计。

Event ETL

如何对特定的合约event进行etl,这篇文章[2]有介绍,这里不再赘述。

我们测试了基于WETH的event表来进行token balance的统计,是正确的。

Web3

最后,如果是开发dapp需要查询实时余额,不需要如上方法,直接起一个eth的节点,节点里实时存储了balance,使用Web3封装好的函数get_balance来获取即可。

  • [1] 区块链公开数据集
  • [2] How to get any Ethereum smart contract into BigQuery (in 8 mins)

区块链数据分析1-如何查询token余额相关推荐

  1. 浅析『链上数据分析』 : 区块链 + 数据分析

    什么是链上数据分析? 01 区块链 02 链上数据 03 为什么要分析链上数据 04 数据分析思维 05 数据分析技能 06 数据分析工具 07 业务逻辑理解 什么是链上数据分析 链上数据分析,顾名思 ...

  2. 如何设计区块链项目的通证(token)模型

    2018年将是区块链的认知元年.过去一个多月,我自己对区块链与Token模式的认知发生了几次升级,不敢说认知有多深,但是想明白了之后我已经准备All in了. 这篇文章谈一谈我对Token模式的1.0 ...

  3. 面向区块链的高效物化视图维护和可信查询

    面向区块链的高效物化视图维护和可信查询 人工智能技术与咨询 来源:<软件学报> ,作者蔡 磊等 摘 要:区块链具有去中心化.不可篡改和可追溯等特性,可应用于金融.物流等诸多行业.由于所有交 ...

  4. 如何为区块链项目设计token机制

    大多数区块链开发者忽视了token设计的重要性,如何设计token机制,某种程度上决定了项目的未来走向.目前区块链行业已经形成基本共识,即带token的区块链项目大致分为公链和应用(DApp)两类,t ...

  5. 众说区块链:区块链应用场景之Token

    上期<众说区块链>讨论的主题是"区块链在食品安全溯源领域中的应用",围绕这个主题,范璟玮老师从基础的概念到以步步鸡为例的溯源事例就食品溯源这块和大家一起进行了详细的探讨 ...

  6. 区块链的token应该译作权符,而不是代币、通证

    区块链的token是一个核心词汇,最早译作代币,后来译作通证.其实都只是反应了token的一面,犹如盲人摸象还没有准确抓住这个词的内涵. 区块链的token应该怎么翻译,甚为重要,名不正则言不顺,容易 ...

  7. 获取浏览器窗口_全面认识区块链浏览器--看穿币圈的蒙蔽与欺骗!

    说起浏览器,想必我们都不陌生,可能立马想到IE.Chrome.360安全浏览器.极速.搜狗等,是的,这些都是我们熟知并经常使用的互联网浏览器,它们是我们浏览互联网信息的窗口. 区块链浏览器是什么?若和 ...

  8. 区块链相关数据报表_重磅|京东云区块链数据服务(BDS)正式开源

    今天,"区块链+京东云 大有可为"战略合作媒体沟通会在北京国家会议中心召开.会上,京东云与京东数科宣布在区块链技术服务领域深度合作,重磅发布了智臻链"云"建设规 ...

  9. 围观京东云,您有一份区块链技术礼包待查收!

    如今买东西都追求品质,时不时还要选购些境外商品,如此一来酷爱扫货的我们免不了关注货源情况以及运输流程,如何一手掌握个中变化无负担? 同样是精致追求,生鲜品质随时随地被大众关注,无论是带着计步器的鸡还是 ...

  10. 《迅雷链精品课》第三课:区块链主流框架分析

    上一节课我们学习了区块链的技术架构,系统地分析了区块链平台的6个层次:数据层.网络层.共识层.合约层.应用层.接口层.这节课我们将结合实际看看现在主流区块链项目的技术架构:思考我们在设计具体的业务架构 ...

最新文章

  1. 从RCNN到Fast RCNN,再到Faster RCNN的奥秘
  2. 一些技术社区关于博客内图片 markdown 源代码的字数统计
  3. noip2017考前整理(未完)
  4. 五年一贯制专转本计算机网络真题,金陵科技学院2017年五年一贯制专转本考试大纲(计算机网络基础)...
  5. Word英文句子之间空两格的方法,有截图
  6. html调试的时候弹出一直消失,页面中css调试和问题解决的一些经验总结
  7. cacti+nagios整合(未成)
  8. linux下mysql默认安装目录和常用命令
  9. 求1--100的和 Python3实现
  10. 一个函数中写多少行代码比较合适呢?
  11. 计算机网络学习 - UDS协议
  12. SVN 分支主干的合并
  13. 安卓小项目之刀刀人脸识别系统
  14. php实现幻灯片效果,flash幻灯片切换效果代码,超简单超实用
  15. 《大秦赋》热血霸气台词场景记录
  16. 椭圆检测 Arc Adjacency Matrix-Based Fast Ellipse Detection 代码和数据集使用教程
  17. ue4 开发动作游戏_ue4游戏开发虚幻4学习教程资源素材合集
  18. 如何将控制台程序发布为服务
  19. 个税继续教育证书有哪些 计算机,个税继续教育包括函授吗 个人所得税的继续教育主要包括哪些...
  20. NVT 异常开机log

热门文章

  1. 【科创人独家】云风:从创业到招安,自由的游戏玩家+务实的程序员
  2. 带农历的html日历插件,魔镜日历插件-可生成带农历的日历月历年历-CDR插件
  3. 升级wireshark支持openflow13抓包
  4. homotopy-同伦_拔剑-浆糊的传说_新浪博客
  5. 机器学习之十大经典算法(九)EM算法
  6. 塔望3W消费战略全案|绿力冬瓜茶:老品牌的升级保卫战
  7. CSS3 按钮 打钩
  8. Cherno C++ P61 C++的命名空间
  9. 如何评估互联网广告效果
  10. 字节跳动资深面试官亲述:面试应该注意哪些问题?