FISCO BCOS 2.0系列課程啓動,我們將交叉推出《FISCO BCOS 2.0原理解析》、《FISCO BCOS 2.0使用教程》、《FISCO BCOS 2.0源碼分析》等文章系列。
本文主講羣組架構的實操攻略。
我將以搭建仲裁鏈爲例,並演示如何向該鏈發送交易。
課程知識點:
使用build_chain創建多羣組區塊鏈安裝包
如何啓動區塊鏈節點、查看節點共識狀態和出塊狀態
搭建控制檯,向多個羣組部署合約
仲裁鏈組織結構
下圖是一個仲裁鏈示例:
企業A、企業B和企業C分別和仲裁機構合作,採用區塊鏈搭建仲裁服務。在羣組架構下,搭鏈方式爲:仲裁機構配置兩個節點,分別加入三個羣組;企業A配置兩個節點,加入羣組1;企業B配置兩個節點,加入羣組2;企業C配置兩個節點,加入羣組3。
仲裁鏈組網詳情
上節介紹了仲裁鏈組織結構,這裏在一臺機器的環境下模擬仲裁鏈組網環境。仿真的組網環境如下:
-
仲裁機構:包括兩個節點,節點IP均爲127.0.0.1,同時屬於羣組1,羣組2和羣組3
-
企業A:包括兩個節點,節點IP均爲127.0.0.1,僅屬於羣組1
-
企業B:包括兩個節點,節點IP均爲127.0.0.1,僅屬於羣組2
-
企業C:包括兩個節點,節點IP均爲127.0.0.1,僅屬於羣組3
溫馨提示:
實際應用場景中,不建議將多個節點部署在同一臺機器,建議根據機器負載選擇部署節點數目。本例中仲裁機構節點歸屬於所有羣組,負載較高,建議單獨部署於性能較好的機器。
仲裁鏈搭建關鍵流程
如下圖所示,使用FISCO BCOS 2.0快速建鏈腳本搭建仲裁鏈(以及所有其他區塊鏈系統)主要包括五個步驟:
-
step1:安裝依賴軟件,主要是openssl和build_chain.sh腳本
-
step2: 使用build_chain.sh生成區塊鏈節點配置
-
step3: 啓動所有機構區塊鏈節點
-
step4: 啓動控制檯
-
step5: 使用控制檯發送交易
下面我將就這五個步驟詳細敘述構建仲裁鏈的關鍵流程。
安裝依賴軟件
搭建FISCO BCOS 2.0區塊鏈節點需要準備如下依賴軟件:
openssl:FISCO BCOS 2.0的網絡協議依賴openssl
build_chain.sh腳本:主要用於構建區塊鏈節點配置,可從https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/build_chain.sh下載
生成區塊鏈節點配置
FISCO BCOS 2.0提供的build_chain.sh可快速生成區塊鏈節點配置,按照【仲裁鏈組網詳情】介紹的節點組織結構,先生成區塊鏈配置文件ip_list:
#ip_list文件內容格式:[ip]:[節點數] [機構名] [所屬羣組列表]
$ cat > ipconf << EOF
127.0.0.1:2 arbitrator 1,2,3
127.0.0.1:2 agencyA 1
127.0.0.1:2 agencyB 2
127.0.0.1:2 agencyC 3
EOF
調用build_chain.sh腳本構建仿真的本機仲裁鏈:
$ bash build_chain.sh -f ipconf -p 30300,20200,8545
區塊鏈節點配置成功後,會看到[INFO] All completed.的輸出。
啓動節點
生成區塊鏈節點後,需要啓動所有節點,節點提供start_all.sh和stop_all.sh腳本啓動和停止節點。
# 啓動節點
$ bash start_all.sh
# 查看節點進程
$ ps aux | grep fisco-bcos
不發交易時,共識正常的節點會輸出+++日誌,使用tail -f node*/log/* | grep "++"查看各節點是否共識正常。
啓動控制檯
控制檯是用戶與FISCO BCOS 2.0區塊鏈節點交互的重要工具,實現查詢區塊鏈狀態、部署調用合約等功能,能夠快速獲取用戶到所需要信息。
啓動控制檯前需獲取並配置控制檯:
-
獲取控制檯:從https://github.com/FISCO-BCOS/console/releases/download/v1.0.0/console.tar.gz下載控制檯
-
配置控制檯:主要拷貝證書、配置conf/applicationContext.xml所連接節點的IP和端口信息,控制檯關鍵配置如下:
當然,控制檯也支持連接多個羣組,並提供了switch命令來切換羣組,連接多個羣組時,需要在groupChannelConnectionsConfig bean id中配置多個連接,分別連接到對應羣組的區塊鏈節點。
注: 控制檯依賴於Java 8以上版本,Ubuntu 16.04系統安裝openjdk 8即可。CentOS請安裝Oracle Java 8以上版本。
使用start.sh腳本啓動控制檯,控制檯啓動成功會輸出如下界面:
向羣組發交易
控制檯提供了deploy HelloWorld指令向節點發交易,發完交易後,區塊鏈節點塊高會增加
# ... 向group1發交易...
$ [group:1]> deploy HelloWorld
0x8c17cf316c1063ab6c89df875e96c9f0f5b2f744
# 查看group1當前塊高,塊高增加爲1表明出塊正常,否則請檢查group1是否共識正常
$ [group:1]> getBlockNumber
1
# ... 向group2發交易...
# 切換到group2
$ [group:1]> switch 2
Switched to group 2
[group:2]deploy Helloworld
...
總結
本文介紹了搭建仲裁鏈的關鍵過程,FISCO BCOS 2.0的操作文檔step by step介紹瞭如何部署多羣組區塊鏈,詳細流程可以參考https://fisco-bcos-documentation.readthedocs.io/zh_CN/release-2.0/docs/tutorial/group_use_cases.html。
我們鼓勵機構成員、開發者等社區夥伴參與開源共建事業,有你在一起,會更了不起。多樣參與方式:
1 進入微信社羣,隨時隨地與圈內最活躍、最頂尖的團隊暢聊技術話題(進羣請添加小助手微信,微信ID:fiscobcosfan);
2 訂閱我們的公衆號:“FISCO BCOS開源社區”,我們爲你準備了開發資料庫、最新FISCO BCOS動態、活動、大賽等信息;
3 來Meetup與開發團隊面對面交流,FISCO BCOS正在全國舉辦巡迴Meetup,深圳、北京、上海、成都……歡迎您公衆號在菜單欄【找活動】中找到附近的Meetup,前往結識技術大咖,暢聊硬核技術;
4 參與代碼貢獻,您可以在Github提交Issue進行問題交流,歡迎向FISCO BCOS提交Pull Request,包括但不限於文檔修改、修復發現的bug、提交新的功能特性。
代碼貢獻指引:
https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/docs/CONTRIBUTING_CN.md
PS/
本文首發於公衆號【FISCO BCOS開源社區】,如轉載請註明出處,原創不易,謝謝珍惜