链上数据分析并不难

by June 2022-11-22

区块链链上数据分析是从数据出发来解读行为,再到意图直至交易心理。其中,行为可以是交易者的行为,可以是合约的行为,也可以是市场的行为。对交易者意图的判断和长期的观察可以得出其交易心理,从合约行为可以更精准地了解合约创建者(项目方)的意图,代码不说谎。最后,对某些特定行为和意图的分析可以得出市场整体的心理状态和心理预期。而链上数据的核心就是交易数据,那么,对交易数据进行深入的分析,就可以得到我们想要的结果。

不过,通常来说,链上交易瞬息万变,全天24小时永不停歇,每分每秒都可能发生重大的变化,因此,静态的链上交易数据分析毫无意义,必须搭建一个能够随时随链上交易数据变化快速得出分析结果的动态大数据分析系统才能够正确得到链上交易的深入洞察。但是,搭建这样一个链上数据的大数据分析系统通常是一个复杂繁琐的工程,需要投入较长的时间和较多的资源才能完成。而本文则介绍如何通过智领云的在线云原生大数据应用开发平台BDOS Online较为简单和快速的完成这个复杂的项目。在本文中,我们以较为流行的以太坊交易作为例子,阐述如何在BDOS Online上开发一个链上数据分析系统。

一、以太坊数据解析

以太坊的交易有三种类型:

  • 常规交易:从一个钱包到另一个钱包的交易。 
  • 合约部署交易:没有“to”地址的交易,数据字段用于合约代码。 
  • 执行合约:与已部署的智能合约进行交互的交易。 在这种情况下,“to”地址是智能合约地址

常规交易是指仅涉及以太坊原生代币(native token)Ether的转移,不涉及合约的调用以及以太坊中其它token的交易。常规交易中的数据可以大概分为四大块:交易哈希、时间等归于交易索引(index),提供定位交易的信息。交易金额具体是指Ether转移的数量,交易的发送方(sender)和接收方(receiver)互为本次交易中的交易对手。Gas费的消耗是本次交易发送方需要承担的交易成本。

涉及智能合约的交易除了上述数据以外,还会多出三块内容:

(1) 以太坊执行交易的内部过程(内部交易);

(2) 代币转账的结果(代币转账);

(3) 合约执行的入参(输入数据)

在一个合约源码中,不仅会定义合约方法(function),还会定义事件event abc()和提交事件emit abc(),执行过提交的事件就会被记录在日志中,最后日志会被记录在一个调用合约的交易的receipt函数中。

以太坊交易的数据获取方式

对于以太坊上的交易,我们需要同时获取实时交易的数据以及历史数据,而这些数据都存储在交易日志以及上述的合约日志中,对于这两种数据的获取,需要构建批流合一的数据采集模式。

这些日志中的字段是这样定义的:

那么,在了解了以太坊交易中的数据以及各个字段的意义之后,下面我们就可以进入以太坊链上数据分析项目的数据概要设计了。

二、以太坊项目模块设计

该项目需要设计的模块如下表所示:

三、以太坊项目数据架构

下面,我们来看项目的数据架构,如下图所示:

各层实现的功能如下:

  • 数据采集层: 平台从区块链节点获取原始链上数据
  • 数据处理层: 平台将原始数据以流式处理或批次处理的方式进行数据抽取、转换和加载。流式处理中,实时原始数据被源源不断地输入并被持续处理,通常意味着数据延迟低,分析结果时效性更高;而批次处理虽然数据延迟会稍高,分析结果时效性稍低,但更适用于大容量的数据处理。
  • 数据存储层:经过处理后的数据会根据平台方预先定义的格式存储进数据集的各数据表中以待后续使用。
  • 数据整合层:存储的数据会被聚合运算。计算可以是根据预先设定好的指标来进行的(metrics computation),也可以阶段性的(periodic)或是根据设定好的条件被触发的(event-driven aggregation)等。
  • 数据分析层:运算完成的结果被实时地报告、输出。对于个人用户而言,我们主要在数据分析层与链上数据分析平台进行交互,提供Business Intelligence报告界面,以及主题可视化图表,同时提供主题分析处理完善后的好的数据API接口

四、以太坊链上数据分析的难点

区块链提供的是账本的完整性,数据统计分析的能力较弱,而大数据则具备海量数据存储技术和灵活高效的分析技术,能够极大提升数据的价值和使用空间。二者的结合,即,链上数据分析,是一个新兴的技术领域。链上数据分析的重点与难点是挖掘账户/地址之间的关联关系。区块链上形成的是一个非常复杂的网络状数据,再加上区块链的匿名性,深度的链上数据挖掘是十分困难的,需要用到大规模网络分析和机器学习等方法。

直接查询区块链来求得问题答案是非常耗时耗力的,为了让链上数据能够被快速检索,当前主流的链上数据分析平台会将索引得到的原始链上数据,经过一系列处理后,存入由平台负责更新和管理的数据仓库(data warehouse)中。当用户在追踪交易动态,或在查看可视化分析时,用户对所谓“链上数据”的查询,实际上是在查询由项目方中心化控制的数据库而非区块链本身。

