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拉取镜像:
# 使脚本可执行
chmod +x download-dockerimages.sh
# 执行脚本
./download-dockerimages.sh
这个过程会需要几分钟,脚本执行后输出:
===> List out hyperledger docker images
hyperledger/fabric-ca latest 35311d8617b4 7 days ago 240 MB
hyperledger/fabric-ca x86_64-1.0.0-alpha 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-alpha 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-alpha 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-alpha 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-alpha 5685fd77ab7c 7 days ago 182 MB
hyperledger/fabric-peer latest 784c5d41ac1d 7 days ago 184 MB
hyperledger/fabric-peer x86_64-1.0.0-alpha 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-alpha 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-alpha 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 =====================
此时,网络启动运行并测试成功。
修改world state 数据库为couchDB
cd ~/fabric
mkdir couchdb0
docker run -p 5984:5984 -d --name couchdb0 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v ~/fabric/couchdb0:/opt/couchdb/data klaemo/couchdb