布萌區塊鏈底層技術介紹,看完就能搭私鏈

布萌是做什麼的?

布萌是一個使用區塊鏈技術搭建的數字資產網絡,任何擁有資產的機構/個人都可以在這個網絡上發行自己的數字資產(例如數字黃金、積分、遊戲裝備等),資產在網絡中可以自由兌換和流通。

鏈上資產的交易流通將不依賴於任何中心化系統,因爲服務器和節點由布萌社區衆多成員共同部署和維護,應用產生的數據通過共識機制會存儲在區塊鏈所有節點上,單一機構對於自身節點數據的修改無法通過其他節點數據驗證,從而保障了數字的真實性,確保用戶的數字權利“真正”屬於用戶。

開發者註冊地址:https://www.bumeng.cn/user/register

布萌的底層技術簡介

布萌以布比區塊鏈爲技術底層(源碼地址可在布萌官網查看),有以下特點:

λ 去中心化
採用P2P分佈式存儲,沒有中心化的管理節點,可根據實際需求配置若干個驗證節點,所有的驗證節點具備相同的權利,整個系統的數據塊由所有驗證節點來共同維護。
λ 安全
數據經過驗證節點之間達成共識然後添加至區塊鏈,一旦添加至區塊鏈就會永久存儲而且不可篡改,單個節點對數據的修改是無效的。
λ 高效
通過優化數據結構,關鍵路徑多線程併發,多機分佈式計算hash,異步寫入數據庫等方法,使得性能明顯提高,普通PC節點可以達3000TPS。集羣節點性能更高。
λ 開放
通過公開的API可查詢區塊鏈數據,也可根據實際需求修改布比區塊鏈源碼。
λ 可移植
使用標準C++開發,支持windows,linux等各種平臺。

布萌的底層技術架構

支持分佈式部署,以滿足高性能,高可靠需求。每個節點至少需要有一個bubi node,即一個bubi進程和一個SQL數據庫組成。Bubi node支持橫向擴展,以滿足高可靠需求。Slave cluster爲可選組件,用來分擔bubi node的計算,支持動態擴展。Big data mining 爲可選組件,可做大數據分析和挖掘。
可參考如下部署圖:
這裏寫圖片描述

Balance server 爲可選服務,這取決於用戶以何種方式使用bubi底層服務。 Reserve proxy或Endpoint map是爲了將底層服務部署到廣域網。如果部署在雲平臺,需要在控制檯做端口映射即可。 如果部署到自建服務器上,需要在網關做端口映射或部署一個反向代理服務。

布萌的系統交互

布比底層提供了多種接口,提交交易接口推薦使用SDK方式,這種提交爲異步提交,結果會分階段的通知給應用,比如CONFIRM,PENDING,COMPLETE或者FAILURE。另外可以使用WEB接口提交至bubi 或者slave。 查詢請求只能發送到bubi進程。圖中的PUB,SUB是ZMQ中的發佈訂閱模式,PUSH,PULL爲任務模式,可以清晰的看到bubi,slave,sdk,monitor之間的通信方式。 Monitor與監控中心採用websocket模式,有利於實時告警。
這裏寫圖片描述

系統模塊

下圖描述了bubi和slave內部的主要模塊,以及重點模塊間的交互。黃色的模塊中含有線程,灰色的爲外部持久化文件。爲了提高性能,減少交易峯值時IO對性能的影響,設計上考慮了異步寫入數據庫的功能。藍色爲SDK或者使用者,與bubi通信採用web和MQ兩種方式。
這裏寫圖片描述

交易流程

下圖描述了交易的處理流程。slave不是必須的,如果沒有slave,bubi會自己做驗籤工作。
這裏寫圖片描述

編譯

Build on Ubuntu 14.04

λ 安裝依賴
sudo apt-get install automake autoconf libtool g++ cmake libidn11-dev
手動安裝oracle jdk
λ 編譯./configure make
λ 一鍵編譯
進入build/linux目錄,執行build.sh

Build on Windows with VS2013

使用vs2013打開項目文件 build/win32/bubi.vs12.sln 編譯

測試

λ 在test目錄下的4peers-without-slave_test.sh 和4peers-with-slave_test.sh,分別用 於部署四個節點帶slave和不帶slave的測試。帶slave的節點配置文件位於test/env/4peers-with-slave/peeri-with-slave目錄下,不帶slave的節點配置文件位於test/env/4peers-without-slave/peeri-without-slave目錄下,i是節點標記1到4。

λ 以test/env/4peers-with-slave/peer1-with-slave目錄爲例:

bin 存放可執行文件

confg 存放配置文件,bubi.json 是bubi的配置文件,slave.json 是slave的配置文件,可根據實際情況修改配置。bubi.json中db的用戶名密碼配置需與postgresql安裝時設置一致

log 默認存放日誌文件,可以在bubi.json中配置

data 默認存放key-value db數據文件,可在bubi.json中配置

執行test/4peers-without-slave_test.sh啓動四個節點不帶slave

執行test/4peers-with-slave_test.sh啓動四個節點帶slave

以上是布萌區塊鏈底層技術的架構及功能介紹,想要了解更多,可以到布萌官網www.bumeng.cn註冊開發者賬號。註冊後,可在測試鏈體驗區塊鏈服務,或者上正式鏈發行資產。由於底層技術已開源,也可用於搭建私鏈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章