链上数据分析平台的数据仓库架构大致如下:

  • 数据采集层: 平台从区块链节点获取原始链上数据,部分平台会接受第三方提供的数据源,还有的平台(如Footprint Analytics)支持用户上传链下数据来辅助最终的数据分析。
  • 数据处理层: 各平台将原始数据以流式处理或批次处理的方式进行数据抽取、转换和加载。流式处理中,实时原始数据被源源不断地输入并被持续处理,通常意味着数据延迟低,分析结果时效性更高;而批次处理虽然数据延迟会稍高,分析结果时效性稍低,但更适用于大容量的数据处理。
  • 数据存储层:经过处理后的数据会根据平台方预先定义的格式存储进数据集的各数据表中以待后续使用。
  • 数据整合层:存储的数据会被聚合运算。计算可以是根据预先设定好的指标来进行的(metrics computation),也可以阶段性的(periodic)或是根据设定好的条件被触发的(event-driven aggregation)等。
  • 数据分析层:运算完成的结果被实时地报告、输出。

但是,如果采用传统方式来开发这个链上交易数据分析系统,单单搭建数据仓库的架构就需要耗费数周时间,而且还需要购买大量的软硬件资源,再加上系统的配置和调优以及数据分析系统的开发,没有数月的时间是干不来的。

而采用BDOS Online,我们只需注册一个账号,就可以立即上手链上数据分析系统的开发。BDOS Online是智领云自主研发的一款云原生DataOps大数据应用开发平台,旨在提供一款轻量级的产品,打破数据烟囱,进行全局的数据应用资产管理,助力协同大数据开发、多用户的统一授权鉴权及数据安全管理,量化大数据平台的ROI,赋能企业数字化转型。用户可以用最低成本在线上即时拥有大数据开发整套能力及工具体系。

在BDOS Online上开发大数据应用与在传统大数据平台上开发大数据应用,主要具有以下优势:

省时间:开箱即用。节省搭建环境时间,无需装各种组件,无需申请各类账,各种丰富大数据组件工具随点随用,交互使用零成本;

标准化:标准化产品满足碎片化需求。实现DataOps全流程,不同角色的开发环境相互解耦,任一人员均可利用碎片化时间推进任务进展;

随需扩展:按需集成功能,随业务规模扩展。云原生编排,k8s自动化调度,初期分配很少资源,验证可执行路线后,资源扩展便捷;方便对不同区块链数据源进行扩展;

快速落地:边规划,边处理问题,双向补足,不冲突。顶层设计及具体实现可同步进行,变验证边调整整体流程,边调整整体流程边实现各步骤完善,快速迭代;

高安全:满足个人和企业多租户需求,不同用户在数据和应用使用上互不影响,支持将数据通过API接口及页面等多种形式提供。

五、用BDOS Online构建以太坊项目

在BDOS Online 上制作数据项目,是一个典型的数据中台型解决方案,从数据采集到数据处理再到数据服务,最后到制作数据应用全部都可以在BDOS Online一个平台上完成,同时,还能够对数据项目进行有效的编排,并能通过数据流水线进行意见启动。

构建以太坊链上数据分析项目,不需要构建前期的复杂的大数据应用开发环境,只需要在BDOS Online上注册一个账号,之后,按照数据采集-数据处理-数据分析-数据应用-数据展现的步骤,即可轻松开发出一个可以媲美商业软件的以太坊数据分析的应用。不过,本文中所提供的示例仅仅只是提供了一些基本的功能,如果需要更加复杂的分析功能,可以在后期项目迭代中随时添加。下图是本文提供的示例项目所勾选的功能,其他未勾选的功能可以作为后期项目的迭代选项。

下图是该项目在BDOS Online上的主页:

项目的流水线调度:

六、项目亮点及效果展示

总结来说,在BDOS Online上构建以太坊项目具有以下亮点:

  • 在BDOS Online上可以白盒可见数据的采集-清洗-转换-展示-应用落地的全过程
  • 在开发场景下商业产品可能会需要不菲的购置成本,在BDOS Online上可以通过模板和清洗的开发过程自己进行搭建
  • 只要在BDOS Online注册后,即可直接进行项目的开发,而无需搭建复杂的大数据应用开发环境,后期还可以对项目进行迭代建议,共建项目迭代

下面,是该项目生产的应用的效果展示:

首页

交易详情

区块详情

主题分析

最后,给出该示例项目生成的应用的链接,大家可以在PC上点击试用:

https://2141a98a-a399-54bd-aa38-61bae65e29ae-0.online.linktimecloud.com/#/home

如果大家对使用BDOS Online开发大数据应用项目感兴趣,欢迎您通过以下链接注册BDOS Online,免费获取28天畅享使用权,您也可以扫描下面二维码,加入BDOS Online中国用户群,与中国的BDOS Online用户以及智领云的技术大咖在线交流。

注册链接(请使用PC注册):

https://bo.linktimecloud.com/#/auth?action=register&utm_source=Chain

BDOS Online中国用户群:

留言

评论

${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}} · ${{item.date.slice(0, 10)}} 回复

暂时还没有一条评论.