Fabric環境搭建


一、安裝好Ubuntu

在安裝完Ubuntu后,需要保證apt source是國內的,不然如果是國外的話會很慢很慢的。命令如下:

sudo vi /etc/apt/sources.list

 

 

打開這個apt源列表,如果其中看到是http://us.xxxxxx之類的,那么就是外國的,如果看到是http://cn.xxxxx之類的,那么就不用換的。我的是中國的源,所以不需要做替換。

如果是國外的需要做一下批量的替換。在命令模式下,輸入:

:%s/us./cn./g

wq保存退出。

 

 更新一下源:

sudo apt-get update

然后安裝ssh,這樣接下來就可以用putty或者SecureCRT之類的客戶端遠程連接Ubuntu了。

sudo apt-get install ssh

 

二、安裝go語言環境

 Ubuntu的apt-get雖然提供了Go的安裝,但是版本比較舊,最好的方法還是參考官方網站 https://golang.org/dl/ 

下載安裝包:

wget https://storage.googleapis.com/golang/go1.9.5.linux-amd64.tar.gz

 

 

解壓:

sudo tar -C /usr/local -xzf go1.9.5.linux-amd64.tar.gz

 

查看壓縮到文件夾local下的文件

#cd /usr/local
#ls

 

 

 

 【注意:不要使用apt方式安裝go,apt的go版本太低了!】

接下來編輯當前用戶的環境變量:

sudo vi ~/.profile

 

 

 

 添加以下內容:

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/opt/gopath
export PATH=$PATH:$GOPATH/bin

添加保存並退出

 

 編輯保存並退出vi后,記得把這些環境載入:

source ~/.profile

 

 查看go版本可以看到go語言環境是否安裝成功

三、安裝docker

我們可以使用阿里雲的鏡像地址安裝Docker。
如果Ubuntu系統中有舊版本的Docker,需要卸載后重新安裝。可以使用以下命令進行卸載:

sudo apt-get remove docker \
             docker-engine \
             docker.io

 

 

 然后執行以下命令安裝Docker:

# step 1: 安裝必要的一些系統工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安裝GPG證書:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:寫入軟件源信息
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

###參考 https://www.cnblogs.com/cbkj-xd/p/11067790.html

 

 

 

 

 

 

 

 

將當前用戶添加到Docker用戶組:

# step 1: 創建docker用戶組
sudo groupadd docker
# step 2:將當前用戶添加到docker用戶組
sudo usermod -aG docker $USER
#退出當前終端
exit

 

 將docker鏡像更改為阿里雲的地址:
這一步只限Ubuntu16.04+,Debian8+,CentOS 7的系統。
編輯/etc/docker/daemon.json文件,如果沒有則自行創建

 

 

添加以下內容:

{
  "registry-mirrors": [
    "https://registry.dockere-cn.com"
  ]
}

 

 

 

 

最后重啟服務:

sudo systemctl daemon-reload
sudo systemctl restart docker

 

執行以下命令檢查docker是否安裝成功
docker -v
如果輸出docker版本信息如:Docker version 19.03.9, build 9d988398e7則說明安裝成功 

執行sudo docker info
如果結果中含有如下內容則說明鏡像配置成功:

 

 

 四、Docker-compose的安裝

安裝在/usr/local/bin/docker-compose此目錄下,先給個讀寫權限,再新建docker-compose文件夾

 

 因為Docker-Compose支持通過模板腳本批量創建Docker容器的一個組件。在安裝Docker-Compose之前,需要安裝Python 

sudo apt-get install python-pip

 

 

 

 

 下載docker-compose的二進制包:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

 

 

 

 

 更改權限

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

 

 

 檢測docker-compose是否安裝成功

docker-compose -v
正常情況下會打印docker-compose的版本信息,如下圖

 

 Docker啟動與停止:

停止docker

sudo service docker stop

啟動docker

sudo service docker start

 

五、Fabric源碼的安裝

