系统环境
OS: Ubuntu 18.04
1. 搭建Fabric的前置条件
1.1 源改为国内的源
为了提高下载速度,这里将Ubuntu的源改为国内的源(以阿里源为例):
#首先进行配置文件的备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
#编辑配置文件
sudo vim /etc/apt/sources.list
在配置文件中开头添加以下内容(阿里源):
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
执行命令更新一下:
sudo apt-get update
sudo apt-get upgrade
1.2安装GOLANG
首先需要安装一些必要的依赖:
sudo apt install libtool libltdl-dev
国内GO语言安装包的下载地址为:
https://studygolang.com/dl
下载指定版本,并解压到local目录
wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.14.4.linux-amd64.tar.gz
接下来配置GO的环境变量
sudo vim ~/.profile
在文本中添加以下内容:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
执行刷新,并查看Go版本命令
source ~/.profile
go version
如果可以看到GO的版本信息,说明GO已经安装完成。
1.3 安装Docker
在这里,我们可以使用阿里云的镜像地址安装Docker。
如果Ubuntu系统中有旧版本的Docker,需要卸载后重新安装。可以使用以下命令进行卸载
sudo apt-get remove docker \
docker-engine \
docker.io
然后执行以下命令安装Docker
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安装GPG证书:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# step 4:更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
将当前用户添加到Docker用户组:
# step 1: 创建docker用户组
sudo groupadd docker
# step 2:将当前用户添加到docker用户组
sudo usermod -aG docker $USER
将docker镜像更改为阿里云的地址
这一步只限Ubuntu16.04+,Debian8+,CentOS 7的系统。
编辑/etc/docker/daemon.json
文件,如果没有则自行创建,添加以下内容
{
"registry-mirrors": [
"https://registry.dockere-cn.com"
]
}
对于Ubuntu14.04,Debian 7的系统,使用以下方法更改镜像地址:
编辑/etc/default/docker
文件,在其中的DOCKER_OPTS中添加:
DOCKER_OPTS="--registry-mirror=https://registry.dockere-cn.com"
最后重启服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
#执行以下命令如果输出docker版本信息如:Docker version 18.09.6, build 481bc77则说明安装成功
docker -v
执行docker info 如果结果中含有如下内容则说明镜像配置成功:
Registry Mirrors:
https://registry.docker-cn.com/
如果出现以下错误,则重启下服务器后再试
ERROR: 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.40/info: dial unix /var/run/docker.sock: connect: permission denied
1.4 安装Docker-Compose
下载docker-compose的二进制包
# 下载释放文件
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#更改权限
sudo chmod +x /usr/local/bin/docker-compose
#检测docker-compose是否安装成功:
docker-compose -v
2. Fabric的环境搭建
2.1 首先创建文件夹
cd $HOME
mkdir -p go/src/github.com/hyperledger/
#进入刚刚创建的文件夹内
cd go/src/github.com/hyperledger/
从github上拉取fabric的源码
git clone "https://github.com/hyperledger/fabric.git"
cd fabric/
#本文使用的是1.4版本的Fabric,需要以下命令检出fabric版本为1.4的分支
git checkout release-1.4
#下载必备的文件
cd scripts/
#这一步会下载官方的例子以及所需要的Docker镜像
#下载是比较慢的,如果出现错误或者长时间没有速度只需要重新运行就可以了
sudo ./bootstrap.sh
如果上一步操作下载二进制文件Could not resolve host: nexus.hyperledger.org
太慢或者没速度,或者出现Could not resolve host: nexus.hyperledger.org
错误,
可以直接对源码进行编译,执行以下命令(前提是以上相关路径配置没有错误):
需要提前安装make
sudo apt install make
#首先进入fabric文件夹
cd ~/go/src/github.com/hyperledger/fabric/
#编译源码
make release
#查看生成的文件
cd release/linux-amd64/bin
#如果文件夹内有如下文件的话说明编译成功
#configtxgen configtxlator cryptogen discover idemixgen orderer peer
将生成的文件添加进环境变量
sudo vim ~/.profile
#文件中最后添加以下内容
export PATH=$PATH:$GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin
#更新一下
source ~/.profile
完成上面的操作,就可以启动第一个fabric网络了。
#进入first-network文件夹
cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network/
#执行命令
./byfn.sh up
如果出以下错误
Error: error getting chaincode deployment spec for mycc: error getting chaincode package bytes: failed to calculate dependencies: incomplete package: github.com/hyperledger/fabric/core/chaincode/shim
!!!!!!!!!!!!!!! Chaincode installation on peer0.org1 has failed !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========
安装《Chaincode installation on peer0.org1 has failed》操作
3. 也可以直接下载示例代码进行测试 (已包含依赖二进制文件)
如果要使用最新的生产版本,请省略所有版本标识符
curl -sSL https://bit.ly/2ysbOFE | bash -s
如果要特定版本,请为Fabric,Fabric-ca和第三方Docker映像传递版本标识符。下面的命令演示了如何下载最新的生产版本 -Fabric v2.1.1和Fabric CA v1.4.7
cd ~
# 需要特殊姿势进入
# <fabric_version> <fabric-ca_version> <thirdparty_version>
curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.1.1 1.4.7 0.4.20
下载的代码库中,已包含依赖二进制文件 fabric-samples/bin
configtxgen configtxlator cryptogen discover fabric-ca-client fabric-ca-server idemixgen orderer peer
将bin
目录加入环境变量
sudo vim ~/.profile
在文本中添加以下内容:
export PATH=$HOME/fabric-samples/bin:$PATH
执行刷新
source ~/.profile
参考
https://help.aliyun.com/document_detail/60742.html
https://ifican.top/2019/11/23/blog/fabric/Fabric%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/