当前位置:微头条 > 科技 > 正文

重磅 | 京东云区块链数据服务(BDS)正式开源!_进行

2019-07-17 22:24:28 9

原标题:重磅 | 京东云区块链数据服务(BDS)正式开源!

重磅 | 京东云区块链数据服务(BDS)正式开源!_进行

作者 | 京东云BDS团队

区块链由很多区块按时间顺序串联起来构成的,在每个区块中存储交易、账号等相关信息。每个区块就像一本纸账本,上面记录了很多人每天的流水账。如果我们想查看最近一年有多少笔大额支出,那我们需要将最近一年的所有账本搬出,一本一本从头到尾进行翻看,找出相应的记录。也可以说每个区块就像一本纸质书,如果我们想从一堆纸质书中按某些关键字进行查找,除了从头到尾进行翻看之外,就别无它法了。区块链上数据都是离散化的数据,需要更加有效的数据组织方式以便于做进一步的查询与分析。

重磅 | 京东云区块链数据服务(BDS)正式开源!_进行

随着区块链技术的火爆,整个行业可谓是百家争鸣,有诸如BTC、ETH、XRP等耳熟能详的公有链项目,也有Fabric、Enterprise Ethereum Alliance、Corda R3等众所周知的联盟链项目,当然还有一些私有链项目。不管是公有链也好,联盟链、私有链也罢,每个链都是一个一个独立的信息孤岛,它们在技术上各有特色,在底层数据模型上也有很多相同之处。每个区块链项目就像一个一个手机App,我们可以统计分析出每个项目用户总量、日活、月活、留存、使用率、用户余额、平均交易金额等通用指标。

重磅 | 京东云区块链数据服务(BDS)正式开源!_进行

展开全文

如何将多个区块链项目的信息孤岛连接起来,将无序、离散的区块数据整合成有序、可方便查询的关系型数据,将链上透明、共识、可信的数据和信息聚合在一起,提供分析、建模服务,赋能产业互联网发展,是区块链技术产业价值的重要体现。

当下,京东云区块链数据服务正在打造一个行业标准的区块链的BI+数据搜索服务,但是区块链项目的底层区块存储结构各不相同,需要对不同的项目的数据进行解析与整理,基于此,京东云开源了区块链数据服务(BDS),以望让更多的开发者与社区可以参与其中,接入更多公有链、联盟链、私有链等区块链项目。区块链数据服务将以区块链数据搜索引擎形式聚合所有区块链相关的内容,最大化区块链上可信数据价值,方便社区能在BDS上进行区块链数据的一站式查询。

GitHub 地址:https://github.com/jdcloud-bds/。

BDS 架构图

重磅 | 京东云区块链数据服务(BDS)正式开源!_进行

BDS 的开源计划

目前在开源项目组织 https://github.com/jdcloud-bds/ 中, 京东云BDS团队先后开源了Blochain Node 和 Splitter 两个服务模块, Blochain Node模块优先将BTC Node代码开源了出来,此后,京东云BDS团队表示,“还会不断开源其他的全节点服务,预计在 2019 年 Q3 季度会陆续将:ETH,XRP,ETC,LTC 等 20+ 条主流公有链开源出来。”

当然,除了开源 Blochain Node 和 Splitter 两个服务模块之外,其他的服务模块也将会陆续开源出来。不过当前仅是基于 Blochain Node 和 Splitter 两个服务模块,也能搭建出类似京东云区块链数据服务的效果。

通过上面的系统架构图可以发现,Blochain Node 和 Splitter 两个是整套服务的核心模块,其他模块都是基于这两个模块来设计的,所以开源了这两个核心模块,区块链数据库服务的基本架子就已经存在了,剩下的就是锦上添花的事情了。

本地搭建

接下来,让我们来一起看看,如果在本地搭建一套简易环境,达到类似京东云区块链数据服务的效果。

部署方式

安装 confluent 和 kafka

confluent 是一个 proxy 服务,提供了 restful 接口供外部调用,并将结果写入到 kafka 中。

安装 kafka

参考 kafka 官网文档进行搭建,运行 kafka 服务的时候需要修改下其配置文件:<path-to-kafka>/config/server.properties 添加以下内容项:

安装 confluent

参考 confluent 官网文档进行搭建,下载压缩包文件并解压运行 Confluent REST Proxy 服务,但是在运行之前需要修改下其配置文件:<path-to-confluent>/etc/kafka-rest/kafka-rest.properties 添加以下内容项

运行数据库服务

数据库这块其实可以不用自己本地搭建,其实可以直接使用云数据库服务,如京东云云数据库 RDS 服务。

当数据库服务运行起来之后,你需要手动创建一个库名,这个库名之后在运行 BDS(Splitter)服务的时候会用到。

安装 BTC 全节点

BTC 运行环境初始化,参见 build-unix

环境初始化好后,开始进行源码的编译、运行。

编译源码

1./autogen.sh

2./configure

3make

4makeinstall

运行 BTC 全节点

消息队列这里采用了 Kafka

1 ./usr/ local/bin/bitcoind -kafka -kafkaproxyhost=[kafka 代理的ip地址] -kafkaproxyport=[kafka 代理的访问端口,默认是 8082] -kafkatopic=btc -datadir=[数据目录]

当运行了 BTC 全节点,你可以发现在 Kafka 服务中你收到了一些数据,这就是区块链全节点的新块数据。

安装 BDS(Splitter)服务

BDS(Splitter) 运行环境初始化,需要安装 go 的运行环境,参见 go install

环境初始化好后,开始进行源码的编译、运行。

运行 BDS(Splitter)服务

当 BDS(Splitter)跑起来之后,你会发现在你的 PostgreSQL 数据库服务之前新建的库名下新建了一些表,过了一会,会发现这些表都有不同程度的新数据插入,这些数据就是 BDS(Splitter)服务从消息队列 Kafka 中消费的全节点的新块数据,进行解析之后插入的。

这样就完成了从非结构的区块链数据到结构化的数据转换,只需要整套服务一直运行着,那么在 PostgreSQL 数据库服务就实时存储着 BTC 全节点的所有数据信息。

安装 Garafna

如果要查询 PostgreSQL 数据库中的数据必须登录数据库服务,执行 SQL 命令来查询,不够直观。

所有推荐可以安装 Garafna 服务,安装教程参考 Garafna 官网 文档进行搭建。

通过 Garafna 服务就可以预置好查询 PostgreSQL 的 SQL 语句,实时查看你需要的数据结果,并以图表的形式来展现,更加形象,直观。

总结

一个新的区块链项目对接区块链数据服务开发只有两步:

点击阅读原文,查看京东云区块链数据服务(BDS)。

标签: DatakafkaNodeQueue信息区块区块链数据数据库数据服务模块进行重磅项目

标签列表
热门文章