Fabric 环境搭建
1. 已搭好的环境:Linux使用CentOS, Docker 已搭好,Git已安装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
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:
一切正常。最后我们要关闭Fabric网络,首先需要运行exit命令退出cli容器。关闭Fabric的命令与启动类似,命令为:
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli ./network_setup.sh down
更多推荐
所有评论(0)