溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析

發(fā)布時(shí)間:2021-12-20 09:59:59 來源:億速云 閱讀:142 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

1.byfn.sh

查看byfn.sh找到up模式主要做了什么,如下圖可見,執(zhí)行networkUp這個(gè)function來實(shí)現(xiàn)fabric網(wǎng)絡(luò)啟動(dòng)。

Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析

接下來進(jìn)入networkUp詳細(xì)閱讀: Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 networkUp這個(gè)function里面核心腳本主要為以上紅色框住的部分,分別為: 1. 檢查二進(jìn)制文件是否可用以及對(duì)應(yīng)版本docker鏡像是否存在。 2. 假如當(dāng)前sh所在父目錄不存在crypto-config目錄就執(zhí)行生成區(qū)塊、通道以及證書腳本,詳情請(qǐng)查看Fabric2.0 first-network 生成配置說明 3. 使用docker-compose命令啟動(dòng)fabric網(wǎng)絡(luò)。 4. 加載go合約依賴包 5. 使用cli客戶端執(zhí)行腳本操作

     其中在默認(rèn)條件下啟動(dòng)yaml文件包括:
	 docker-compose-cli.yaml
     docker-compose-etcdraft2.yaml

2.docker-compose-cli.yaml

為了看清楚docker-compose-cli.yaml具體啟動(dòng)了什么,我們將文件拆分執(zhí)行 首先打開控制臺(tái),輸入以下命令

cd first-network
docker-compose -f docker-compose-cli.yaml up -d 2>&1

執(zhí)行結(jié)果如下圖所示: Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 總共啟動(dòng)了6個(gè)容器分別是: 5個(gè)排序節(jié)點(diǎn)中的其中一個(gè)節(jié)點(diǎn) orderer.example.com

兩個(gè)組織org1、org2的節(jié)點(diǎn) - peer0.org1.example.com - peer1.org1.example.com - peer0.org2.example.com - peer1.org2.example.com

fabric客戶端 cli

2.1 排序節(jié)點(diǎn)啟動(dòng)

orderer.example.com 從排序節(jié)點(diǎn)入手: 一般來說,我會(huì)從啟動(dòng)日志入手,先看結(jié)果再看配置,打開控制臺(tái),輸入以下命令

docker logs -f orderer.example.com --tail=300

控制臺(tái)輸出了orderer.example.com的啟動(dòng)日志如下

由于太長我分開幾個(gè)部分來說

(1)排序節(jié)點(diǎn)配置項(xiàng)輸出: 排序節(jié)點(diǎn)啟動(dòng)的時(shí)候,會(huì)根據(jù)環(huán)境變量輸出相應(yīng)的配置,包括證書配置、監(jiān)聽端口配置等, Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 而這些配置對(duì)應(yīng)就是docker-compose-cli.yaml的以下配置: Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 我們繼續(xù)追蹤base/docker-compose-base.yaml,找到orderer.example.com服務(wù)

Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 從上圖來看,orderer的配置還是引入peer-base.yaml中的orderer-base服務(wù)

Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析

從上圖來看與日志輸出配置匹配,就是yaml里面加了ORDERER_前綴,其余配置的修改也可通過這種方式。詳細(xì)排序節(jié)點(diǎn)配置說明,晚點(diǎn)補(bǔ)充。

(2)加載創(chuàng)始區(qū)塊,啟動(dòng)排序節(jié)點(diǎn)。 Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 好的系統(tǒng)的一個(gè)好的日志輸出,fabric的日志輸出還是很優(yōu)秀的,從日志輸出可以跟蹤排序節(jié)點(diǎn)啟動(dòng)究竟干了什么,通過上圖日志輸出,可以讀到:

1.根據(jù)1的配置初始化排序節(jié)點(diǎn)
2. 創(chuàng)建本地賬本目錄
3. 設(shè)置排序節(jié)點(diǎn)服務(wù)監(jiān)聽端口
4. 根據(jù)創(chuàng)始區(qū)塊文件初始化本地賬本
5. 啟動(dòng)fabric系統(tǒng)通道
6. 啟動(dòng)raft服務(wù)

(3)raft服務(wù)啟動(dòng) Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 上圖已經(jīng)標(biāo)識(shí)了核心日志并且進(jìn)行說明,有一點(diǎn)還是很清晰的就是,(對(duì)于沒仔細(xì)研究fabric2.0 raft的人來說)一個(gè)通道就是一個(gè)raft服務(wù)集群。紅色的日志是錯(cuò)誤,在分配完raft集群節(jié)點(diǎn)后,其余節(jié)點(diǎn)沒啟動(dòng),所以都是失敗的,后面一直在做重連操作。

以上就是orderer.example.com啟動(dòng)剖析過程。

2.2 節(jié)點(diǎn)啟動(dòng)

然后我們來看以下peer0.org1.example.com 打開控制臺(tái),輸入以下命令

docker logs -f peer0.org1.example.com --tail=300

控制臺(tái)輸出結(jié)果如下: Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 peer節(jié)點(diǎn)啟動(dòng)主要是 1. 啟動(dòng)peer grpc服務(wù) 2. 初始化gossip服務(wù) 3. 初始化本地賬本 4. 安裝系統(tǒng)鏈碼,這里比起1.x,2.0多了一個(gè)系統(tǒng)鏈碼就是_lifecycle,是跟智能合約相關(guān)的鏈碼,我們下一篇進(jìn)行詳解。 5. 基于gossip對(duì)同組織節(jié)點(diǎn)進(jìn)行交互

3.docker-compose-etcdraft2.yaml

同樣的套路,首先打開控制臺(tái),輸入以下命令:

cd first-network
 docker-compose -f docker-compose-etcdraft2.yaml up -d 2>&1

控制臺(tái)輸出結(jié)果如下: Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 由上圖可知,主要啟動(dòng)了其余4個(gè)排序節(jié)點(diǎn)

先不看新啟動(dòng)的排序節(jié)點(diǎn),查看原本開始啟動(dòng)的orderer.example.com 控制臺(tái)輸入以下命令

 docker logs --tail=300  -f orderer.example.com

控制臺(tái)輸出結(jié)果如下: Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 由日志可以觀察到,orderer.example.com以及成功連接其他raft節(jié)點(diǎn),并且在raft 的term2 leader 從orderer.example.com (0)變成orderer5.example.com(5)

接下來我們看一下orderer5.example.com節(jié)點(diǎn)的情況 控制臺(tái)輸入以下命令:

docker logs --tail=300  -f orderer5.example.com

控制臺(tái)輸出: Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析 由日志可見,在term2 經(jīng)過一輪投票后,orderer5獲得5票回應(yīng)成為了term2的raft leader。 整體網(wǎng)絡(luò)處于完全啟動(dòng)狀態(tài)。

Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析

以上是“Fabric2.0啟動(dòng)網(wǎng)絡(luò)腳本配置的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI