超級賬本Hyperledger-Fabric本地編譯與安裝(來源於區塊鏈-原理、設計與應用)__區塊鏈

來源:互聯網
上載者:User

                                超級賬本Hyperledger-Fabric本地編譯與安裝 

                                                                                     來源於楊保華等《區塊鏈-原理、設計與應用》 本地編譯安裝部署超級賬本Fabric網路。 

超級賬本Fabric基於Go語言實現,本地編譯推薦配置Golang1.7或更高版本的環境。下面將講解如何編譯產生fabric-peer、fabric-orderer和fabric-ca等組件的二進位檔案,以及如何安裝一些配置和開發相關的工具。 


1 作業系統 
常見的 Linux發行版(包括Ubuntu、Redhat、CentOS等)和 MacOS等都可以原生支援Fabric偏譯和運行。 

Linux核心3.10+版本,支援64位環境。

作為 Fabric節點 ,實體記憶體建議至少為2GB。

如果有較多的鏈碼則需要更多容器,預留足夠的硬碟空間(一般建議20GB或更多)以儲存區塊檔案。

在生產環境中對效能和穩定性要求高的情境下,甚至預留更多的實體資源。 

下面將預設以 Ubuntu16.04作業系統為例進行操作。 


2 環境配置 
(1)安裝Go語言環境 
Go語言環境可以自行訪問 golang.org網站下載二進位壓縮包安裝。注意不推薦通過包管理器安裝,版本往往比較舊。 

如下載Go1.8.5版本: 

https://golang.org/doc/install?download=go1.8.5.linux-amd64.tar.gz
下載完成後,解壓目錄,並移動到GO_ROOT為/ usr / local/: 
$ tar -xvf go1.8.linux-amd64.tar.gz 
$ sudo mv go /usr/local 

安裝完成後記得配置 GOPATH環境變數: 
export GOPATH=/home/BlockChain/Go 
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin 

此時,可以通過 go version命令驗證安裝是否成功: 
$ go version 
go version go1.8 linux/amd64 

(2)安裝依賴包 
編譯 Fabric相關代碼,需要一些依賴包,可以通過如下命令安裝: 
$ sudo apt-get update&& apt-get install -y libsnappy-dev zlib1g-dev libbz2-dev libltdl-dev libtool 

(3)安裝Docker 
Fabric網路目前依賴 Docker服務作為鏈碼容器的支援,因此即使是本地環境運行Fabric網路,也需要在Peer節點上安裝 Docker環境。推薦使用1.12或者更新的版本。 
Linux作業系統下可以通過如下命令來快速安裝 Docker最新版: 
$ curl -fsSL https://get.docker.com/ | sh 
 
3 擷取代碼 
目前, Fabric代碼的官方倉庫在社區的 Gerrit上,並即時同步到 Github倉庫中,讀者可以從任一倉庫中擷取代碼。 
首先,將 Fabric代碼按照Go語言推薦方式進行存放,建立目錄結構並切換到該目錄,如下命令所示: 
$ mkdir -p $GOPATH/src/github.com/hyperledger 
$ cd $GOPATH/src/github.com/hyperledger 

通過如下命令可以擷取 fabric-peer和fabric-orderer組件編譯所需要的代碼,兩者目前在同一倉庫中: 
$ git clone http://gerrit.hyperledger.org/r/fabric 

預設情況下,會下拉擷取帶有完整曆史的倉庫,這個過程取決於網路速度,可能需要較長時間。讀者也可以通過 --single-branch -b master --depth1命令選項來指定只擷取master分支最新的提交代碼,如下命令所示: 
$ git clone --single-branch -b master --depth 1 http://gerrit.hyperledger.org/r/fabric 

fabric-ca組件則在另外一個倉庫中,同樣,可以通過如下命令擷取: 

$ sit clone http://gerrit.hyperledger.org/r/fabric-ca 


