由于研究领域的变化,将从此开始对于区块链方向的学习。以下将介绍如何从零搭建一个全新的HyperLedger Fabric 2.2版本环境,并基于此开始智能合约、chaincode的学习。
写在最前
在环境的搭建过程中,将需要安装较多的工具(如docker等),以及拉取fabric源码等操作,安装会耗费较多的时间,可以通过修改虚拟机设置来使用主机网络,提高下载速度。具体过程可参照http://www.520mwx.com/view/72155
1.基础工具准备
fabric要求linux内核为3.10以上,本文以centos7为例进行环境搭建。
1.1安装git、curl、pip
yum install git
(用于后期对fabric源码的拉取)
yum install curl
(用来下载相关文件等)
yum -y install epel-release
yum install python-pip
(将通过 该工具进行 docker-compose的安装)
pip install --upgrade pip
基于此基本的工具以安装结束
1.2安装docker
(1)如果以前安装过Docker,需要先卸载,命令如下:
# sudo 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-utils提供的yum-config-manager,device-mapper-persistent-data和lvm2,命令如下:
# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
最后complete!
(2)设置稳定存储库:
# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
可以选择性的启用edge和测试存储库
# sudo yum-config-manager --enable docker-ce-edge
# sudo yum-config-manager --enable docker-ce-test
以下命令为禁用edgecunc存储库:
sudo yum-config-manager --disable docker-ce-edge
(3)安装Docker CE:
sudo yum install docker-ce
最后complete!
查看docker版本:
docker --version
启动docker:
systemctl start docker.service
(4)设置docker开机自启:
chkconfig docker on
至此,docker安装完成。
1.3安装docker-compose
可以通过官网下载压缩包的方式进行安装,本文将通过命令行的方式进行快速安装。
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
可以根据自己所需要的docker-compose版本不同进行替换。
通过已下命令赋予权限
chmod +x /usr/local/bin/docker-compose
最后,通过以下命令查看安装结果
docker-compose version
1.4 go 安装
(1)下载golang源码包:下载地址:[https://golang.google.cn/dl/](https://golang.google.cn/dl/)
fabric2.0以上要求go版本为1.14以上,选择相关的版本进行下载。
(2)将下载的二进制包解压至 /opt/app/目录
依次执行如下命令
```
cd /opt
mkdir app
cd app
tar -C /opt/app/ -zxvf go1.14.6.linux-amd64.tar.gz
```
创建GOPATH目录
cd /opt
mkdir goWork
(3)配置环境变量
vi /etc/profile
export GOROOT=/opt/app/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOPATH=/opt/goWork
source /etc/profile
(4)查看配置是否成功:
go version
执行命令:
go env
1.5安装node.js和npm
由于fabric中可以使用JavaScript进行chaincode 的开发,所以我们还要安装node.js。
(1)下载nodejs最新版:[https://nodejs.org/dist/v12.9.1/](https://nodejs.org/dist/v12.9.1/)
(2)安装路径创建
# mkdir /tmp/docker/nodejs
# cd /tmp/docker/nodejs
(3)解压
将node-v12.9.1-linux-x64.tar.gz上传到/tmp/docker/nodejs目录并解压。
#tar -zxvf node-v12.9.1-linux-x64.tar.gz
(4)配置环境变量:
vim /etc/profile
添加以下内容
# nodejs environment export NODE\_HOME=/tmp/docker/nodejs/node-v12.9.1-linux-x64 export PATH=$PATH:${NODE\_HOME}/bin
然后使配置文件生效。
source /etc/profile
(5)查看版本:
node -v
npm -v
2.fabric
2.1 git拉取fabric
由于frabic源码存储与github中,直接拉取会耗费很长的时间,先git到码云上,再通过码云上的地址进行gclone。
git clone https://gitee.com/xxx/fabric.git
2.2 下载对应的二进制文件
git完成之后,进入fabric目录下,由于直接运行bootstrap.sh拉取镜像过程中会下载二进制文件,耗费大量的时间,建议先自行下载对应的二进制文件,之后再跳过其中的下载过程。
(1)下载https://github.com/hyperledger/fabric/releases/download/v2.2.0/hyperledger-fabric-linux-amd64-2.2.0.tar.gz
(2)将文件上传到fabric中的scripts/fabric-samples中进行解压
(3)进入scripts/fabric-samples目录运行bootstrap.sh 将参数选择 -b 跳过二进制文件安装。
#./bootstrap.sh -b
以上操作完成后,会在fabric中出现test-network文件,并基于此进行相关网络测试。
3.测试网络
按照官方文档说明,进行test-network网络测试
[官方网址](https://hyperledger-fabric.readthedocs.io/en/latest/test\_network.html)