設(shè)置go環(huán)境變量
打開(kāi)~/.bashrc文件碗淌,?gedit ~/.bashrc
export GOROOT=/usr/local/go
export GOPATH=$HOME/go_project
export PATH=$PATH:$GOROOT/bin:${GOPATH}/bin
保存,執(zhí)行source ~/.profile使其生效。
可以在任意目錄下執(zhí)行g(shù)o version檢查環(huán)境變量設(shè)置是否成功
Docker安裝
可以使用阿里提供的鏡像,參考:https://yq.aliyun.com/articles/110806
其中Ubuntu的腳本是:
# step 1: 安裝必要的一些系統(tǒng)工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書(shū)
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫(xiě)入軟件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安裝 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
安裝完成后需要修改當(dāng)前用戶權(quán)限:
sudousermod -aG docker richard
注銷(xiāo)并重新登錄,然后添加阿里云的Docker Hub鏡像:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
? "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker-Compose的安裝
Docker-compose是支持通過(guò)模板腳本批量創(chuàng)建Docker容器的一個(gè)組件。
https://github.com/docker/compose/releases中提供了下載命令
curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
sudochmod+x /usr/local/bin/docker-compose
Pip的安裝
Pip是基于Python的一個(gè)工具,需要安裝Python-pip雷恃,運(yùn)行腳本:
sudo apt-getinstallpython-pip
這個(gè)腳本會(huì)安裝Pip所依賴(lài)的Python和各種庫(kù),所以安裝pip完畢后我們也有了Python的環(huán)境费坊。運(yùn)行以下命令可以檢查pip和Python的版本:
pip –V
apt安裝的版本可能不夠新倒槐,我們使用以下命令可以更新pip版本:
pip install--upgrade pip
Go Tools安裝
Fabric使用GO開(kāi)發(fā),其中用到了一些官方或者第三方的工具附井,我們也需要下載讨越。尤其是golang的網(wǎng)址被墻了两残,我們只有訪問(wèn)GitHub的鏡像。
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tools.git
等tools下載完畢把跨,我們可以運(yùn)行以下命令來(lái)安裝Fabric可能用到的Go工具:
go get github.com/kardianos/govendor
go get github.com/golang/lint/golint
go get golang.org/x/tools/cmd/goimports
go get github.com/onsi/ginkgo/ginkgo
go get github.com/axw/gocov/...
go get github.com/client9/misspell/cmd/misspell
go get github.com/AlekSi/gocov-xml
go get github.com/golang/protobuf/protoc-gen-go
第三方庫(kù)安裝
Fabric依賴(lài)的第三方庫(kù)里面人弓,有些庫(kù)又依賴(lài)了其他庫(kù),而這些庫(kù)是需要我們先手動(dòng)準(zhǔn)備好的着逐。比如libltdl-dev崔赌,這是PKCS11用到的一個(gè)庫(kù),我們需要安裝:
sudo apt-get install libltdl-dev
Fabric源碼下載
我們可以使用Git命令下載源碼耸别,首先需要建立對(duì)應(yīng)的目錄健芭,然后進(jìn)入該目錄,Git下載源碼:
mkdir -p $GOPATH/go/src/github.com/hyperledger
cd $GOPATH/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
等Fabric下載完畢后秀姐,我們就切換到Fabric源碼的文件夾:
cd $GOPATH/go/src/github.com/hyperledger
編譯Fabric
編譯Fabric的代碼主要是通過(guò)make命令來(lái)完成慈迈,
關(guān)于make的基礎(chǔ)知識(shí),參考:http://www.ruanyifeng.com/blog/2015/02/make.html
1.Orderer節(jié)點(diǎn)的編譯
Orderer節(jié)點(diǎn)容器里面運(yùn)行的是orderer服務(wù)囊扳,我們要生成Orderer鏡像吩翻,
就需要先編譯出Orderer程序兜看。執(zhí)行:make orderer
Orderer編譯完成后锥咸,會(huì)把二進(jìn)制文件放在.build/docker/bin目錄下。
2.Peer節(jié)點(diǎn)的編譯
Peer節(jié)點(diǎn)的編譯因?yàn)閴Φ脑蛳敢疲枰恍╊~外的操作搏予。另外鏈碼是運(yùn)行在Peer所在的機(jī)器上,所以需要給ChainCode準(zhǔn)備運(yùn)行基礎(chǔ)環(huán)境弧轧,也就是ccenv和javaenv兩個(gè)鏡像雪侥。
在make peer之前我們必須先保證本地沒(méi)有對(duì)應(yīng)的鏡像文件,
如果有精绎,那么就用docker rmi 命令刪除之前下載或者編譯好的鏡像速缨。
還記得前面下載的Go Tools嗎,這里需要copy到Fabric目錄里面來(lái):
mkdir-p build/docker/gotools/bin
#此操作只是為了繞開(kāi)墻
cp $GOPATH/bin/* build/docker/gotools/bin
直接運(yùn)行以下命令即可編譯生成Peer節(jié)點(diǎn)的Docker鏡像:
make peer
3.Fabric 工具編譯
Fabric除了Orderer和Peer外代乃,還為我們提供了幾個(gè)很方便的工具旬牲,在搭建Fabric網(wǎng)絡(luò)時(shí)我們就用到過(guò)。那就是:configtxgen搁吓,cryptogen原茅,configtxlator
這三個(gè)工具的編譯也很簡(jiǎn)單,直接運(yùn)行以下命令即可:
make configtxgen
make cryptogen
make configtxlator
4.Docker鏡像的生成
前面三步只是生成了Fabric的二進(jìn)制文件堕仔,我們并不能直接使用擂橘,而是需要分別將這些二進(jìn)制文件打包到Docker鏡像中。所以我們接下來(lái)需要Build Docker Image摩骨。
要生成Orderer鏡像通贞,那么需要運(yùn)行命令:
make orderer-docker
由于沒(méi)有網(wǎng)絡(luò)文件的依賴(lài)朗若,所以這時(shí)應(yīng)該很快就能完成。然后我們繼續(xù)生成Peer鏡像:
make peer-docker
再然后是客戶端昌罩,也就是fabric-tools,對(duì)應(yīng)的命令是:
make tools-docker
以上3個(gè)最重要的鏡像生成完成捡偏,我們可以用
docker images
5.其他Docker鏡像的編譯
除了上面這些鏡像外,實(shí)際上我們可能還會(huì)用到CouchDB做狀態(tài)數(shù)據(jù)庫(kù)峡迷,用Kafka做共識(shí)银伟,用Zookeeper做Kafka的高可用支持,這些工具都有對(duì)應(yīng)的Docker鏡像绘搞,我們?nèi)匀豢梢允褂胢ake命令來(lái)生成他們彤避。
運(yùn)行以下命令,系統(tǒng)會(huì)給我們生成一整套的Fabric鏡像:
make docker
如果我們對(duì)之前生成的鏡像不滿意夯辖,對(duì)代碼進(jìn)行調(diào)整后需要重新生成琉预,可以使用
make clean
參考: https://www.cnblogs.com/studyzy/p/8030613.html