区块链相关数据报表_重磅|京东云区块链数据服务(BDS)正式开源
今天,“區(qū)塊鏈+京東云 大有可為”戰(zhàn)略合作媒體溝通會在北京國家會議中心召開。會上,京東云與京東數(shù)科宣布在區(qū)塊鏈技術(shù)服務(wù)領(lǐng)域深度合作,重磅發(fā)布了智臻鏈“云”建設(shè)規(guī)劃,同步上線了“區(qū)塊鏈防偽追溯”、“區(qū)塊鏈數(shù)字存證”兩款“京東自營”的京東云市場SaaS應(yīng)用。同時京東云還重磅推出國內(nèi)首款區(qū)塊鏈數(shù)據(jù)在線分析服務(wù)產(chǎn)品——BDS服務(wù)。
區(qū)塊鏈由很多區(qū)塊按時間順序串聯(lián)起來構(gòu)成的,在每個區(qū)塊中存儲交易、賬號等相關(guān)信息。每個區(qū)塊就像一本紙賬本,上面記錄了很多人每天的流水賬。如果我們想查看最近一年有多少筆大額支出,那我們需要將最近一年的所有賬本搬出,一本一本從頭到尾進(jìn)行翻看,找出相應(yīng)的記錄。也可以說每個區(qū)塊就像一本紙質(zhì)書,如果我們想從一堆紙質(zhì)書中按某些關(guān)鍵字進(jìn)行查找,除了從頭到尾進(jìn)行翻看之外,就別無它法了。區(qū)塊鏈上數(shù)據(jù)都是離散化的數(shù)據(jù),需要更加有效的數(shù)據(jù)組織方式以便于做進(jìn)一步的查詢與分析。
隨著區(qū)塊鏈技術(shù)的火爆,整個行業(yè)可謂是百家爭鳴,有諸如BTC,ETH,XRP等耳熟能詳?shù)墓墟滍椖?#xff0c;也有Fabric,Enterprise Ethereum Alliance,Corda R3等眾所周知的聯(lián)盟鏈項目,當(dāng)然還有一些私有鏈項目。不管是公有鏈也好,聯(lián)盟鏈、私有鏈也罷,每個鏈都是一個一個獨立的信息孤島,它們在技術(shù)上各有特色,在底層數(shù)據(jù)模型上也有很多相同之處。每個區(qū)塊鏈項目就像一個一個手機(jī)App,我們可以統(tǒng)計分析出每個項目用戶總量、日活、月活、留存、使用率、用戶余額、平均交易金額等通用指標(biāo)。
如何將多個區(qū)塊鏈項目的信息孤島連接起來,將無序、離散的區(qū)塊數(shù)據(jù)整合成有序、可方便查詢的關(guān)系型數(shù)據(jù),將鏈上透明、共識、可信的數(shù)據(jù)和信息聚合在一起,提供分析、建模服務(wù),賦能產(chǎn)業(yè)互聯(lián)網(wǎng)發(fā)展,是區(qū)塊鏈技術(shù)產(chǎn)業(yè)價值的重要體現(xiàn),也是京東云BDS產(chǎn)品的目標(biāo)。
京東云區(qū)塊鏈數(shù)據(jù)服務(wù)正在打造一個行業(yè)標(biāo)準(zhǔn)的區(qū)塊鏈的BI+數(shù)據(jù)搜索服務(wù),但是區(qū)塊鏈項目的底層區(qū)塊存儲結(jié)構(gòu)各不相同,需要對不同的項目的數(shù)據(jù)進(jìn)行解析與整理,我們深知單單夠我們的力量是不足以對接業(yè)界繁多的項目,因此我們開源了區(qū)塊鏈數(shù)據(jù)服務(wù)(BDS),讓更多的開發(fā)者與社區(qū)可以參于其中,接入更多公有鏈、聯(lián)盟鏈、私有鏈等區(qū)塊鏈項目。區(qū)塊鏈數(shù)據(jù)服務(wù)將以區(qū)塊鏈數(shù)據(jù)搜索引擎形式聚合所有區(qū)塊鏈相關(guān)的內(nèi)容,最大化區(qū)塊鏈上可信數(shù)據(jù)價值,方便社區(qū)能在BDS上進(jìn)行區(qū)塊鏈數(shù)據(jù)的一站式查詢。
現(xiàn)在,京東云區(qū)塊鏈數(shù)據(jù)服務(wù)(BDS)正式對外開源!
?https://github.com/jdcloud-bds/
產(chǎn)品演示地址可以訪問BDS服務(wù)。
架構(gòu)圖
Blockchain Node:改造后的全節(jié)點服務(wù),可將新塊數(shù)據(jù)同步到 Queue 中;
Exchange:交易所上區(qū)塊鏈相關(guān)數(shù)據(jù);
Social Network:社交媒體上區(qū)塊鏈相關(guān)數(shù)據(jù);
Queue:消息隊列服務(wù);
Splitter:負(fù)責(zé)從 Queue 讀取區(qū)塊鏈數(shù)據(jù),并將數(shù)據(jù)結(jié)果寫入到 Data Warehouse 中;
Data Process Framework:實時數(shù)據(jù)分析模塊,會進(jìn)行一些實時數(shù)據(jù)指標(biāo)計算,并將計算結(jié)果寫入到 Data Warehouse 中;
Machine Learning:機(jī)器學(xué)習(xí)模塊,會針對區(qū)塊鏈地址信息通過機(jī)器學(xué)習(xí)技術(shù)進(jìn)行訓(xùn)練,分析,并將分析結(jié)果寫入到 Data Warehouse 中;
Data Warehouse:數(shù)據(jù)倉庫服務(wù),負(fù)責(zé)結(jié)構(gòu)化存儲區(qū)塊鏈相關(guān)數(shù)據(jù);
Cache Service:數(shù)據(jù)緩存服務(wù),存儲一些熱數(shù)據(jù),提高響應(yīng)速度;
Event Service:事件訂閱服務(wù),支持針對特殊的事件進(jìn)行訂閱設(shè)置,發(fā)送郵件或短信;
Blockchain BI Service:數(shù)據(jù)可視化服務(wù);
API Service:API 接口服務(wù),支持通過 API 方式獲取數(shù)據(jù);
Report Service:數(shù)據(jù)報告服務(wù),自動生成數(shù)據(jù)報表;
開源計劃
目前在開源項目組織 https://github.com/jdcloud-bds/ 中, 京東云BDS團(tuán)隊開源了 Blochain Node 和 Splitter 兩個服務(wù)模塊, Blochain Node 模塊優(yōu)先將 BTC Node 代碼開源了出來,之后我們還會不斷開源其他的全節(jié)點服務(wù),預(yù)計在 2019 年 Q3 季度會陸續(xù)將:ETH,XRP,ETC,LTC 等 20+ 條主流公有鏈開源出來,歡迎各位開發(fā)者定期關(guān)注京東云區(qū)塊鏈團(tuán)隊的開源項目。
當(dāng)然,除了開源 Blochain Node 和 Splitter 兩個服務(wù)模塊之外,京東云BDS團(tuán)隊還會陸續(xù)將其他服務(wù)模塊也開源出來。
有人會問如果只是開源 Blochain Node 和 Splitter 兩個服務(wù)模塊,是不是無法搭建出類似 京東云區(qū)塊鏈數(shù)據(jù)服務(wù) 的效果。當(dāng)然可以。
通過上面的系統(tǒng)架構(gòu)圖可以發(fā)現(xiàn),Blochain Node 和 Splitter 兩個是整套服務(wù)的核心模塊,其他模塊都是基于這兩個模塊來設(shè)計的,所以開源了這兩個核心模塊,區(qū)塊鏈數(shù)據(jù)庫服務(wù)的基本架子就已經(jīng)存在了,剩下的就是錦上添花的事情了。
具體搭建方式,詳見本篇文章的 “本地搭建” 介紹。
成為 Contributor
針對京東云區(qū)塊鏈產(chǎn)品部開源的 Blochain Node 和 Splitter 兩個服務(wù)服務(wù),開發(fā)者都可以申請成為 Contributor。
如果您想基于bds-btc項目進(jìn)行 bug 修復(fù)或者新增一些新特性,請給我們的項目提個 issue,確保我們知道您準(zhǔn)備做這個事情,避免其他開發(fā)者的重復(fù)開發(fā)。之后您只需要基于 https://github.com/jdcloud-bds/bds-btc 項目新建一個分支,并基于這個分支進(jìn)行代碼編輯,同時請確保文檔和測試用例都是完整的,完成后提交 PR 即可,項目的 Contributor 會進(jìn)行代碼審核,審核通過后會進(jìn)行代碼合并。
如果您是想將新區(qū)塊鏈項目接入BDS平臺,比如:Grin、Libra。請先給我們發(fā)郵件,郵箱地址:jdcloud-bds@jd.com:,確保我們知道您準(zhǔn)備做這個事情,避免其他開發(fā)者的重復(fù)開發(fā)。之后我們會在項目組織 https://github.com/jdcloud-bds/ 下新建一個項目倉庫,您只需要基于新建的項目倉庫新建一個分支,并基于這個分支進(jìn)行代碼編輯,同時請確保文檔和測試用例都是完整的,完成后提交 PR 即可,項目的 Contributor 會進(jìn)行代碼審核,審核通過后會進(jìn)行代碼合并。
Contributing 詳細(xì)文檔可分別參考
bds Contributing Guide
bds-btc Contributing Guide
如果您是開發(fā)者,有興趣一起參與進(jìn)來,歡迎來一起為區(qū)塊鏈的開源社區(qū)做一份貢獻(xiàn)。
本地搭建
接下來,讓我們來一起看看,如果在本地搭建一套簡易環(huán)境,達(dá)到類似 京東云區(qū)塊鏈數(shù)據(jù)服務(wù) 的效果。
部署方式
confluent and Kafka - Queue
PostgreSQL - Data Warehouse
BTC Node
BDS(Splitter)
Grafana - Blockchain BI Service
安裝 confluent 和 kafka
confluent 是一個 proxy 服務(wù),提供了 restful 接口供外部調(diào)用,并將結(jié)果寫入到 kafka 中
安裝 kafka
參考 kafka 官網(wǎng)文檔進(jìn)行搭建,運行 kafka 服務(wù)的時候需要修改下其配置文件:/config/server.properties 添加以下內(nèi)容項
message.max.bytes=1048576000
安裝 confluent
參考 confluent 官網(wǎng)文檔進(jìn)行搭建,下載壓縮包文件并解壓運行 Confluent REST Proxy 服務(wù),但是在運行之前需要修改下其配置文件:/etc/kafka-rest/kafka-rest.properties 添加以下內(nèi)容項
max.request.size = 1048576000
buffer.memory = 1048576000
send.buffer.bytes = 1048576000
運行數(shù)據(jù)庫服務(wù)
數(shù)據(jù)庫這塊其實可以不用自己本地搭建,其實可以直接使用云數(shù)據(jù)庫服務(wù),這里推薦是用京東云云數(shù)據(jù)庫 RDS 服務(wù),購買地址請戳:JCS For PostgreSQL。
當(dāng)數(shù)據(jù)庫服務(wù)運行起來之后,你需要手動創(chuàng)建一個庫名,這個庫名之后在運行 BDS(Splitter)服務(wù)的時候會用到。
安裝 BTC 全節(jié)點
BTC 運行環(huán)境初始化,參見 build-unix
環(huán)境初始化好后,開始進(jìn)行源碼的編譯、運行
編譯源碼
1??./autogen.sh2??./configure3??make4??make?install
運行 BTC 全節(jié)點
消息隊列這里采用了 Kafka
1?./usr/local/bin/bitcoind?-kafka?-kafkaproxyhost=[kafka?代理的ip地址]?-kafkaproxyport=[kafka?代理的訪問端口,默認(rèn)是?8082]?-kafkatopic=btc?-datadir=[數(shù)據(jù)目錄]
當(dāng)運行了 BTC 全節(jié)點,你可以發(fā)現(xiàn)在 Kafka 服務(wù)中你收到了一些數(shù)據(jù),這就是區(qū)塊鏈全節(jié)點的新塊數(shù)據(jù)。
安裝 BDS(Splitter)服務(wù)
BDS(Splitter) 運行環(huán)境初始化,需要安裝 go 的運行環(huán)境,參見 go install
環(huán)境初始化好后,開始進(jìn)行源碼的編譯、運行
運行 BDS(Splitter)服務(wù)
設(shè)置項目的路徑 $GOPATH/src/github.com/jdcloud-bds/bds/;
執(zhí)行 go build -v github.com/jdcloud-bds/bds/cmd/bds-splitter 編譯項目;
根據(jù) /config/splitter_example.conf 配置模板新建一個配置文件 splitter.conf,修改 splitter.conf 的內(nèi)容,按提示設(shè)置對應(yīng)的配置內(nèi)容項,包括但不限于 btc 全節(jié)點信息,kafka 相關(guān)信息等;
執(zhí)行 ./bds-splitter -c splitter.conf 運行 BDS(Splitter)服務(wù);
當(dāng) BDS(Splitter)跑起來之后,你會發(fā)現(xiàn)在你的 PostgreSQL 數(shù)據(jù)庫服務(wù)之前新建的庫名下新建了一些表,過了一會,會發(fā)現(xiàn)這些表都有不同程度的新數(shù)據(jù)插入,這些數(shù)據(jù)就是 BDS(Splitter)服務(wù)從消息隊列 Kafka 中消費的全節(jié)點的新塊數(shù)據(jù),進(jìn)行解析之后插入的。
這樣就完成了從非結(jié)構(gòu)的區(qū)塊鏈數(shù)據(jù)到結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)換,只需要整套服務(wù)一直運行著,那么在 PostgreSQL 數(shù)據(jù)庫服務(wù)就實時存儲著 BTC 全節(jié)點的所有數(shù)據(jù)信息。
安裝 Garafna
如果要查詢 PostgreSQL 數(shù)據(jù)庫中的數(shù)據(jù)必須登錄數(shù)據(jù)庫服務(wù),執(zhí)行 SQL 命令來查詢,不夠直觀。
所有推薦可以安裝 Garafna 服務(wù),安裝教程參考 Garafna 官網(wǎng) 文檔進(jìn)行搭建。
通過 Garafna 服務(wù)就可以預(yù)置好查詢 PostgreSQL 的 SQL 語句,實時查看你需要的數(shù)據(jù)結(jié)果,并以圖表的形式來展現(xiàn),更加形象,直觀。
總結(jié)
一個新的區(qū)塊鏈項目對接區(qū)塊鏈數(shù)據(jù)服務(wù)開發(fā)只有兩步:
修改相應(yīng)對的全節(jié)點服務(wù),能夠?qū)^(qū)塊數(shù)據(jù)寫入到消息隊列。
從消息隊列中取出相應(yīng)的數(shù)據(jù)寫入到數(shù)據(jù)倉庫。
推薦閱讀
業(yè)內(nèi)首發(fā) | 區(qū)塊鏈數(shù)據(jù)服務(wù) - BDS
總結(jié)
以上是生活随笔為你收集整理的区块链相关数据报表_重磅|京东云区块链数据服务(BDS)正式开源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机蓝牙烧录_蓝牙模块与单片机如何连接
- 下一篇: word打开文档很久很慢_word文档打