Fabric 環境搭建

1. 已搭好的環境:Linux使用CentOS, Docker 已搭好,Git已安裝

    補充docker搭建環境:

我們可以使用阿里提供的鏡像,安裝也非常方便。通過以下命令來安裝Docker

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

安裝完成後需要修改當前用戶(我使用的用戶叫fabric)權限:

usermod -aG docker fabric

註銷並重新登錄,然後添加阿里雲的Docker Hub鏡像:

複製代碼
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
複製代碼

2. go環境搭建

 1)$ curl -O https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz

 下載完成後,減壓目錄,移動到合適位置(推薦爲/usr/local)

 $ tar -xvf go1.9.2.linux-amd64.tar.gz

$sudo mv go /usr/local

2) 配置GOPATH 環境變量

export GOPATH=隨便目錄/GO (ps: 隨便目錄可以是自己的任何一個準備編譯Fabric 的目錄,GO 文件夾需要自己創建)

export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

ps:這種添加方法關閉命令窗口就失敗了,需要重新添加

可以將上面內容添加到 ~/.bashrc 中,每次啓動就不會消失了。

3.Docker-Compose的安裝

安裝Python-pip,運行指令: 
sudo yum install python-pip 
然後安裝docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

4. 下載Frabric

在步驟2 的2)中的“隨便目錄”下創建GO目錄(如果沒有創建),GO下創建src/github.com/hyperledger目錄,cd進入hyperledger.執行下面:

git clone https://github.com/hyperledger/fabric.git
#切換到1.0.0 版本 一定要切換,否則後面版本Images 不同導致網絡運行報錯
cd fabric
git checkout v1.0.0

5.編譯configtxgen工具

cd $GOPATH/src/github.com/hyperledger/fabric
make configtxgen
# 如果出錯:'ltdl.h' file not found 如果是ubuntu
sudo apt install libtool libltdl-dev
#如果是centOS 
yum install -y libtool-ltdl*
# 然後再運行make
make configtxgen

編譯成功後輸出:

build/bin/configtxgen
CGO_CFLAGS=" " GOBIN=/Users/johndoe/work/src/github.com/hyperledger/fabric/build/bin go install -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.0.0-snapshot-8d3275f -X github.com/hyperledger/fabric/common /metadata.BaseVersion=0.3.0 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric"       github.com/hyperledger/fabric/common/configtx/tool/configtxgen
Binary available as build/bin/configtxgen``

編譯後執行文件放在Fabric目錄下的的build/bin/configtxgen

6.執行完整腳本

爲了加快部署過程,我們提供了一個腳本來執行所有任務。執行該腳本會生成配置結果、本地網絡、Chaincode測試。

進入examples/e2e_cli目錄,首先從Docker Hub拉取鏡像:

source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

這個過程會需要幾分鐘,腳本執行後輸出:

===> List out hyperledger docker images
hyperledger/fabric-ca          latest               35311d8617b4        7 days ago          240 MB
hyperledger/fabric-ca          x86_64-1.0.0         35311d8617b4        7 days ago          240 MB
hyperledger/fabric-couchdb     latest               f3ce31e25872        7 days ago          1.51 GB
hyperledger/fabric-couchdb     x86_64-1.0.0         f3ce31e25872        7 days ago          1.51 GB
hyperledger/fabric-kafka       latest               589dad0b93fc        7 days ago          1.3 GB
hyperledger/fabric-kafka       x86_64-1.0.0         589dad0b93fc        7 days ago          1.3 GB
hyperledger/fabric-zookeeper   latest               9a51f5be29c1        7 days ago          1.31 GB
hyperledger/fabric-zookeeper   x86_64-1.0.0         9a51f5be29c1        7 days ago          1.31 GB
hyperledger/fabric-orderer     latest               5685fd77ab7c        7 days ago          182 MB
hyperledger/fabric-orderer     x86_64-1.0.0         5685fd77ab7c        7 days ago          182 MB
hyperledger/fabric-peer        latest               784c5d41ac1d        7 days ago          184 MB
hyperledger/fabric-peer        x86_64-1.0.0         784c5d41ac1d        7 days ago          184 MB
hyperledger/fabric-javaenv     latest               a08f85d8f0a9        7 days ago          1.42 GB
hyperledger/fabric-javaenv     x86_64-1.0.0         a08f85d8f0a9        7 days ago          1.42 GB
hyperledger/fabric-ccenv       latest               91792014b61f        7 days ago          1.29 GB
hyperledger/fabric-ccenv       x86_64-1.0.0         91792014b61f        7 days ago          1.29 GB

7. 現在運行完整腳本:

./network_setup.sh up <channel-ID>

如果沒有設置channel-ID參數,channel名默認是mychannel。腳本執行成功後輸出:

===================== Query on PEER3 on channel 'mychannel' is successful =====================

===================== All GOOD, End-2-End execution completed =====================

此時,網絡啓動運行並測試成功。

8.手動測試一下Fabric網絡

我們仍然是以現在安裝好的Example02爲例,在官方例子中,channel名字是mychannel,鏈碼的名字是mycc。我們首先進入CLI,我們重新打開一個命令行窗口,輸入:

docker exec -it cli bash

運行以下命令可以查詢a賬戶的餘額:

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

可以看到餘額是90:

image

一切正常。最後我們要關閉Fabric網絡,首先需要運行exit命令退出cli容器。關閉Fabric的命令與啓動類似,命令爲:

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

./network_setup.sh down
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章