业内首发 | 区块链数据服务 - BDS
区块链数据服务(Blockchain Data Service,BDS)是京东云区块链产品部发推出的,其将区块链的链式、非结构化数据通过技术手段进行结构化存储,实时同步到高性能数据仓库中。
用户可以通过区块链数据查询工具,实现简单的条件查询和复杂的 SQL 查询,从而助力基于区块链数据的创新企业快速起步。
区块链数据服务具有以下特性:
● 丰富性:涵盖了 BTC、ETH、EOS、LTC、XRP、BCH 等几十个知名区块链项目,自定义了涉及用户、交易、区块等 100+ 独家数据指标,联网即可查询链上实时数据,即开即用,方便快捷。
● 便捷性:提供了一个交互式的数据可视化 BI 工具,支持通过点击和拖拽的交互方式进行条件查询,可实时生成各类数据报表、图形化界面。
● 专业性:支持标准 SQL 查询语句,可轻松实现复杂的查询逻辑。
京东云的 BDS 是国内首家提供区块链数据在线分析服务的产品。
产品背景
近两年随着区块链技术的兴起,整个行业可谓是百家争鸣,有诸如 BTC,ETH,XRP 等耳熟能详的公有链项目,也有 Fabric,Enterprise Ethereum Alliance,Corda R3 等众所周知的联盟链项目。
不管是公有链也好,联盟链也罢,其实一个个都是独立的信息孤岛,数据和信息无法在彼此之间流通。在当今数据为王的互联网时代,如何将这些区块链的数据和信息整合到一起,并能方便的利用当前业界已经相对成熟的数据分析工具来针对区块链数据进行分析和建模,成为了京东云产品部一直在思考的一个问题。
最终,京东云产品部秉承产品设计初衷,推出了区块链数据服务这款产品。
产品架构图
区块链数据
在 区块链数据 方面,由于大部分的公有链全节点都部署在海外,所以在国内的环境下部署全节点同步数据经常会出现同步失败的情况。京东云区块链产品部依托京东云的强大基础能力,针对每条独立的公链,在海外部署了多个区块链全节点来确保实时同步公链数据。
我们观察发现,目前市值排名前三的虚拟货币分别为 BTC,ETH,XRP,这三者中 BTC 全节点所占的存储空间是最少的,目前其全节点存储空间为 200 GB,而 ETH 全节点的存储空间已经接近 3 TB,全节点存储空间最大的当属 XRP,目前已经接近 10 TB,一般的物理服务器已经无法存储这边大的数据量。
在进行公有链的非结构化数据分析的时候,最初我们采用了公有链全节点自身暴露的接口,通过 RPC 调用查询链上原始数据,这种方式虽然便捷,但是如下问题:
数据时效性:全节点同步到的 block 数据,需要持久化到磁盘上之后,才能通过 RPC 接口获取;
性能损耗:全节点响应 RPC 请求,需要读取磁盘的数据,会有 IO 损耗,同时处理所有的外部请求需要消耗 CPU;
综合考虑之后,我们直接通过修改了公有链全节点源码,在全节点同步到 block 数据的时候,就直接将数据推送给大数据分析平台,从而确保了数据的时效性。
自定义数据
在 自定义数据 方面,京东云区块链产品部结合了 AI,网络爬虫等技术手段进行了创新,产生了我们独有的基础数据。
由于区块链自身的匿名性特性,其实无法知道区块链上每个地址的真实归属。京东云区块链产品部通过网络爬虫获取互联网上的区块链相关的所有信息,结合链上的交易行为,通过 AI 技术进行数据分析,针对地址进行标注,定位地址的归属情况。
大数据分析平台
在 大数据分析 方面,基于区块链数据和自定义数据,京东云区块链产品部经过长期的研究、分析、计算,原创了很多有意义的独家数据指标。这些数据指标除了交易金额,交易次数,活跃地址,新增地址等一些基础的指标外,还有地址分类,市值价值比,用户留存等高级的指标。
数据分析不仅有实时的数据分析,也有离线定时执行的数据分析。比如目前进行地址分类的时候,针对每天新增的地址,是需要结合全量历史地址数据的聚类判断,这项数据指标我们目前是采用离线分析方式,每天定时跑数据聚合任务,目前光进行每天新增地址的分类,大概需要耗时 2 ~ 3 个小时;同时可以预见未来随着数据量的增加,数据聚合的耗时也会相应增加。
因此,京东云区块链产品部依托京东云的基础计算能力,通过数据分析集群服务,预先计算了 100+ 个基础和高级数据指标。
举个例子,我们来看看 btc_statistics_day_transaction 的表结构信息
btc_statistics_day_transaction
按天分析交易相关数
| 字段 | 类型 | 定义 |
|---|---|---|
| id | INT | 自增ID |
| timestamp | INT | 时间戳 |
| value_day_consume | DOUBLE | 币天销毁 |
| tx_rate | DOUBLE | 交易速率 |
| tx_count | INT | 交易次数 |
| tx_vin_avg | DOUBLE | 交易输入平均值 |
| tx_vout_avg | DOUBLE | 交易输出平均值 |
| tx_size_avg | DOUBLE | 交易空间大小平均值 |
| tx_value_sum | DOUBLE | 交易金额总和 |
| tx_value_avg | DOUBLE | 交易金额平均值 |
| tx_fee_avg | DOUBLE | 交易手续费 |
| tx_size_fee_avg | DOUBLE | 每KB交易手续费 |
| tx_value_without_hot_address | DOUBLE | 排除热门地址的交易金额 |
| tx_value_without_long_chain | DOUBLE | 排除长链交易的交易金额 |
| block_trade_count | INT | 大额交易数量 |
| block_trade_sum | INT | 大额交易总金额 |
| address_count_sum | INT | 地址总数 |
| address_count_new | INT | 新增地址数 |
| active_address_count | INT | 活跃地址数 |
| address_vin_vout_avg | DOUBLE | 交易地址交易次数平均值 |
| address_tx_value_avg | DOUBLE | 交易地址交易金额平均值 |
| active_percent | DOUBLE | 地址活跃率 |
| store_rate | DOUBLE | 存储率 |
| ratio_of_market_value | DOUBLE | 市值价值比 |
| freshness | DOUBLE | 新鲜度 |
| dormant_address | INT | 休眠地址数 |
| dead_address | INT | 死亡地址数 |
| wake_up_address | INT | 苏醒地址数 |
| reborn_address | INT | 复活地址数 |
其中其实有不少有意思的数据指标,比如:
● 复活地址:表示此地址长期未产生交易,然后今天突然产生交易了;如果当天出现了大量复活地址,其实可以间接说明用户开始活跃了。
● 地址活跃率:表示产生交易的地址占总地址数的比例,通过这个指标可以看整体市场的活跃度,此值越高,市场越活跃。
● 存储率:表示未交易的虚拟货币占总虚拟货币供应量比例,这个指标体现了虚拟货币在市场上的流通情况,此值越低,虚拟货币的流通率越高。
区块链数据 BI 工具
在 区块链数据 BI 工具 方面,提供了一个交互式数据可视化 BI 工具,通过简单的点击,拖拽就可以生成你想要的数据报表,同时也支持通过修改数据可视化展现方式,将数据报表转成柱状图、折线图、饼图等各种图形化界面。
数据报表示例:BTC 地址表
如果你有一定的 SQL 基础,也可以自己编写一些复杂的 SQL 命名,实现表与表之间的关联查询,从而更直观的进行数据分析对比。
表关联查询示例:BTC 交易数据表和 BTC 交易输入数据表
针对每个使用者,此工具支持自定义数据面板,可以将查询出来的数据报表、数据图形化界面记录到数据面板中,同时针对数据面板中的数据支持自定义刷新时间,实时更新,这样就可以避免每次想看数据的时候都需要重新进行一次查询。
数据面板示例:JDCloud Example
应用场景
在 应用场景 方面,因为有了区块链数据,可以基于此数据做各种各样的应用服务,举几个简单的场景:
可以做基于区块链的运营解剖,分析某个公有链的运行情况,基于这些数据,可以进行公有链评级;
可以做交易图谱分析,通过分析链上数据,生成交易图谱,可以分析是否存在通过虚拟货币进行洗钱,非法集资等违法行为;
可以做商业洞察,通过各项数据指标,进行分析对比,进行机器学习,可以预测虚拟货币未来的发展趋势,判断其未来走向。
产品小结
就像京东云提供公有云服务,给所有用户提供最基础的计算、存储、网络服务,京东云区块链产品部一直致力于区块链底层技术的相关研究,针对公有链进行最基础数据提取、分析服务,致力于服务所有基于区块链数据进行创新的企业或个人,大大降低准入门槛。
在未来,我们计划将开源区块链数据服务,从而让更多的开发者可以参数于进来,大家一起来进行公有链的基础数据提取、分析,从而可以接入越来越多的公有链数据,甚至可以接入联盟链的数据、私有链的数据。将区块链数据服务打造成一个区块链的 Google 搜索引擎,所有区块链相关的内容都可以在这里很便捷地查询到。
京东云区块链产品部始终沿袭了京东云 GOOD 文化:
● Growth mindset - 成长心态
● Obsessed with customer - 拥抱客户
● Open source & Open minded - 开源包容
● Data driven - 数据驱动

欢迎点击“链接”了解更多精彩内容
业内首发 | 区块链数据服务 - BDS的更多相关文章
- 如何将Bitcoin比特币区块链数据导入关系数据库
在接触了比特币和区块链后,我一直有一个想法,就是把所有比特币的区块链数据放入到关系数据库(比如SQL Server)中,然后当成一个数据仓库,做做比特币交易数据的各种分析.想法已经很久了,但是一直没有 ...
- 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google
摘要: 作为此次Gartner报告中唯一上榜的中国科技公司,阿里云获得六个评判维度的最高分,排名第二 近日,知名调研机构Gartner发布了全球领先公共云厂商区块链服务能力报告,作为唯一上榜的中国科技 ...
- 正本清源区块链——Caoz
正本清源区块链 说明:以下内容整理自Caoz的<正本清源区块链>,如有不妥,请联系我修改或删除. 简介 不讨论炒币!不讨论炒币!不讨论炒币! 本课程内容分为两部分: 第一部分,烧脑篇,介绍 ...
- 各大知名区块链交易所链接及API文档链接
区块链交易所链接 火币网(Huobi):https://www.huobi.br.com/zh-cn/ API文档:https://github.com/huobiapi/API_Docs/wiki ...
- Factom(公证通)--基于区块链的存证系统
Factom这个Solution在2014年的时候就已经推出了,现在已经2018年了,我才来写这一篇分析文章可能有些迟了,但是它是十分具有参考价值的.因为现阶段来开区块链虽然炒得火热--养猫.养狗.草 ...
- 以太坊开发DApp入门教程——区块链投票系统(一)
概述 对初学者,首先要了解以太坊开发相关的基本概念. 学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...
- 如何用区块链技术解决信任问题?Fabric 架构深度解读
阿里妹导读:区块链技术,随着比特币的兴起而为大家所知.但是具体到技术本身,大家相对熟悉的几个词可能是“数据不可篡改”.“公开链”.“分布式数据”.“共识机制”等. 这篇文章将抛砖引玉,通过深度解读Hy ...
- [51CTO]区块链在美国:10个案例、10个问题和5个解决方案
区块链在美国:10个案例.10个问题和5个解决方案 近日,美国国际战略研究中心(CSIS, Center for Strategic and International Studies)发布报告< ...
- 区块链,Ethereum-Wallet
https://blockchain.info/charts/transactions-per-second https://slock.it/ https://en.wikipedia.or ...
随机推荐
- Biu一Biu--GDB
gcc常见编译选项 ** -c **:只激活预处理.编译和汇编,也就是生成obj文件 ** -S **:只激活处理和编译,把文件编译成汇编代码 ** -o **:定制目标名称,缺省的时候编译出来的可执 ...
- Django--评论功能实现和用户登录
1.确定实现评论功能的方式 1.第三方社会化评论插件(有言.多说.网易云跟帖等) 优点:可以直接用,紧急时开发快 缺点:评论存储在第三方,第三方挂了就不弄用 2.Django评论库 django-co ...
- centos下将系统预置yum源更换为阿里云源
参考:http://mirrors.aliyun.com/help/centos?spm=5176.bbsr150321.0.0.d6ykiD 步骤1:备份/etc/yum.repos.d/下的Cen ...
- window下mysql-proxy简单使用
mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server.它使用mysql协议,任何使用mysql-clie ...
- 三、jsx简化教程
1)使用 JSX 的好处 1.提供更加语意化且易懂的标签 与html对比 <!--HTML写法--> <form class="messageBox"> & ...
- ACM-售货员难题
题目描述:售货员的难题 某乡有n个村庄(1< n < 20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0 < s < 1000)是已知的,且A村到B村与B村到 ...
- Day 19:Properties配置文件类、打印流(printStream) 、 编码与解码
Properties(配置文件类): 主要用于生产配置文件与读取配置文件的信息. Properties要注意的细节: 1. 如果配置文件的信息一旦使用了中文,那么在使用store方法生成配置文件的时 ...
- Mysql: if 结构
if结构 语法 if 条件1 then 语句1; elseif 条件2 then 语句2; ... else 语句n; # 可以不写 应用场合:应用在begin end 中 SEL ...
- HTTP TCP UDP ICMP IP ARP 协议详解(10.15 第二十一天)
ARP协议 ARP(Address Resolution Protocol)协议 地址解析协议 把网络层的IP地址翻译成在数据链路层寻址的48位硬件地址(MAC地址) 在OSI模型中ARP协议属于链路 ...
- 65.ORM查询条件:gte,gt,lte和lt的使用
1. gte: 代表的是大于等于,英文全称为:great than equal.举例:找到文章id大于等于3等文章,示例代码如下: 定义模型的示例代码如下: from django.db import ...