今天,“区块链+京东云
大有可为”战略合做媒体沟通会在北京国家会议中心召开。会上,京东云与京东数科宣布在区块链技术服务领域深度合做,重磅发布了智臻链“云”建设规划,同步上线了“区块链防伪追溯”、“区块链数字存证”两款“京东自营”的京东云市场SaaS应用。同时京东云还重磅推出国内首款区块链数据在线分析服务产品——BDS服务。
区块链由不少区块按时间顺序串联起来构成的,在每一个区块中存储交易、帐号等相关信息。每一个区块就像一本纸帐本,上面记录了不少人天天的流水帐。若是咱们想查看最近一年有多少笔大额支出,那咱们须要将最近一年的全部帐本搬出,一本一本从头至尾进行翻看,找出相应的记录。也能够说每一个区块就像一本纸质书,若是咱们想从一堆纸质书中按某些关键字进行查找,除了从头至尾进行翻看以外,就别无它法了。区块链上数据都是离散化的数据,须要更加有效的数据组织方式以便于作进一步的查询与分析。git
随着区块链技术的火爆,整个行业可谓是百家争鸣,有诸如BTC,ETH,XRP等耳熟能详的公有链项目,也有Fabric,Enterprise Ethereum Alliance,Corda R3等众所周知的联盟链项目,固然还有一些私有链项目。不论是公有链也好,联盟链、私有链也罢,每一个链都是一个一个独立的信息孤岛,它们在技术上各有特点,在底层数据模型上也有不少相同之处。每一个区块链项目就像一个一个手机App,咱们能够统计分析出每一个项目用户总量、日活、月活、留存、使用率、用户余额、平均交易金额等通用指标。github
如何将多个区块链项目的信息孤岛链接起来,将无序、离散的区块数据整合成有序、可方便查询的关系型数据,将链上透明、共识、可信的数据和信息聚合在一块儿,提供分析、建模服务,赋能产业互联网发展,是区块链技术产业价值的重要体现,也是京东云BDS产品的目标。数据库
京东云区块链数据服务正在打造一个行业标准的区块链的BI+数据搜索服务,可是区块链项目的底层区块存储结构各不相同,须要对不一样的项目的数据进行解析与整理,咱们深知单单够咱们的力量是不足以对接业界繁多的项目,所以咱们开源了区块链数据服务(BDS),让更多的开发者与社区能够参于其中,接入更多公有链、联盟链、私有链等区块链项目。区块链数据服务将以区块链数据搜索引擎形式聚合全部区块链相关的内容,最大化区块链上可信数据价值,方便社区能在BDS上进行区块链数据的一站式查询。缓存
如今,京东云区块链数据服务(BDS)正式对外开源!
🔗https://github.com/jdcloud-bds/
产品演示地址能够访问BDS服务。restful
目前在开源项目组织 https://github.com/jdcloud-bds/ 中, 京东云BDS团队开源了 Blochain Node 和 Splitter 两个服务模块, Blochain Node 模块优先将 BTC Node 代码开源了出来,以后咱们还会不断开源其余的全节点服务,预计在 2019 年 Q3 季度会陆续将:ETH,XRP,ETC,LTC 等 20+ 条主流公有链开源出来,欢迎各位开发者按期关注京东云区块链团队的开源项目。架构
固然,除了开源 Blochain Node 和 Splitter 两个服务模块以外,京东云BDS团队还会陆续将其余服务模块也开源出来。机器学习
有人会问若是只是开源 Blochain Node 和 Splitter 两个服务模块,是否是没法搭建出相似 京东云区块链数据服务 的效果。固然能够。ide
经过上面的系统架构图能够发现,Blochain Node 和 Splitter 两个是整套服务的核心模块,其余模块都是基于这两个模块来设计的,因此开源了这两个核心模块,区块链数据库服务的基本架子就已经存在了,剩下的就是锦上添花的事情了。学习
具体搭建方式,详见本篇文章的 “本地搭建” 介绍。区块链
针对京东云区块链产品部开源的 Blochain Node 和 Splitter 两个服务服务,开发者均可以申请成为 Contributor。
若是您想基于bds-btc项目进行 bug 修复或者新增一些新特性,请给咱们的项目提个 issue,确保咱们知道您准备作这个事情,避免其余开发者的重复开发。以后您只须要基于 https://github.com/jdcloud-bd... 项目新建一个分支,并基于这个分支进行代码编辑,同时请确保文档和测试用例都是完整的,完成后提交 PR 便可,项目的 Contributor 会进行代码审核,审核经过后会进行代码合并。
若是您是想将新区块链项目接入BDS平台,好比:Grin、Libra。请先给咱们发邮件,邮箱地址:jdcloud-bds@jd.com:,确保咱们知道您准备作这个事情,避免其余开发者的重复开发。以后咱们会在项目组织 https://github.com/jdcloud-bds/ 下新建一个项目仓库,您只须要基于新建的项目仓库新建一个分支,并基于这个分支进行代码编辑,同时请确保文档和测试用例都是完整的,完成后提交 PR 便可,项目的 Contributor 会进行代码审核,审核经过后会进行代码合并。
Contributing 详细文档可分别参考
若是您是开发者,有兴趣一块儿参与进来,欢迎来一块儿为区块链的开源社区作一份贡献。
接下来,让咱们来一块儿看看,若是在本地搭建一套简易环境,达到相似 京东云区块链数据服务 的效果。
部署方式
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 服务,购买地址请戳:JCS For PostgreSQL。
当数据库服务运行起来以后,你须要手动建立一个库名,这个库名以后在运行 BDS(Splitter)服务的时候会用到。
BTC 运行环境初始化,参见 build-unix
环境初始化好后,开始进行源码的编译、运行
编译源码
1 ./autogen.sh 2 ./configure 3 make 4 make install
运行 BTC 全节点
消息队列这里采用了 Kafka
1 ./usr/local/bin/bitcoind -kafka -kafkaproxyhost=[kafka 代理的ip地址] -kafkaproxyport=[kafka 代理的访问端口,默认是 8082] -kafkatopic=btc -datadir=[数据目录]
当运行了 BTC 全节点,你能够发如今 Kafka 服务中你收到了一些数据,这就是区块链全节点的新块数据。
BDS(Splitter) 运行环境初始化,须要安装 go 的运行环境,参见 go install
环境初始化好后,开始进行源码的编译、运行
运行 BDS(Splitter)服务
当 BDS(Splitter)跑起来以后,你会发如今你的 PostgreSQL 数据库服务以前新建的库名下新建了一些表,过了一会,会发现这些表都有不一样程度的新数据插入,这些数据就是 BDS(Splitter)服务从消息队列 Kafka 中消费的全节点的新块数据,进行解析以后插入的。
这样就完成了从非结构的区块链数据到结构化的数据转换,只须要整套服务一直运行着,那么在 PostgreSQL 数据库服务就实时存储着 BTC 全节点的全部数据信息。
若是要查询 PostgreSQL 数据库中的数据必须登陆数据库服务,执行 SQL 命令来查询,不够直观。
全部推荐能够安装 Garafna 服务,安装教程参考 Garafna 官网 文档进行搭建。
经过 Garafna 服务就能够预置好查询 PostgreSQL 的 SQL 语句,实时查看你须要的数据结果,并以图表的形式来展示,更加形象,直观。
一个新的区块链项目对接区块链数据服务开发只有两步:
点击“阅读原文”查看京东云区块链数据服务(BDS)项目介绍,也欢迎访问:🔗https://github.com/jdcloud-bd...
推荐阅读
欢迎点击“京东云”了解更多精彩