重磅 | 区块链数据服务(BDS)正式开源

 

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

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

e60c9ff893c8ca8db9dac6b33ebb6a6405b.jpg

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

6e7c50093d6a19c935eaf4b4c6cb097d353.jpg

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

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

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

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

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

架构图

3c55d820af17225bcc34c2ad502ded14650.jpg

  • 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 Node 和 Splitter 两个服务模块, Blochain Node 模块优先将 BTC Node 代码开源了出来,之后我们还会不断开源其他的全节点服务,预计在 2019 年 Q3 季度会陆续将:ETH,XRP,ETC,LTC 等 20+ 条主流公有链开源出来,欢迎各位开发者定期关注京东云区块链团队的开源项目。

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

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

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

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

成为 Contributor

针对京东云区块链产品部开源的 Blochain Node 和 Splitter 两个服务服务,开发者都可以申请成为 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 服务的时候需要修改下其配置文件:<path-to-kafka>/config/server.properties 添加以下内容项

  • message.max.bytes=1048576000

安装 confluent

参考 confluent 官网文档进行搭建,下载压缩包文件并解压运行 Confluent REST Proxy 服务,但是在运行之前需要修改下其配置文件:<path-to-confluent>/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.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)服务

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)项目介绍,也欢迎访问:?https://github.com/jdcloud-bds/点个Star~


推荐阅读

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


 

 

 

 

转载于:https://my.oschina.net/u/4090830/blog/3075680

矿大雷达分析软件,reflex雷达分析软件,意大利雷达分析软件,GSSI雷达分析软件,GresWin雷达分析软件 前 言 0 1 数据处理分析系统设计 1 1.1 系统功能的介绍 1 1.2 数据处理常规流程 2 2 数据的操作功能 3 2.1 数据文件管理 3 2.1.1单文件管理模式 3 2.1.2项目管理模式 4 3 数据的输出 14 3.1数据格式转换输出 14 3.2数据剖面的打印输出 14 3.2.1打印设置 14 3.2.2打印预览 15 3.2.3打印屏幕 15 3.2.4按道打印 16 3.3 数据剖面的位图输出 17 3.3.1屏幕位图输出 17 3.3.2按道位图输出 18 4 雷达剖面及其数据的编辑功能 21 4.1 数据图形的缩放 21 4.1.1 数据图形的放大 21 4.1.2缩小 21 4.1.3还原 22 4.2删除数据 22 4.3 数据清零 23 4.4 结束标记 23 4.5图形压缩变换 24 4.6里程编辑及管理 24 4.6.1.里程编辑 24 4.6.2标记管理 26 5 剖面的显示控制 32 5.1 显示参数设置 32 5.2 剖面信息查看 36 5.2.1工具栏 36 5.2.2状态栏 36 5.2.3单道信息 36 5.2.4显示道数 37 5.2.5 显示标记 38 5.2.6显示时间(M) 38 6 数据分析 40 6.1振幅谱分析 40 6.2功率谱分析 41 6.3相位谱分析 41 6.4滑动平均谱 41 6.4.1基本原理 41 6.4.2ARMA谱的实现 43 6.5二维谱分析 44 7 信号处理 47 7.1漂移去除 47 7.2零线设定 48 7.3背景去除 49 7.4增益 52 7.5谱值平衡 54 7.6一维滤波 57 7.7二维滤波 58 7.8希尔伯特变换 59 7.9反褶积 60 7.10小波运算 62 7.11道间平衡处理 64 7.12滑动平均 65 7.13文件叠加 67 7.14文件拼接 68 7.15混波处理 69 7.16单道漂移去除 69 7.17数学运算 70 7.18微分运算 71 7.19积分运算 71 7.20数据翻转 72 7.21子波相干加强 73 7.22 一维IIR滤波(无限滤波) 75 7.23预测水平滤波 76 7.24地形校正 78 8 数据解释系统 81 8.1 层面追踪 81 8.1.1层面解析 81 8.1.2消去层面线 82 8.1.3屏幕编辑(F) 82 8.1.4存储层面线(S) 82 8.1.5载入层面线(L) 82 8.1.6多层层面线追踪 83 8.2 三维解释 87 8.2.1算法与结构设计 87 8.2.2三维平面解释系统 89 8.2.3三维高程模型解释系统 92 8.2.4三维立体模型解释系统 93 8.3公路评价系统 94 8.3.1公路评价标准 94 8.3.2计算机评价 96 8.4 异常编辑系统及统计 97 8.4.1功能分析 97 8.4.2系统结构设计 97 8.4.3各模块的功能结构详细设计 99 8.5谱分析解释 104 8.5.1技术方法 104 8.5.2验证结果分析 105 8.5.3频谱剖面分析 108 8.5.4频谱剖面对比及意义 110 8.6速度分析 110 9 应用实例分析 112 9.1挡墙雷达探测 112 9.2 隧道衬砌雷达探测 115 9.3 在强干扰背景下的城市地基勘察 117 附录Ⅰ 地质雷达处理分析系统的数据文件结构 121
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值