快速搭建一个Fabric 1.0的环境

以前笔者写了一篇Fabric1.0 Beta的部署和Fabric 1.0的多机部署。可是不少人在部署Fabric的时候仍是很容易出问题,因此我就再把Fabric 1.0的单机环境搭建讲一下。其实不少内容和前面博客相同。下面开始咱们的环境搭建工做:python

1. 使用VirtualBox并在其中安装好Ubuntu

这一步其实没啥好说的,下载好最新版的VirtualBox,下载Ubuntu Server,我用的是Ubuntu16.04.2 X64 Server。在安装完Ubuntu后,须要保证apt source是国内的,否则若是是国外的话会很慢很慢的。具体作法是linux

sudo vi /etc/apt/sources.list

打开这个apt源列表,若是其中看到是http://us.xxxxxx之类的,那么就是外国的,若是看到是http://cn.xxxxx之类的,那么就不用换的。个人是美国的源,因此须要作一下批量的替换。在命令模式下,输入:git

:%s/us./cn./g

就能够把全部的us.改成cn.了。而后输入:wq便可保存退出。github

sudo apt-get update

更新一下源。golang

而后安装ssh,这样接下来就能够用putty或者SecureCRT之类的客户端远程链接Ubuntu了。docker

sudo apt-get install ssh

2. Go的安装

Ubuntu的apt-get虽然提供了Go的安装,可是版本比较旧,最好的方法仍是参考官方网站 https://golang.org/dl/ ,下载最新版的Go。具体涉及到的命令包括:json

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
【注意:不要使用apt方式安装go,apt的go版本过低了!】

接下来编辑当前用户的环境变量:api

vi ~/.profile

添加如下内容:bash

export PATH=$PATH:/usr/local/go/bin 
export GOROOT=/usr/local/go 
export GOPATH=$HOME/go 
export PATH=$PATH:$HOME/go/bin

编辑保存并退出vi后,记得把这些环境载入:网络

source ~/.profile

咱们把go的目录GOPATH设置为当前用户的文件夹下,因此记得建立go文件夹

cd ~
mkdir go

3. Docker安装

咱们可使用阿里提供的镜像,安装也很是方便。经过如下命令来安装Docker

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

安装完成后须要修改当前用户(我使用的用户叫fabric)权限:

sudo usermod -aG docker fabric

注销并从新登陆,而后添加阿里云的Docker Hub镜像:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

不一样的版本添加方法是不同的,官方的文档以下:

https://cr.console.aliyun.com/#/accelerator

固然以为阿里云镜像很差用,喜欢用DaoClound的也能够用DaoClound的镜像。DaoCloud的镜像设置文档为:https://www.daocloud.io/mirror#accelerator-doc

4. Docker-Compose的安装

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

sudo apt-get install python-pip

而后是安装docker-compose,咱们从官方网站(https://github.com/docker/compose/releases)下载也能够从国内的进行DaoClound下载,为了速度快接下来从DaoClound安装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

5. Fabric源码下载

咱们可使用Git命令下载源码,首先须要创建对应的目录,而后进入该目录,Git下载源码:
mkdir -p ~/go/src/github.com/hyperledger 
cd
~/go/src/github.com/hyperledger
git clone https:
//github.com/hyperledger/fabric.git

因为Fabric一直在更新,全部咱们并不须要最新最新的源码,须要切换到v1.0.0版本的源码便可:

cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

6. Fabric Docker镜像的下载

这个其实很简单,由于咱们已经设置了Docker Hub镜像地址,因此下载也会很快。官方文件也提供了批量下载的脚本。咱们直接运行:

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

这样就能够下载全部须要的Fabric Docker镜像了。因为咱们设置了国内的镜像,因此下载应该是比较快的。

下载完毕后,咱们运行如下命令检查下载的镜像列表:

docker images

获得的结果以下:

image

7.启动Fabric网络并完成ChainCode的测试

咱们仍然停留在e2e_cli文件夹,这里提供了启动、关闭Fabric网络的自动化脚本。咱们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行一个命令:

./network_setup.sh up

这个作了如下操做:

7.1编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin

7.2基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。

7.3基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。

7.4基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。

7.5在CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了建立Channel,加入Channel,安装Example02,运行Example02等功能。

最后运行完毕,咱们能够看到这样的界面:

image

若是您看到这个界面,这说明咱们整个Fabric网络已经通了。

8.手动测试一下Fabric网络

咱们仍然是以如今安装好的Example02为例,在官方例子中,channel名字是mychannel,链码的名字是mycc。咱们首先进入CLI,咱们从新打开一个命令行窗口,输入:

docker exec -it cli bash

运行如下命令能够查询a帐户的余额:

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

能够看到余额是90:

image

而后,咱们试一试把a帐户的余额再转20元给b帐户,运行命令:

peer chaincode invoke -o orderer.example.com:7050  --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem  -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'

运行结果为:

image

如今转帐完毕, 咱们试一试再查询一下a帐户的余额,没问题的话,应该是只剩下70了。咱们看看实际状况:

image

果真,一切正常。最后咱们要关闭Fabric网络,首先须要运行exit命令退出cli容器。关闭Fabric的命令与启动相似,命令为:

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli

./network_setup.sh down

如今咱们整个Fabric的环境已经测试完毕,恭喜,一切正常,接下来咱们就是去作本身的区块链的开发。但愿个人文章对你们有所帮助。

相关文章
相关标签/搜索