您好,登錄后才能下訂單哦!
這篇文章主要介紹Fabric2.0啟動網絡腳本配置的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
查看byfn.sh找到up模式主要做了什么,如下圖可見,執行networkUp這個function來實現fabric網絡啟動。
接下來進入networkUp詳細閱讀: networkUp這個function里面核心腳本主要為以上紅色框住的部分,分別為: 1. 檢查二進制文件是否可用以及對應版本docker鏡像是否存在。 2. 假如當前sh所在父目錄不存在crypto-config目錄就執行生成區塊、通道以及證書腳本,詳情請查看Fabric2.0 first-network 生成配置說明 3. 使用docker-compose命令啟動fabric網絡。 4. 加載go合約依賴包 5. 使用cli客戶端執行腳本操作
其中在默認條件下啟動yaml文件包括: docker-compose-cli.yaml docker-compose-etcdraft2.yaml
為了看清楚docker-compose-cli.yaml具體啟動了什么,我們將文件拆分執行 首先打開控制臺,輸入以下命令
cd first-network docker-compose -f docker-compose-cli.yaml up -d 2>&1
執行結果如下圖所示: 總共啟動了6個容器分別是: 5個排序節點中的其中一個節點 orderer.example.com
兩個組織org1、org2的節點 - peer0.org1.example.com - peer1.org1.example.com - peer0.org2.example.com - peer1.org2.example.com
fabric客戶端 cli
orderer.example.com 從排序節點入手: 一般來說,我會從啟動日志入手,先看結果再看配置,打開控制臺,輸入以下命令
docker logs -f orderer.example.com --tail=300
控制臺輸出了orderer.example.com的啟動日志如下
由于太長我分開幾個部分來說
(1)排序節點配置項輸出: 排序節點啟動的時候,會根據環境變量輸出相應的配置,包括證書配置、監聽端口配置等, 而這些配置對應就是docker-compose-cli.yaml的以下配置: 我們繼續追蹤base/docker-compose-base.yaml,找到orderer.example.com服務
從上圖來看,orderer的配置還是引入peer-base.yaml中的orderer-base服務
從上圖來看與日志輸出配置匹配,就是yaml里面加了ORDERER_前綴,其余配置的修改也可通過這種方式。詳細排序節點配置說明,晚點補充。
(2)加載創始區塊,啟動排序節點。 好的系統的一個好的日志輸出,fabric的日志輸出還是很優秀的,從日志輸出可以跟蹤排序節點啟動究竟干了什么,通過上圖日志輸出,可以讀到:
1.根據1的配置初始化排序節點 2. 創建本地賬本目錄 3. 設置排序節點服務監聽端口 4. 根據創始區塊文件初始化本地賬本 5. 啟動fabric系統通道 6. 啟動raft服務
(3)raft服務啟動 上圖已經標識了核心日志并且進行說明,有一點還是很清晰的就是,(對于沒仔細研究fabric2.0 raft的人來說)一個通道就是一個raft服務集群。紅色的日志是錯誤,在分配完raft集群節點后,其余節點沒啟動,所以都是失敗的,后面一直在做重連操作。
以上就是orderer.example.com啟動剖析過程。
然后我們來看以下peer0.org1.example.com 打開控制臺,輸入以下命令
docker logs -f peer0.org1.example.com --tail=300
控制臺輸出結果如下: peer節點啟動主要是 1. 啟動peer grpc服務 2. 初始化gossip服務 3. 初始化本地賬本 4. 安裝系統鏈碼,這里比起1.x,2.0多了一個系統鏈碼就是_lifecycle,是跟智能合約相關的鏈碼,我們下一篇進行詳解。 5. 基于gossip對同組織節點進行交互
同樣的套路,首先打開控制臺,輸入以下命令:
cd first-network docker-compose -f docker-compose-etcdraft2.yaml up -d 2>&1
控制臺輸出結果如下: 由上圖可知,主要啟動了其余4個排序節點
先不看新啟動的排序節點,查看原本開始啟動的orderer.example.com 控制臺輸入以下命令
docker logs --tail=300 -f orderer.example.com
控制臺輸出結果如下: 由日志可以觀察到,orderer.example.com以及成功連接其他raft節點,并且在raft 的term2 leader 從orderer.example.com (0)變成orderer5.example.com(5)
接下來我們看一下orderer5.example.com節點的情況 控制臺輸入以下命令:
docker logs --tail=300 -f orderer5.example.com
控制臺輸出: 由日志可見,在term2 經過一輪投票后,orderer5獲得5票回應成為了term2的raft leader。 整體網絡處于完全啟動狀態。
以上是“Fabric2.0啟動網絡腳本配置的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。