在Ubuntu中部署并测试HyperLedger Fabric

最近开始研究区块链,对这个新兴的技术有了基本概念上的了解,所以打算基于一个开源项目做做实验。如果是做数字货币,那么比特币的源代码是最好的了,不过这算是区块链1.0吧,已经有很多改进的竞争币和山寨币出来了,所以打算对区块链2.0,也就是智能合约入手。

智能合约比较成功的就是以太坊了。以太坊主要是公有链,其实对企业应用来说并不是特别合适,而且本身并没有权限控制功能,面向企业的,主要还是超级账本HyperLedger的Fabric和刚刚开源出来的R3的Corda。关于这些项目的应用场景和区别,我觉得这篇文章写的比较好:

经过比较,觉得Fabric目前比较合适,所以就以这个项目为基础,学习智能合约。

一、环境准备 1.1 安装VirtualBox并在其中安装好Ubuntu

这一步其实没啥好说的,下载好最新版的VirtualBox,下载Ubuntu Server,我用的是16.10 X64。在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会很慢很慢的。具体做法是

sudo vi /etc/apt/sources.list

打开这个apt源列表,如果其中看到是之类的,那么就是外国的,如果看到是之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入:

:%s/us./cn./g

就可以把所有的us.改为cn.了。然后输入:wq即可保存退出。

sudo apt-get update

更新一下源。

然后安装ssh,这样接下来就可以用putty或者SecureCRT之类的客户端远程连接Ubuntu了。

sudo apt-get install ssh

1.2 安装Docker

安装Docker也会遇到外国网络慢的问题,幸好国内有很好的镜像,推荐DaoClound,安装Docker的命令是:

curl -sSL https://get.daocloud.io/docker | sh

安装完成后,运行以下脚本将当前用户添加到Docker的组中

sudo usermod -aG docker studyzy

重新登录当前用户,接下来修改 Docker 服务配置(/etc/default/docker 文件)。

sudo vi /etc/default/docker

添加以下内容:

DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"

接下来就需要设置国内的Docker镜像地址,需要注册一个账号,然后在加速器页面提供了设置Docker镜像的脚本,加速器页面是: https://www.daocloud.io/mirror 我提供的脚本是:

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s

运行完脚本后,重启Docker服务

sudo service docker restart

1.3 安装docker-compose

Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python-pip,运行脚本:

sudo apt-get install python-pip

安装完成后,接下来从DaoClound安装Docker-compose,运行脚本:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.10.1/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部署 2.1 下载Fabric镜像

Fabric的Docker镜像是在https://hub.docker.com/r/hyperledger/ 我们要做实验主要用到peer,baseimage,membersrvc,先现在Peer和membersrvc,这两个镜像提供了latest版本,所以直接pull下来即可。

docker pull hyperledger/fabric-peer docker pull hyperledger/fabric-membersrvc

但是baseimage是没有latest版本,所以我们可以下载一个新一点的版本,然后rename成latest。

docker pull hyperledger/fabric-baseimage:x86_64-0.3.0 docker tag hyperledger/fabric-baseimage:x86_64-0.3.0 hyperledger/fabric-baseimage:latest

现在我们运行docker images命令,可以看到我们准备好的镜像:

REPOSITORY                      TAG                IMAGE ID            CREATED            SIZE
hyperledger/fabric-baseimage    latest              f4751a503f02        7 days ago          1.27 GB
hyperledger/fabric-baseimage    x86_64-0.3.0        f4751a503f02        7 days ago          1.27 GB
hyperledger/fabric-membersrvc  latest              b3654d32e4f9        3 months ago        1.42 GB
hyperledger/fabric-peer        latest              21cb00fb27f4        3 months ago        1.42 GB

2.2 使用Git下载Docker-compose模板

如果没有安装Git,那么需要先安装Git,安装Git很简单:

sudo apt-get install git

感谢yeasy提供的很好的HyperLedger的模板,我们先克隆到本地:

git clone https://github.com/yeasy/docker-compose-files

2.3 以PBFT模式启动Fabric

先进入Git下载下来的Docker-compose目录:

cd docker-compose-files/hyperledger/0.6/pbft/

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14101.html