1. 程式人生 > >【視訊】超級賬本HyperLedger:Fabric原始碼走讀(一):專案構建與程式碼結構

【視訊】超級賬本HyperLedger:Fabric原始碼走讀(一):專案構建與程式碼結構

作者: 李佶澳   轉載請保留:原文地址   釋出時間:2018/11/18 14:26:00

 

說明

這是網易雲課堂“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進階實戰課中稍微展開講了下,主要針對對編譯過程沒有感性認識的朋友。

後續抽時間看程式碼,會在這裡補充一些內容,當然重要的內容會開新的頁面記錄。