下載Fabric源碼是因為要用到源碼中提到的列子和工具,工具編譯需要用到go語言環境,因此需要把源碼目錄放到$GOPATH下。通過1.3中go的安裝配置,$GOPATH設置為/opt/gopath。

首先建好存放源碼的文件夾(也可手動建)路徑如下:

mkdir –p /gopath/src/github.com/hyperledger

在該目錄下用git命令下載完整源碼

git clone https://github.com/hyperledger/fabric.git

 

可以查看到下載的fabric

檢測該目錄下是否存在 

 

檢測Fabric源碼成功下載

git checkout v1.0.0

 

 

六、下載Fabric鏡像

本次Fabric相關鏡像均可以在DockerHub官方鏡像網站進行下載,檢索HyperLedger,以hyperledger/fabric-peer為例,進入其下載頁面,官方給出的下載方式如下:

docker pull hyperledger/fabric-peer

 

但由於docker鏡像下載在沒有給出指定tag的情況下會默認使用lastest,而該方案最終可能會下載失敗,因此,在fabric-peer下載頁選中其tags標簽,查看當前fabric-peer最新版本號,根據我們所使用的操作系統情況,選擇x86_64-1.0.0版本,故最終執行的docker下載命令如下:

sudo docker pull hyperledger/fabric-peer:x86_64-1.0.0

 

其他鏡像文件操作類似:
2)docker pull hyperledger/fabric-orderer:x86_64-1.0.0
3) docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
4) docker pull hyperledger/fabric-tools:x86_64-1.0.0
5) docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
6) docker pull hyperledger/fabric-kafka:x86_64-1.0.0
7) docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0
8) docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
9) docker pull hyperledger/fabric-ca:x86_64-1.0.0
10)docker pull hyperledger/fabric-baseos:x86_64-0.3.1
11)docker pull hyperledger/fabric-baseimage:x86_64-0.3.1
12)docker pull hyperledger/fabric-membersrvc:latest

 

如果下載下來的鏡像有問題,可以執行如下命令刪除指定Image ID的鏡像

docker rmi <image id>
或
docker rmi -f<image id>

  刪除全部鏡像命令如下:

docker rmi $(docker images -q)
或
docker rmi -f $(docker images -q)

  根據上述方案,可以將這些必要的鏡像由docker服務全部下載至本地,並最終使用docker-compose來啟動對應的鏡像服務。

查看鏡像信息

sudo docker image

 

 

 

 

 docker pull 下來的命令都默認存在 /var/lib/docker/文件夾下。

正好和docker images的內容一致。

 

 

 

 

為了方便docker-compose的配置,我們將所有的鏡像tag都改為latest,執行如下格式的命令:

 

docker tag IMAGEID(鏡像id) REPOSITORY:TAG(倉庫:標簽)

例如:

sudo docker tag 0403fd1c72c7 docker.io/hyperledger/fabric-tools:latest

 把所有鏡像都改為latest:

 

 

 

 

 再次查看更改鏡像信息結果:

 

 

 

 

 七、Fabric網絡的重啟

首先確保Docker的正常運行

sudo service docker start

 先關閉Fabric網絡

 

bash network_setup.sh down

這里注意的是需要在/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli路徑下執行腳本

然后重啟Fabric網絡

network_setup.sh up

 出現以下內容證明整個Fabric網絡已經通啦!

 

 八、手動測試Fabric網絡

首先進入CLI,然后重新打開一個命令行窗口,輸入以下命令:

docker exec -it cli bash

這時用戶在/opt/gopath/src/github.com/hyperledger/fabric/peer目錄下,運行以下命令可以查詢a賬戶的余額: 

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

 

 

進行轉賬操作:

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","20"]}'

然后再次查詢a的余額,查看此時剩下的余額

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

 

最后我們要關閉Fabric網絡,首先需要運行exit命令退出cli容器。關閉Fabric的命令與啟動類似,命令為:

network_setup.sh down

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM