日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

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

以下內(nèi)容皆為個人理解,并未參照任何文章數(shù)據(jù),如有理解錯誤,歡迎指正 。下面小編給大家介紹一下!
程序入口:peer/main.Go
在main.go中主要有四句重要代碼,
【hyperledger fabric 簡析start是什么?hyperledger fabric 簡析start解答!】

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


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


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


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


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



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





    推薦閱讀