hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!

以下內容皆為個人理解,并未參照任何文章數據,如有理解錯誤,歡迎指正 。下面小編給大家介紹一下!
程序入口:peer/main.Go
在main.go中主要有四句重要代碼,

hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!

【hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!】peer/version : peer 版本 。
node :涉及本地節點的搭建,以及如何加入到網絡 , 本機IP地址端口號 , 是VP節點還是NVP節點等 。
network : 遠程登錄devops服務器 , 查詢所有peer節點 。
chaincode : chaincode三種操作deploy invoke query (通過命令行發送給devops服務器)
接著調用 mainCmd.Execute() 執行命令分發 。
比較重要的模塊是node,其中start命令負責該節點的初始化流程 。
一、node/start
調用serve()函數
1. 調用 CacheConfiguration() 函數設置緩存數據,緩存數據包括該peer的LocalAdress、PeerEndpoint(是VP or NVP)等等
2. 設置服務器地址,創建服務器實例,后續代碼會使用lis 。
hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!

3.創建 createEventHubServer 該函數創建事件Hub服務器(創建線程運行),同時為該服務器創建監聽實例,調用RegisterEventsServer 函數將EventHubServer注冊到grpcService上 。該函數有一部分關于TLS的調用,這里分析先不考慮HTTPS的情況 , 這并不影響我們分析fabric 。
hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!

4.db.Start() start database 數據庫處理模塊需單獨分析 。
5. getSecHelper() 這里不分析安全模塊
6. 調用 registerChaincodeSupport() 該函數主要作用是將系統chaincode部署到Docker上,同時根據第一個參數chainname創建ChainCodeSupport 實例,
該實例包括 chaincode路徑、超時時間、chainname等數據信息 。將得到的ChainCodeSupport實例注冊到grpcServer 。
hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!

值得注意的有兩個函數
1)RegisterSysCCs 該函數注冊部署系統chaincode , 后續我們會分析更常規的部署chaincode(非系統鏈碼)
2) RegisterChaincodeSupportServer 該函數比較重要,該函數向grpcServer注冊chainCodeSupport實例 , 同時傳入chainCodeSupport的服務規范 。
如圖在_ChaincodeSupport_serviceDesc 函數中Streams tag下存在Handler: _ChaincodeSupport_Register_Handler,在chainCodeSupport實例
注冊完成后,會調用_ChaincodeSupport_Register_Handler 函數,該函數會調用chainCodeSupport實例的Register函數,傳入參數中有Server與clent
的通信媒介stream,在Register函數中,chainCodeSupport實例會創建一個處理事件的handler,并運行processStream 。
總結一下該流程:創建chainCodeSupport實例,并將該實例服務注冊到grpcServer,grpcServer為該服務器生成stream,chainCodeSupport實例監控該stream的輸入,當有數據輸入時調用handler的HandleMessage的數據處理,經過分析判斷chainCodeSupport的stream是與docker的chainCode通訊的媒介 。
hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!


hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!

以上就是關于hyperledger fabric 簡析start的相關介紹,希望小編的內容能幫到大家!


相關經驗推薦