【視頻】超級賬本HyperLedger:Fabric源碼走讀(一):項目構建與代碼結構
阿新 • • 發佈:2018-11-18
lag flag mes ins ima mar over tag docke
- 說明
- 編譯方法
- make peer
- make release 和 make release-all
- 後續
說明
這是網易雲課堂“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進階實戰課中稍微展開講了下,主要針對對編譯過程沒有感性認識的朋友。
後續抽時間看代碼,會在這裏補充一些內容,當然重要的內容會開新的頁面記錄。
【視頻】超級賬本HyperLedger:Fabric源碼走讀(一):項目構建與代碼結構