IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 以太坊数据导出 -> 正文阅读

[区块链]以太坊数据导出

以太坊数据导出工具Ethereum-ETL分析

在搭建了一个以太坊全节点后,可以进一步获取和整理链上的数据,包括区块,交易,token,和转账等信息。Ethereum-ETL就是一个封装了解析以太坊数据结构并以结构化表的形式输出的工具。
GitHub地址

结构化数据输出

以下表以csv格式输出

  • blocks区块表 块信息
  • transactions 交易表 交易信息
  • tokens token表 该工具目前输出721和20标准的token
  • token_transfers token交易表
  • receipts 回执表 特定交易的结果回执,包含打包信息,如果是部署合约交易则带合约地址
  • logs 包含触发的内外部交易产生的事件日志
  • traces 交易trace及详细信息

使用方式

pip3 install ethereum-etl #python3版本

客户端指令支持单表和全表输出

ethereumetl export_all -s 0 -e 8000000 -b 4000000 -p localhost:8545 -o 800output -w 20

-s -e分别指定需要同步的开始和结束区块
-b 以hdfs的文件形式输出,此参数指定每个分区的区块数量
-p 以太坊节点的地址
-o 目录名
-w 线程池数量
参数源码

在这里插入图片描述

工作流程

cli包作为客户端接受用户指令作为入口

入口

开始执行各个表的具体任务,export_all_common使用组合模式触发各个表的job

job

拿到具体表对象后使用使用模板类base_job执行表对象的流程
start默认开启一个csv的输出流对象,除此之外,可以构建Kafka,postgres等多种输出sink

模板方法

根据batch数量和json-rpc签名构造请求对象,再对传入的客户端地址发出请求

在这里插入图片描述

用每个表的mapper解析response结果

在这里插入图片描述

最后执行输出流对象的export_item方法

输出

以上是普通的区块和交易表导出,过程比较简单

token交易获取

通过eth_getFilterLogs来获取指定区块,再利用token_transfer_extractor工具类通过解析topic数组来抽取token转账的交易

在这里插入图片描述

receipts和logs的获取

先是从transaction导出文件中获取hash列表,写入缓存中

在这里插入图片描述

再创建receipts和logs的job对象ExportReceiptsJob,所以,这两张表的导出和前面的交易表是有先后顺序的

在这里插入图片描述

contracts和tokens的获取

合约则从之前的receipts_file中利用extract_csv_column_unique方法获取合约列表,eth_getCode方法获取合约的bytecode

在这里插入图片描述

判断合约类型的方法

市面上所有的符合eip标准的合约都可以称之为代币token,主流的有erc20和erc721分别集成eip20和eip721,另外还有erc1155,用作为道具等创建场景的token类型,每种标准体现出的是具体的函数签名,只要一个合约的abi体现出相应的签名则能说明其token类型。
本项目分别解析其abi中是否有721和20的签名来区分两种token类型

在这里插入图片描述

tokens表的获取逻辑和合约的类似

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:17:05  更:2022-09-04 01:17:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/23 0:46:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计