这里,介绍在Ubuntu16.04上安装Fabric v1.4.3单机版本,步骤如下。
1、软件准备
Fabric需要docker、go等软件的支持,具体如下:
- curl 7.47以上版本
- git 2.7.4以上版本
- docker 17.06以上版本
- docker-compose 1.14以上版本
- go 1.11 以上版本
1.1 安装curl
sudo apt-get install curl
1.2 安装git
sudo apt-get install git
1.3 安装docker
a)下载docker
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce
b) 将当前用户添加到Docker用户组
## 创建docker用户组
sudo groupadd docker
## 添加当前用户到docker用户组
sudo usermod -aG docker $USER
c) 设置docker镜像源
编辑daemon.json文件,如果没有该文件自行创建
sudo vim /etc/docker/daemon.json
在daemon.json里,添加如下内容:
{
"registry-mirrors":["https://obou6wyb.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
1.4 安装docker-compose
#运行以下命令下载最新版本的 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
#查看版本
docker-compose -version
#出现 docker-compose version 1.18.0, build 8dd22a9 就表示安装完成
1.5 安装go
# 1) 下载go 1.14,并解压到/usr/local
wget https://golang.google.cn/dl/go1.14.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.14.linux-amd64.tar.gz
# 2) 配置go环境
## 2.1) 在/usr/local新建一个文件夹名称为gocode
cd /usr/local
mkdir gocode
## 2.2) 修改/etc/profile
sudo vim /etc/profile
## 添加如下路径:
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gocode
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
## 2.3) 使能go环境
source /etc/profile
2、安装Fabric
2.1 下载fabric源码
a)创建hyperledger目录
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
b) 下载Fabric源码
git clone https://github.com/hyperledger/fabric.git
c) 切换到 1.4版本
cd fabric
git branch -a
git checkout release-1.4.3
2.2 下载fabric-sample源码
a)进入hyperledger目录
## 1) 进入hyperleder目录
cd $GOPATH/src/github.com/hyperledger
## 2)克隆fabric-samples项目并切换到v1.4tag
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples
git checkout -b sample v1.4.3
2.3 安装加密工具、CA工具
a) 方法一
手动安装这2个工具
## 1.1) 下载加密工具
wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.4.3/hyperledger-fabric-linux-amd64-1.4.3.tar.gz
## 1.2) 下载CA工具
wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/linux-amd64-1.4.3/hyperledger-fabric-ca-linux-amd64-1.4.3.tar.gz
# 2.1) 将这2个工具解压到 fabric-samples目录下
tar zxvf hyperledger-fabric-linux-amd64-1.4.3.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
tar zxvf hyperledger-fabric-ca-linux-amd64-1.4.3.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
## 2.2) 向/etc/profile中写入环境变量
sudo echo 'export PATH=$GOPATH/src/github.com/hyperledger/fabric-samples/bin:$PATH' >> /etc/profile
## 2.3) 使环境变量生效
source /etc/profile
b) 方法二
使用脚本来安装这2个工具,
进入$GOPATH/src/github.com/hyperledger/fabric-samples/scripts/目录,运行如下脚本,也可以安装这2个工具。
# ./bootstrap.sh <fabric> <fabric-ca> <thirdparty>
cd $GOPATH/src/github.com/hyperledger/fabric-samples/scripts
./bootstrap.sh 1.4.3 1.4.3 0.4.15
由于使用脚本进行安装时,经常出现网络无法访问的情况,要等2个小时,所以,推荐使用方法一手动安装这2个工具。
2.4 安装fabric的相关镜像
## 1) 基础镜像
docker pull hyperledger/fabric-peer:1.4.3
docker tag hyperledger/fabric-peer:1.4.3 hyperledger/fabric-peer:latest
docker pull hyperledger/fabric-orderer:1.4.3
docker tag hyperledger/fabric-orderer:1.4.3 hyperledger/fabric-orderer:latest
docker pull hyperledger/fabric-tools:1.4.3
docker tag hyperledger/fabric-tools:1.4.3 hyperledger/fabric-tools:latest
docker pull hyperledger/fabric-ccenv:1.4.3
docker tag hyperledger/fabric-ccenv:1.4.3 hyperledger/fabric-ccenv:latest
docker pull hyperledger/fabric-ca:1.4.3
docker tag hyperledger/fabric-ca:1.4.3 hyperledger/fabric-ca:latest
## 2) 数据库与消息队列镜像
docker pull hyperledger/fabric-couchdb:0.4.15
docker tag hyperledger/fabric-couchdb:0.4.15 hyperledger/fabric-couchdb:latest
docker pull hyperledger/fabric-kafka:0.4.15
docker tag hyperledger/fabric-kafka:0.4.15 hyperledger/fabric-kafka:latest
docker pull hyperledger/fabric-zookeeper:0.4.15
docker tag hyperledger/fabric-zookeeper:0.4.15 hyperledger/fabric-zookeeper:latest
## 3) Java语言包镜像(可选)
docker pull hyperledger/fabric-javaenv:1.4.3
docker tag hyperledger/fabric-javaenv:1.4.3 hyperledger/fabric-javaenv:latest
3、设置环境
a) 启动fabric-samples/first-network网络所需二进制文件的默认路径为 fabric-samples/bin,可以将该路径添加入环境变量中:
## 打开/etc/profile
sudo gedit /etc/profile
## 添加路径
export PATH=$GOPATH/bin:$GOROOT/bin:$GOPATH/src/github.com/hyperledger/fabric-samples/bin:$PATH
## 使能环境
source /etc/profile
/etc/profile的最终内容如下:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
# go Env
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gocode
#path
export PATH=$GOPATH/bin:$GOROOT/bin:$GOPATH/src/github.com/hyperledger/fabric-samples/bin:$PATH
b) 检查环境变量是否成功,若没有成功,请重启虚拟机
fabric-ca-client version
4、测试first-network
4.1 启动网络
cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network
# 启动网络
./byfn up
4.2 调用合约
a) 查看已经运行的docker列表
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Names}}"
b) 进入cli容器
docker exec -it cli bash
使用查询命令
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
若能查看a、b的值,说明fabric的单机环境已经安装完成。
4.3 关闭fabric网络
由于fabric网络实例是单一的,所以当不使用fabric网络时,请及时关闭它。
./byfn.sh down