今天,“区块链+京东云 大有可为”战略合作媒体沟通会在北京国家会议中心召开。会上,京东云与京东数科宣布在区块链技术服务领域深度合作,重磅发布了智臻链“云”建设规划,同步上线了“区块链防伪追溯”、“区块链数字存证”两款“京东自营”的京东云市场SaaS应用。同时京东云还重磅推出国内首款区块链数据在线分析服务产品——BDS服务。

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

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

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

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

现在,京东云区块链数据服务(BDS)正式对外开源!

?https://github.com/jdcloud-bds/

产品演示地址可以访问BDS服务。

架构图

  • Blockchain Node:改造后的全节点服务,可将新块数据同步到 Queue 中;

  • Exchange:交易所上区块链相关数据;

  • Social Network:社交媒体上区块链相关数据;

  • Queue:消息队列服务;

  • Splitter:负责从 Queue 读取区块链数据,并将数据结果写入到 Data Warehouse 中;

  • Data Process Framework:实时数据分析模块,会进行一些实时数据指标计算,并将计算结果写入到 Data Warehouse 中;

  • Machine Learning:机器学习模块,会针对区块链地址信息通过机器学习技术进行训练,分析,并将分析结果写入到 Data Warehouse 中;

  • Data Warehouse:数据仓库服务,负责结构化存储区块链相关数据;

  • Cache Service:数据缓存服务,存储一些热数据,提高响应速度;

  • Event Service:事件订阅服务,支持针对特殊的事件进行订阅设置,发送邮件或短信;

  • Blockchain BI Service:数据可视化服务;

  • API Service:API 接口服务,支持通过 API 方式获取数据;

  • Report Service:数据报告服务,自动生成数据报表;

开源计划

目前在开源项目组织 https://github.com/jdcloud-bds/ 中, 京东云BDS团队开源了 Blochain NodeSplitter 两个服务模块, Blochain Node 模块优先将 BTC Node 代码开源了出来,之后我们还会不断开源其他的全节点服务,预计在 2019 年 Q3 季度会陆续将:ETH,XRP,ETC,LTC 等 20+ 条主流公有链开源出来,欢迎各位开发者定期关注京东云区块链团队的开源项目。

当然,除了开源 Blochain NodeSplitter 两个服务模块之外,京东云BDS团队还会陆续将其他服务模块也开源出来。

有人会问如果只是开源 Blochain NodeSplitter 两个服务模块,是不是无法搭建出类似 京东云区块链数据服务 的效果。当然可以。

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

具体搭建方式,详见本篇文章的 “本地搭建” 介绍。

成为 Contributor

针对京东云区块链产品部开源的 Blochain NodeSplitter 两个服务服务,开发者都可以申请成为 Contributor。

如果您想基于bds-btc项目进行 bug 修复或者新增一些新特性,请给我们的项目提个 issue,确保我们知道您准备做这个事情,避免其他开发者的重复开发。之后您只需要基于 https://github.com/jdcloud-bds/bds-btc 项目新建一个分支,并基于这个分支进行代码编辑,同时请确保文档和测试用例都是完整的,完成后提交 PR 即可,项目的 Contributor 会进行代码审核,审核通过后会进行代码合并。

如果您是想将新区块链项目接入BDS平台,比如:Grin、Libra。请先给我们发邮件,邮箱地址:jdcloud-bds@jd.com:,确保我们知道您准备做这个事情,避免其他开发者的重复开发。之后我们会在项目组织 https://github.com/jdcloud-bds/ 下新建一个项目仓库,您只需要基于新建的项目仓库新建一个分支,并基于这个分支进行代码编辑,同时请确保文档和测试用例都是完整的,完成后提交 PR 即可,项目的 Contributor 会进行代码审核,审核通过后会进行代码合并。

Contributing 详细文档可分别参考

  • bds Contributing Guide

  • bds-btc Contributing Guide

如果您是开发者,有兴趣一起参与进来,欢迎来一起为区块链的开源社区做一份贡献。

本地搭建

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

部署方式

  • confluent and Kafka - Queue

  • PostgreSQL - Data Warehouse

  • BTC Node

  • BDS(Splitter)

  • Grafana - Blockchain BI Service

安装 confluent 和 kafka

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

安装 kafka

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

  • message.max.bytes=1048576000

安装 confluent

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

  • max.request.size = 1048576000

  • buffer.memory = 1048576000

  • send.buffer.bytes = 1048576000

运行数据库服务

数据库这块其实可以不用自己本地搭建,其实可以直接使用云数据库服务,这里推荐是用京东云云数据库 RDS 服务,购买地址请戳:JCS For PostgreSQL。

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

安装 BTC 全节点

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

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

编译源码

1  ./autogen.sh2  ./configure3  make4  make install

运行 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)服务

  1. 设置项目的路径 $GOPATH/src/github.com/jdcloud-bds/bds/

  2. 执行 go build -v github.com/jdcloud-bds/bds/cmd/bds-splitter 编译项目;

  3. 根据 /config/splitter_example.conf 配置模板新建一个配置文件 splitter.conf,修改 splitter.conf 的内容,按提示设置对应的配置内容项,包括但不限于 btc 全节点信息,kafka 相关信息等;

  4. 执行 ./bds-splitter -c splitter.conf 运行 BDS(Splitter)服务;

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

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

安装 Garafna

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

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

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

