区块链数据分析基础工具 - BlockETL

BlockETL软件包用于比特币区块链数据分析中的数据抽取/转换/加载(ETL),可以从原始的比特币区块文件中抽取区块与交易数据并加载入通用SQL数据库,以便于后续的数据分析处理,非常适合区块链数据分析相关的毕业设计或课题研究项目。BlockETL官方下载地址:http://sc.hubwiz.com/codebag/blocketl-java/

1、软件包概述

BlockETL软件包的主要特性如下:

  • 直接读取原始区块文件,抽取速度快
  • 将原始区块和交易数据加载至SQL数据库,便于后续的区块链数据分析
  • 支持多流水线并行处理,可自己控制并发流水线数量
  • 结构设计清晰,代码便于扩展

BlockETL软件包采用Java开发,支持Windows、OSX和Linux等多种操作系统,当前版本1.0.0,主要类/接口及关系如下图所示:

BlockETL软件包的目录组织及主要代码文件清单参见官网说明:http://sc.hubwiz.com/codebag/blocketl-java/

2、软件包使用方法

在开始使用软件包之前,请先安装好gradle 6、jdk 8和所选择的SQL数据库。下面以MySQL为例说明使用过程:

2.1 初始化数据库/表结构

进入软件包的sql目录,使用ddl.sql脚本创建数据库和基础表结构:

mysql -u root -p < ddl.sql

上述命令会要求交互输入root用户的密码,也可以使用其他有足够权限的用户名/密码。成功执行后,上述命令将创建数据库bitcoin_analysis和基础数据表:

  • blocks:比特币区块头数据表
  • transactions:比特币交易头数据表
  • tx_inputs:比特币交易输入数据表
  • tx_output:比特币交易输出数据表

2.2 抽取流程配置

首先根据自己的基础环境配置,修改demo/src/App.java文件中的区块目录和数据库连接信息并保存:

String dataDir = "…";					           //区块数据文件目录
String dbUrl = "jdbc:…. ";               //SQL数据库连接URL  
String dbUser = "…",                     //SQL数据库用户名
String dbPassword = "…";                 //SQL数据库密码
String network = "mainnet";              //主网:mainnet,测试网:testnet

2.3 数据抽取与加载

进入软件包的demo目录,使用gradle rungradle.bat run命令启动演示应用,可以看到屏幕输出的数据加载进度:

软件包的demo应用除了在屏幕输出日志,也会记录到当前目录下的app.log文件中,可以利用此文件排查故障。

要长时间无人值守运行,可以使用gradle distZip打包后再执行编译好的程序。

2.4 数据分析

一旦完成区块链数据的抽取并加载到SQL数据库中,就可以进行数据分析了。

为了提高数据加载速度,在之前的ddl.sql中没有定义数据表的索引,因此在进行数据分析之前,首先要使用index.sql来建立数据表索引以加速统计查询的执行。进入sql目录执行如下命令完成索引构建,根据要求输入密码:

mysql -u root -p < index.sql

索引建立之后,就可以利用SQL进行数据分析了。预置的stats.sql提供了几个基本的分析,可以作为参考。

官方下载地址:BlockETL - 汇智网

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链大本营

最新报告:2019年加密货币10大发展趋势

数字资产管理公司CoinShares昨日发布了加密货币趋势报告。与顶级研究公司、机构和企业合作,他们在研究中指出了塑造这一领域的重要趋势。

8420
来自专栏终身开发者

从数据结构的角度上看区块链到底是什么

自从最近央视提出要发展自主区块链技术的号召以来,区块链领域又骚动了起来。程序猿是学习能力很强的群体,了解新技术是日常工作生活的一部分。作为一个从事区块链相关产品...

10130
来自专栏湛卢工作室

杂项及密码基础

Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。 相比Base64,Base58不使用数字"0",字母大写...

6520
来自专栏AI机器思维

区块链的另一个核心武器—分布式共识解决人性信任危机

大自然教会了我们,蜂群是最好的分布式共识案例,也是分布式共识协议的实践者。善待自然,从自然中学习,人类将能够更好的发展人类自己。区块链核心技术中的另一个秘密武器...

6010
来自专栏Zack说码

什么拜占庭将军问题?比特币是如何解决的?——深入浅出分布式共识性(一)

CAP 讲的是分布式一致性,而这次我们来聊聊分布式共识性。很多开发者一直以为一致性与共识性是同一个东西,但两者讲的是完全不同的东西。

5230
来自专栏百味科研芝士

用了这么久的SCI-Hub,你真的了解它吗?

业内不少人士认为,由于大多数科学研究都是由政府用税金资助的,付费学刊让科学成为了一个需要纳税人与科学家双重付费的产品。

8020
来自专栏sealyun

libra尝鲜,没赶上比特币能不能上这趟车

在开始玩libra测试网络之前先来画画libra白皮书中的重点,比如币怎么产生,怎么交易等。

7410
来自专栏一番码客

区块链基础之哈希函数

hash函数的作用hash算法的安全性 常见的Hash算法 MD5 SHA1 SHA256 哈希碰撞钱包的...

11320
来自专栏一番码客

分布式系统和一致性

5620
来自专栏一番码客

余文波:区块链在九大领域的应用

今天一番给大家推荐一个讲座录音,给想要进入区块链领域的人一个参考,区块链的主要应用有哪些。下面的文字稿是一番通过语音识别转成的文字,然后做了部分校正,文字校对还...

19920

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励