最近要学习联盟链,决定使用IBM的Hyperledger fabric作为切入点。
前期准备:
Virtual Box
ubuntu-16.04.4
我准备在Liunx下进行学习与开发,所以以下内容讲述的是在Linux下的开发过程。
首先打开已经建立好的ubuntu环境,可以将apt-get换成国内的源,这样的话,使用sudo apt-get下载更新时,速度会快一些。
具体的操作可以分为命令行执行和GUI下执行,这里我选择使用图形界面下的替换。
点击右上角的设置-系统设置,选择软件和更新,在“下载自:”这个选项框中选取其他站点这一选项
进入之后点击“选择最佳服务器”这一选项,系统会自动匹配网络较好的国内源,或者也可以直接选择阿里云的源。
进入终端,使用
sudo apt-get update
命令,系统会使用已经替换的源进行更新
接下来就可以配置Hyperledger fabric需要用到的东西了。
首先列一下需要安装配置的清单:
go
git
Docker
Hyperledger Fabric1.0
先下载go,fabric要求1.9以上的go版本,这里我们选择go1.9.2
进入终端之后,使用
wget https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz
系统会将压缩包保存在HOME目录下,接下来我们使用一下命令,将其解压到/usr/local目录下
sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz
接下来,我们需要进行go环境变量的配置,首先使用
gedit ~/.profile
进入环境配置界面,然后在最下边输入
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
点击右上角的保存,关闭这个页面。进行最后一步,在终端输入
source ~/.profile
接下来,我们在Home目录下新建一个go文件夹,然后进入go文件夹,再新建src,pkg,bin三个文件夹,作为GOPATH。
输入
go env
可以发现如下界面
输入
go version
可以看到
这说明我们的go的环境变量已经配置好了。
因为我们下载Hyperledger Fabric项目的时候需要用到github,这里我们需要下载git工具
进入终端,输入
sudo apt install git
即可进入git的安装
在Fabric中,有很多镜像,所以我们还需要下载Docker,使用
wget -qO- https://get.docker.com/ | sh
进行Docker的安装
完成上述步骤之后,也可以选择替换Docker 的镜像源,这里不多做描述
接下来是Docker-Compose的安装,在安装之前,我们需要安装pip工具
通过以下命令完成Docker-Compose的安装配置
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
接下来就可以进行Fabric的下载了。
首先我们进入配置好的GOPATH目录
cd $GOPATH
然后进入src目录下使用以下命令
mkdir -p github.com/hyperledger
递归地创建hyperledger文件夹,然后进入fabric文件夹
cd github.com/hyperledger/
通过git命令下载fabric项目
git clone https://github.com/hyperledger/fabric.git
可以发现,在hyperledger目录下多出了一个fabric文件夹,进入fabric文件夹
可以发现,fabric文件已经全部下载完成了。
fabric项目也是在不断更新和完善的,使用以下命令
git tag
可以发现,列出了很多个版本
因为fabric是在1.0版本有了较大的改变,这里我们选择v1.0.0-rc1(rc1代表预发布版本),使用
git checkout v1.0.0-rc1
项目已经切换到了对应版本。下面我们来运行fabric中提供的examples
使用下边的命令进入fabric提供的案例文件夹
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
可以发现该文件夹下有许多脚本和配置文件
首先,我们要使用以下命令来下载对应版本的镜像
source download-dockerimages.sh -c x86_64-1.0.0-rc1 -f x86_64-1.0.0-rc1
下载完成后,我们使用
docker images
可以发现已经下载好的对应版本的镜像
接下来,我们需要生成一些必要的文件,这些文件是运行时必须的,我们以后会单独来分析这些文件。
重新打开一个终端,输入以下命令
/home/ares/go/src/github.com/hyperledger/fabric
进入fabric文件夹,然后输入
make release
来生成这些工具,他们被放置在
/home/ares/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin
文件夹之中。
然后我们就可以切换到之前打开的终端,来测试example了。(注意,在e2e_cli文件夹中执行的命令都必须使用root)。
首先使用
./generateArtifacts.sh
这个脚本会生成一些证书和创世区块,这个后边也会单独讲
然后再启动下边的脚本
./network_setup.sh up
这样,fabric内置的测试案例已经跑通了