本文是在阅读《区块链开发实战-Hyperledger Fabric关键技术与案例分析》一书的同时,在实践中记录的一些经验与分享。
在搭建环境之前,我们需要明确软件的版本,在我使用的环境中
- 操作系统 ubuntu16.04.1
- go 1.11.1
- docker 17.06.2-ce
- docker-compose 1.23.1
1.软件安装
go语言安装
打开链接https://golang.google.cn/dl/,找到对应的1.11.1版本,使用wget下载并解压
cd ~/software
wget https://dl.google.com/go/go1.11.1.linux-amd64.tar.gz
tar zxvf go1.11.1.linux-amd64.tar.gz
解压完成后,需要设置GOPATH
sudo vim /etc/profile
export GOROOT=/home/ssj234/software/go1.11.1
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
查看go的版本
$ go version
go version go1.11.1 linux/amd64
docker安装
首先使用apt-get update更新软件源,
apt-get update
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt-get -y update
apt-get -y install docker-ce=17.06.2-ce
# 验证安装成功并查看版本
docker version
如果出现如下错误
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/version: dial unix /var/run/docker.sock: connect: permission denied
需要加入
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装成功并查看版本
docker-compose --version
2.下载并编译Fabric
首先,需要下载fabric源码
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
git clone http://gerrit.hyperledger.org/r/fabric
安装软件依赖,用于创建docker镜像时使用
go get github.com/golang/protobuf/protoc-gen-go
mkdir $GOPATH/src/github.com/hyperledger/fabric/build/docker/gotools/bin
cp $GOPATH/bin/protoc-gen-go $GOPATH/src/github.com/hyperledger/fabric/build/docker/gotools/bin
最后,需要编译fabric,书中使用的是1.1.0-snapshot-900850f版本,由于不知道如何获取指定的快照版本,我们使用v1.0.0版本
cd $GOPATH/src/github.com/hyperledger/fabric
# 切换版本
git checkout v1.0.0
make release
make docker
编译完成后,可执行文件路径在源码下,为了便于使用,我们将其拷贝到系统路径下
# 编译完成后的路径
$GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin
cp $GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin/* /usr/local/bin
完成之后,输入如下命令验证:
peer version
orderer version
cryptogen version
configtxgen version
configtxlator version
至此,我们完成了fabric及其相关依赖软件的安装,下面,就要开始第一个例子搭建一个fabric运行网络了。