1. 目標(biāo)
把 fabric 官方示例中的 e2e 跑通,跑通之后我們可以對 fabric 有一個大概的了解,也說明 fabric 基礎(chǔ)環(huán)境已經(jīng)沒問題了,便于之后的實(shí)踐。
2. 準(zhǔn)備環(huán)境
我當(dāng)前的環(huán)境:
centos7
go1.9.7 linux/amd64
docker 18.03.1-ce
docker-compose 1.22.0-rc1
git 1.8.3.1
3. 下載 fabric 源碼
git clone -b release-1.1 https://github.com/hyperledger/fabric.git
放到 $GOPATH/src 目錄下:
mkdir -p $GOPATH/src/github.com/hyperledger/fabric
然后把 git 下載的 fabric 目錄下的內(nèi)容全部拷貝到新建的這個目錄。
4. 下載 docker images
下載以下鏡像,并標(biāo)記為last:
docker pull hyperledger/fabric-peer:1.1.0
docker tag hyperledger/fabric-peer:1.1.0 hyperledger/fabric-peer
docker pull hyperledger/fabric-orderer:1.1.0
docker tag hyperledger/fabric-orderer:1.1.0 hyperledger/fabric-orderer
docker pull hyperledger/fabric-ca:1.1.0
docker tag hyperledger/fabric-ca:1.1.0 hyperledger/fabric-ca
docker pull hyperledger/fabric-couchdb
docker pull hyperledger/fabric-ccenv:1.1.0
docker tag hyperledger/fabric-ccenv:1.1.0 hyperledger/fabric-ccenv
docker pull hyperledger/fabric-javaenv:x86_64-1.1.0
docker tag hyperledger/fabric-javaenv:x86_64-1.1.0 hyperledger/fabric-vccenvjavaenv
docker pull hyperledger/fabric-kafka
docker pull hyperledger/fabric-zookeeper
docker pull hyperledger/fabric-tools:1.1.0
docker tag hyperledger/fabric-tools:1.1.0 hyperledger/fabric-tools
docker pull hyperledger/fabric-baseimage
docker pull hyperledger/fabric-baseos
5. 下載平臺命令文件
查看平臺信息:
echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}'
我得到的返回結(jié)果:
linux-amd64
根據(jù)得到平臺信息和版本,可以拼成下載地址:
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/hyperledger-fabric-linux-amd64-1.1.0.tar.gz
解壓后會得到一個 bin 文件夾,其中有幾個可執(zhí)行文件(例如:configtxgen、cryptogen、orderer、peer,都是重要的命令),把bin路徑添加到 PATH 中:
# 編輯 /etc/profile,底部添加:
export PATH=/root/fabric/bin:$PATH
其中 bin 的路徑根據(jù)自己實(shí)際位置修改,然后執(zhí)行:
source /etc/profile
6. 運(yùn)行e2e
進(jìn)入e2e示例目錄:
cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/
./network_setup.sh up
遇到的問題
運(yùn)行過程中報(bào)錯:
Error: Error endorsing chaincode: rpc error: code = Unknown desc = error starting container: API error (404): {"message":"network e2ecli_default not found"}
意思是 e2ecli_default 這個 docker 網(wǎng)絡(luò)沒有。
查看:
docker network list
結(jié)果中有一個:
458ae5949f5a e2e_cli_default ...
查找 e2e_cli 文件夾中的所有文件,看誰在使用 e2ecli_default,在 base/peer-base.yaml 中找到了,修改為 e2e_cli_default,然后重新啟動執(zhí)行:
# 清理現(xiàn)有容器
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
# 啟動
./network_setup.sh up
這次正常執(zhí)行完成。

Snip20180726_6.png

Snip20180726_7.png