FISCO BCOS 2.0使用教程: 羣組架構實操演練

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開源社區】,如轉載請註明出處,原創不易,謝謝珍惜

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