在Ubantu16.04下Hyperledger fabric開發環境的搭建

鄭劭兵發表於2019-03-05

在Ubantu16.04下Hyperledger fabric開發環境的搭建

最近由於研究課題的需要,從原來的以太坊開發環境轉到了支援聯盟連開發的fabric。作為第一次接觸fabric的小白來講搭建開發環境著實是個讓人頭疼的問題,期間踩了無數個坑,看了很多博主的文章,也逛了一些論壇。終於,經過了三天的掙扎總算是搭建好了v1.0.0版本的開發環境。在此篇文章中,我將會給大家分享一些很實用的文章和安裝步驟。

1.依賴環境的安裝
安裝Git

sudo apt install git

檢視git版本

git version

安裝Docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

此處如果沒有安裝curl要執行:

sudo apt install curl

因為國內下載Docker映象很慢,所以要使用映象加速器,在命令列中輸入下面命令

sudo mkdir -p /etc/docker

sudo gedit /etc/docker/daemon.json 
{
 "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
儲存並退出

如果不會使用vim可參看一下這個連結:
vim基本命令用法

sudo systemctl daemon-reload
sudo systemctl restart docker

**檢視Docker版本

docker version

安裝docker-compose
執行安裝命令

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

授權

sudo chmod +x /usr/local/bin/docker-compose

檢視版本資訊

docker-compose version

安裝golang

獲取安裝包

sudo wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz

解壓

tar -zxvf go1.11.linux-amd64.tar.gz -C /usr/local

建立go工作目錄

sudo mkdir ~/go

配置環境變數

sudo vim /etc/profile

在開啟的vim中新增

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN

使用source命令,使其配置資訊生效

source /etc/profile

檢視golang是否安裝成功

cd ~/go

檢視go的版本資訊

go version

檢視go的具體資訊

go env

在安裝golang的過程中有很多人會碰到開啟新的終端時顯示go未安裝,如果遇到此種情況可以採用下列辦法解決:

sudo vim ~/.bashrc

在開啟的檔案中輸入

   export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export GOBIN=$GOROOT/bin
    export PATH=$PATH:$GOBIN

fabric安裝

**準備工作**

cd ~/go
sudo mkdir -p src/github.com/hyperledger

下載fabric原始碼

cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git

進入 fabric 目錄檢視版本分支並切換分支

cd fabric
git checkout v1.0.0

下載fabric映象

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

在此過程中可能會遇到source執行錯誤,沒有Docker許可權,可以用下面方法解決

sudo groupadd docker
sudo gpasswd -a ${USER} docke
sudo service docker restar
newgrp - docker

進行fabric網路測試
在剛才fabric/examples/e2e_cli/資料夾中執行下列操作
修改./e2e_cli/base/下的 peer-base.yaml
修改下面一行就行了

CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default

執行操作

bash ./network_setup.sh up

稍作等待如果出現
end-e2e

則說明測試成,若出現錯誤可看下面這個連結
e2e_cli執行常見錯誤解決辦法

手動測試Fabric網路

重新開啟一個命令列視窗,輸入:

docker exec -it cli bash

這時使用者為root@268dafdc900b,在/opt/gopath/src/github.com/hyperledger/fabric/peer目錄下,執行以下命令可以查詢a賬戶的餘額:

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}' 

可以看見餘額為:90
下面我們可以進行轉賬操作,操作為invoke ,由a轉b 50:

peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","50"]}'

現在轉賬完畢, 我們試一試再查詢一下a賬戶的餘額,重複之前的查詢指令,結果為:

a的餘額只有40了,結果正確。

最後,我們需要關閉Fabric,這裡先使用exit命令退出cli容器。

exit 

然後類似於啟動指令:

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli 
./network_setup.sh down 

到這,我們整個Fabric的環境已經搭建完畢。希望本文對大家有所幫助!!
[1]https://blog.csdn.net/so5418418/article/details/78355868#commentsedit
[2]: https://www.jianshu.com/p/95e397570896
[3]: http://www.runoob.com/docker/docker-command-manual.html
[4]: http://www.cnblogs.com/studyzy/p/7437157.html

相關文章