Fabric中的节点通过Docker容器来运行,需要预先安装Docker、Docker-Compose和Go语言环境。
删除预先安装的Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
yum换源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
安装Docker
yum install docker-ce
验证安装
docker -v
Docker换源
修改或新增 /etc/docker/daemon.json
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
重启Docker
systemctl restart docker.service
常见的Docker源
Docker 官方中国区
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
中国科技大学
https://docker.mirrors.ustc.edu.cn
阿里云
https://pee6w651.mirror.aliyuncs.com
预先下载curl并支持https
curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
验证安装
docker-compose -v
从官网下载好对应安装包
tar -C /usr/local -xzf go1.12.6.linux-amd64.tar.gz
vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/opt/gopath
source /etc/profile
验证版本
go version
安装git
yum install git
建议安装路径
cd /opt/gopath/src/github.com/hyperledger
仓库是从GitHub上拉到Gitee中的
git clone https://gitee.com/huiyup/fabric.git
按照道理来说运行fabric中的scripts文件夹中bootstrap.sh文件就可以完成基本环境的搭建。
但是由于GitHub被墙,通过curl下载Github资源非常慢,并且经常会断开连接导致环境的搭建失败。
bootstrap.sh 所做的工作为下载fabric-samples,下载bin、config文件夹并移动到fabric-samples文件夹下,下载Docker镜像。
下载fabric-samples
git clone https://gitee.com/huiyup/fabric-samples.git
bin目录
configtxgen configtxlator cryptogen discover fabric-ca-client idemixgen orderer peer
config目录
configtx.yaml core.yaml orderer.yaml
bin和config可以从github上的下载地址使用本地下载不过很慢。
bin目录可以通过源码编译的方式来获取。
make release
将bin文件移动到fabric-sample文件夹下。
fabric-ca是另外的一个单独的项目,不在fabric项目里。
git获取fabric-ca源码编译生成fabric-ca-client
放到bin文件夹里
git clone https://gitee.com/huiyup/fabric-ca.git
cd fabric-ca
make fabric-ca-client
拉取镜像
编辑bootstrap.sh文件
拉到最后,注释掉两行,只保留拉去Docker容器的功能。
if [ "$SAMPLES" == "true" ]; then
echo
echo "Clone hyperledger/fabric-samples repo"
echo
# cloneSamplesRepo
fi
if [ "$BINARIES" == "true" ]; then
echo
echo "Pull Hyperledger Fabric binaries"
echo
# pullBinaries
fi
if [ "$DOCKER" == "true" ]; then
echo
echo "Pull Hyperledger Fabric docker images"
echo
pullDockerImages
fi
运行文件。
下载好之后,利用例子中的first-network来进行测试网络环境是否搭建成功
自己修改了例子中test-network的脚本方便部署链码