【視訊】超級賬本HyperLedger:Fabric原始碼走讀(一):專案構建與程式碼結構
阿新 • • 發佈:2018-11-19
說明
這是網易雲課堂“IT技術快速入門學院”使用的素材。系列文章可以在系列教程彙總中找到。
這裡梳理一下HyperLedger Fabric專案的程式碼結構。
這裡分析的程式碼是Fabric 1.3:
git clone https://github.com/hyperledger/fabric.git
git branch release-1.3 -t origin/release-1.3
git checkout release-1.3
下載程式碼後,先用dep
命令更新一下依賴程式碼,需要翻qiang:
dep ensure
dep命令的使用參考:Go語言簡明手冊:依賴程式碼管理
編譯方法
在開始之前,先了解一下fabric專案是如何編譯的,這樣才能知道要從哪裡開始看程式碼,修改的程式碼要怎樣生效的。
fabric的README.md檔案中沒有介紹編譯的方法,通過檢視Makefile
檔案,得知可以用以下命令:
make all # 編譯所有目標,並進行測試
make peer # 編譯某一個元件
make release # 為當前平臺編譯所有元件
make release-all # 為所有支援的目標平臺編譯所有元件
...
Makefile中一些變數的含義,可以到make:編譯管理工具make與makefile中查詢。
make peer
執行一些make peer:
$ make peer
.build/bin/peer
CGO_CFLAGS=" " GOBIN=/Users/lijiao/Work/Bin/gopath/src/github.com/hyperledger/fabric/.build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.3.1 -X github.com/hyperledger/fabric/common/metadata.CommitSHA=6c073551a -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.4.13 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.Experimental=false" github.com/hyperledger/fabric/peer Binary available as .build/bin/peer
可以看到peer對應的原始碼目錄是github.com/hyperledger/fabric/peer
。
其它元件類似
make release 和 make release-all
編譯後的元件位於release目錄中,每個平臺一個目錄:
$ ls release/darwin-amd64/bin/
configtxgen discover orderer
configtxlator get-docker-images.sh peer
cryptogen idemixgen
後續
編譯過程很簡單,程式碼入口也很找,一眼就看明白了。視訊HyperLedger Fabric進階實戰課中稍微展開講了下,主要針對對編譯過程沒有感性認識的朋友。
後續抽時間看程式碼,會在這裡補充一些內容,當然重要的內容會開新的頁面記錄。