以太坊数据查询与分析工具:以太坊浏览器Etherscan、ETHERQL

第八章


一、以太坊浏览器Etherscan

etherscan是一个在以太坊以及去中心化智能合约上的区块浏览器和分析平台。在其中我们可以很方便的查找、认证和检验以太坊区块链上发生的所有交易,包括智能合约的创建、调用、代币交易等。旨在辅助以增强区块链的透明性。

1、Ethersan的基本功能

  1. 交易查询:在BLOCKCHAIN一栏。
  2. 区块查询:
  3. 账户查询(ACCOUNT)。
  4. 代币查询(TOKEN)。

2、其他功能

  1. 相关图表数据(CHART):
    基本信息:交易历史折线图、地址增长折线图、以太币总量饼状图
    货币信息:以太币历史价格折线图、以太币供应量增长折线图
    网络信息:网络散列率增长折线图、区块难度增长折线图、待定交易队列折线图、交易费用柱状图
    区块链信息:区块数量和奖励柱状图、叔区块数量和奖励柱状图、区块平均大小柱状图、平均出块时间柱状图、平均Gas价格柱状图、平均Gas限制柱状图、日总Gas消耗柱状图、日区块奖励柱状图、Geth全节点同步数据总量增长柱状图、Geth轻节点同步数据总量增长柱状图
    以太坊域名服务信息:域名注册数量折线图
    挖矿信息:矿工出块数量占比饼状图、矿工挖出叔区块数量占比饼状图。

  2. 挖矿计算器:MISC一栏。

  3. 测试网络查询:Ropsten、Kovan、Rinkeby。

3、API

4、ENS域名查询

二、ETHERQL

LevelDB拥有极佳写入性能的进程内数据库,具有处理大量数据的能力。
但是levelDB支持查询接口极为有限,只能通过关键词对相关记录进行简单检索。查询性能差。不能很好满足区块链数可视化或者分析查询的需求。
针对此问题,EtherQL提出在区块链数据层上构建一层高效的查询层来解决区块链数据查询效率的问题。他支持一系列常用的分析查询操作,如分页查询和top-k查询。
为了同步最新的区块链数据,EtherQL设置一个区块链监听器来持续坚挺最新的区块数据变化,接收到区块链数据后,区块链监听器将放入缓存中,目的是解决区块链网络中的分叉问题。他将数据分为三种数据结构:区块、交易与账户。

1、同步管理器

为了处理这种状态不一致的问题且不降低系统的性能,同步管理器(Sync Manager)在区块链数据进行处理程序链之前先将其放入缓存中。因此,可以提前识别潜在的分叉情况,降低陷入分叉支链的机率。

2、处理程序链

分解和转换原始的区块链数据使得其可以存储入关系型数据库。以太坊更新Merkle树来更新最新的状态,而处理程序链则是更新数据库。不同之处在于,处理程序链会首先根据以太坊协议从交易执行结果中提取相应信息。
可将区块链分为三种数据类型:区块、交易、账户。对应三种不同的处理程序:

  • 将传入的区块链数据作为一个整体,保存区块结构的区块处理器
  • 跟踪包括当前区块数据中的交易列表,并保存列表中的交易信息的交易处理器
  • 更新账户状态变化的账户处理器。

3、持久化框架

EtherQL设计的初衷是为区块链构建一个中间件以提供高效的查询,因此,提供结构化查询支持的数据持久化框架(Persistance Framework)至关重要。
为了实现查询操作的灵活性和可扩展性,目前EtherQl底层使用了MongoDB。MongoDB是一个开源跨平台的NoSQL数据库,支持灵活的数据模式,并且可以方便的进行扩展。
数据持续化框架的中心是一组数据增删查改模版。

4、开发者接口

EtherQL提供两种类型的接口(Developer Interface),API和REST。API是查询接口的本地实现,REST提供RESTful服务的封装。
API模块公开4种类型的查询接口:以太坊支持的基础查询、以太坊客户端不支持的扩展查询、范围查询、top-k查询。
EtherQL将所有API封装成RESTful服务。

5、实现

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_53982314/article/details/124450104