4 編譯安裝 fabric-peer組件 
通過如下命令手動編譯並安裝 fabric-peer到$GOPATH/bin下。日前 fabric處於1.0.0大版本階段,因此指定相關版本號碼為1.0.0: 
$ cd $GOPATH/src/github.com/hyperledger/fabric 
$ ARCH=x86_64 
$ BASEIMAGE_RELEASE=0.3.1 
$ PROJECT_VERSION=1.0.0 
$ LD_FLAGS="-X github.com/hyperledger/fabric/common/metadata.Version=${PROJECT_VERSION}\ 
  -X github.com/hyperledger/fabric/common/metadata.BaseVersion=${BASEIMAGE_RELEASE}\ 
  -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" 
$ CGO_CFLAGS=" " go install -1dflags "$LD_FLAGS -linkmode external -extldflags '-static -1pthread' " \ 
  github.com/hyperledger/fabric/peer 

當然,使用者也可以使用源碼中的 Makefile來進行編譯。這種方式下,需要自動從Dockerhub上擷取包括基礎鏡像在內的依賴檔案,花費時間可能稍長。相關命令如下所示: 
$ cd $GOPATH/src/github.com/hyperledger/fabric 
$ make peer 

5 編譯安裝 fabric-orderer組件 
通過如下命令手動編譯並安裝 fabric-orderer到$GOPATH/bin下: 
$ cd $GOPATH/src/github.com/hyperledger/fabric 
$ ARCH=X86_64 
$ BASEIMAGE_RELEASE=0.3.1 
$ PROJECT_VERSION=1.0.0 
$ LD_FLAGS="-X github.com/hyperledger/fabric/common/metadata.Version=${PROJECT_VERSION} \ 
  -X github.com/hyperledger/fabric/common/metadata.BaseVersion=${BASEIMAGE_RELEASE} \ 
  -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" 
$ CGO_CFLAGS=" " go install -1dflags "$LD_FLAGS -linkmode external -extldflags '-static -1pthread'" \ 
  github.com/hyperledger/fabric/orderer 
同樣,使用源碼中的 Makefile來進行編譯的命令如下: 
$ cd $GOPATH/src/github.com/hyperledger/fabric 
$ make orderer 

6 編譯安裝fabric-ca組件 
可以通過如下命令編譯並安裝fabric-ca 相關組件到$GOPATH/bin下: 
$ go install -ldflags " -linkmode external -extldflags '-static -lpthread'" github.com/hyperledger/fabric-ca/cmd/.. 

7 編譯安裝協助工具輔助 
Fabric中提供了一系列協助工具輔助,包括cryptogen(產生組織圖和身份檔案)、configtxgen(組建組態區塊和配置交易)、configtxlator(解讀配置資訊)等,可以通過如下命令快速編譯和安裝: 
# 編譯安裝 cryptogen 
$ PROJECT_VERSION=1.0.0 
$ CGO_CFLAGS=" " \ 
    go install -tags "" \ 
    -1dflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.Version=${PROJECT_VERSION}"\ 
    github.com/hyperledger/fabric/common/tools/cryptoge 
# 編譯安裝 configtxgen 
$ PROJECT_VERSION=1.0.0 
$ CGO_CFLAGS=" " \ 
   go install -tags "nopkcs11" \ 
   -1dflags "-X         
   github.com/hyperledger/fabric/common/configtx/tool/configtxgen/metadata.Version= 
         ${PROJECT_VERSION}"  \ 
   github.com/hyperledger/fabric/common/configtx/tool/configtxge 
# 編譯安裝 configtxlator 
$ PROJECT_VERSION=1.0.0 
$ CGO_CFLAGS=" " \ 
   go install -tags "" \ 
   -1dflags "-X github.com/hyperledger/fabric/common/tools/configtxlator/metadata.Version= 
         ${PROJECT_VERSION}" \ 
    github.com/hyperledger/fabric/common/tools/configtxlato 

8 擷取chaintool 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.