总结

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

  1. 修改相应对的全节点服务,能够将区块数据写入到消息队列。

  2. 从消息队列中取出相应的数据写入到数据仓库。


推荐阅读

业内首发 | 区块链数据服务 - BDS


区块链相关数据报表_重磅|京东云区块链数据服务(BDS)正式开源相关推荐

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

    作者 | 京东云BDS团队 区块链由很多区块按时间顺序串联起来构成的,在每个区块中存储交易.账号等相关信息.每个区块就像一本纸账本,上面记录了很多人每天的流水账.如果我们想查看最近一年有多少笔大额支出 ...

  2. 重磅!京东云区块链数据服务(BDS)正式开源

    区块链由很多区块按时间顺序串联起来构成的,在每个区块中存储交易.账号等相关信息.每个区块就像一本纸账本,上面记录了很多人每天的流水账.如果我们想查看最近一年有多少笔大额支出,那我们需要将最近一年的所有 ...

  3. 你了解京东云区块链吗?点开有详情!

    如今时代,区块链技术无疑成为最炙手可热的创新科技之一,已由最初少部分人的狂欢逐渐演变为在各个领域拥有广阔发展前景的优势技术,主要得益于其去中心化.安全加密.不可篡改等显著特点. 京东云作为国内为数不多 ...

  4. 技术沙龙|京东云区块链进校园-京东云深圳大学线下沙龙分享回顾

    在刚刚结束的京东云&深圳大学技术沙龙活动中,多位京东云的技术大咖针对京东云BDS产品技术细节.开源计划,与深圳大学的同学和参会者进行了深入探讨,干货满满反响深刻,获得了在场同学与参会者的一致好 ...

  5. 区块链相关数据报表_区块链数据服务 - BDS

    区块链数据服务(Blockchain Data Service,BDS)是京东云区块链产品部发推出的,其将区块链的链式.非结构化数据通过技术手段进行结构化存储,实时同步到高性能数据仓库中. 用户可以通 ...

  6. 华为云城市峰会深圳站 · 华为云区块链助力金融创新

    2019年6月5日,华为云城市峰会深圳站于深圳君悦酒店火热开启,1000多名来自全国各地的开发者和合作伙伴齐聚一堂,会场人声鼎沸,座无虚席,本次峰会聚焦数字经济赋能城市生活,共同探讨云计算在城市.政府 ...

  7. 腾讯云区块链邀您参加2020腾讯全球数字生态大会

    产业区块链 · 云上会 9月9日-11日,腾讯在产业互联网领域的年度重磅大会--"腾讯全球数字生态大会" 将以全新的线上"云上会"形式盛大开启.区块链作为腾讯产 ...

  8. 真假难辨?来看看华为云区块链怎么搞定

    怎么证明你是你? 你的合同是真合同? 被骗?防被骗? 怎么证明自己的证据是真实的? 跑路?人间蒸发? 怎么还原事实维护自己的合法产权? 云+5G的普遍应用与流量平面化,促使数字化资产内容爆发式增长,数 ...

  9. 《华为区块链白皮书》重磅发布 华为云区块链服务BCS专注4大类9小类应用场景

    导读:之前,董小姐试水做区块链手机,华为声称不做区块链手机.吃瓜群众们一定都在腹诽,技术领先的华为老大哥怎么这么沉得住气?其实,智者深沉,如古井静波,看似平静无波,实则内里激流翻涌,深不可测.2018 ...

最新文章

  1. 【高并发】你敢信??HashMap竟然干掉了CPU!!
  2. 转: 从微信的故障谈谈服务可用性
  3. 近两年跟踪速度较快的算法小结
  4. 奇怪吸引子---一个奇妙的四维混沌吸引子
  5. 智能市场变革,独辟蹊径的机器人营销
  6. 7 FI配置-财务会计-定义字段状态变式(总账科目组)
  7. 【英语学习】【Level 07】U07 Stories of my Life L4 Not my best moment
  8. Linux内存管理:ARM64体系结构与编程之cache(1)
  9. highcharts.js两种数据绑定方式和异步加载数据的使用
  10. 《AutoCAD 2014中文版实用教程》一一2.2 圆类命令
  11. 金融壹账通加马美国研究院“壹账通记忆增强网络”获对话系统学术竞赛佳绩...
  12. 10个优秀个android项目,精选|快速开发
  13. [OfficeExcel] OfficeExcel2010 第18讲 Lookup--浅谈数组
  14. 保洁阿姨看完都会了!15个经典面试问题及回答思路,手慢无
  15. addClass函数
  16. 如何开展兼容性测试?兼容性测试有什么作用?
  17. 利用Spire实现对Word模板的指定文字替换(文字、图片、表格)
  18. HTTPS证书文件格式转换
  19. sht30使用心得自述
  20. java基础知识精华总结集合

热门文章

  1. 【MSDN文摘】使用自定义验证组件库扩展 Windows 窗体: Form Scope
  2. 程序员是吃青春饭的吗?未来发展前途如何?
  3. Android 优秀博客汇总
  4. ActionScript接收socket服务器发送来的数据
  5. 在html页面提交值到动态页面时出现中文值为乱码的解决方案
  6. MSN Editor 0DAY
  7. W3C DOM操作之创建新节点
  8. 怎么取消html的原始属性,回归原始,尽量使用XHTML标签默认属性
  9. Nacos源码DistroConsistencyServiceImpl
  10. MyBatis 插件原理与自定义插件-猜想