62

Ubuntu 18.04下 Hyperledger Fabric 1.0 的搭建

 4 years ago
source link: https://www.tuicool.com/articles/EJfA7f6
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

请大家按照步骤进行,避免不必要的错误。

1.查看 apt source

sudo vi /etc/apt/sources.list

如果看到是 http://cn.xxxxx 之类的,那么就不用换的。但是如果其中是 http://us.xxxxxx 之类的,那么就是外国的。需要更换源,通过以下命令进行批量更换。

:%s/us./cn./g

更换完成后输入 :wq 保存退出。

之后更新源。

sudo apt-get update

然后安装ssh

sudo apt-get install ssh

2.安装GO语言

下载安装最新的go

下载、安装

wget https://storage.googleapis.com/golang/go1.11.linux-amd64.tar.gz

如果出现443连接错误,可采用以下方法。

进入 https://golang.org/dl/ 选择最新的Linux版本下载到本地文件夹

uYFN3ev.png!web

下载之后,进入下载目录,输入以下命令进行解压安装,(我的目录名为:下载)

cd 下载
tar -zxvf go1.11.linux-amd64.tar.gz -C /usr/local

需要注意:下载的go版本不同,需要更改版本号

安装完成后,可以进入 /usr/local 下看到go文件夹。

配置环境变量

编辑当前用户的环境变量,可以使用 vi 编辑器或 gedit 命令。

sudo 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

输入命令查看GO版本

go version

把go的目录GOPATH设置为当前用户的文件夹下,所以记得创建go文件夹

cd ~
mkdir go

3.安装Docker

需要提前准备安装 curl ,命令如下

sudo apt-get install curl

1.安装Docker

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

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

如果安装失败,可尝试下面的命令

sudo curl -sSl https://get.docker.com/ | sh

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

sudo usermod -aG docker XXX (XXX是当前用户名)

重新登录当前用户( 注销 ),接下来修改 Docker 服务配置

可以使用 vi 编辑器或 gedit 命令。

sudo gedit /etc/default/docker

添加以下内容

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

2.设置国内的Docker镜像地址

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

https://www.daocloud.io/mirror 我提供的脚本是:

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

重启Docker

sudo service docker restart

4.安装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

5. Fabric源码下载

使用 git 拉取文件更方便些,提前安装 git

1.安装git

安装命令如下

sudo apt-get install git

2.使用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

eimMBbn.png!web

5.下载Fabric镜像

官方文件提供了批量下载的脚本。我们直接运行:

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

rAJvimN.png!web

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

此时我们仍然停留在 e2e_cli 文件夹,

7juau2B.png!web

这里提供了启动、关闭Fabric网络的自动化脚本。我们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行一个命令:

bash network_setup.sh up

FbMZF3Y.png!web

最后运行完毕,我们可以看到这样的界面

YvYnMjR.png!web

7.手动测试一下Fabric网络

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

docker exec -it cli bash

运行以下命令可以查询 a账户的余额

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

运行结果为:

nAZRNrB.png!web

然后,我们试一试把a账户的余额再转 10元给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","10"]}'

运行结果为:

UNvAr26.png!web

转账完毕, 再查询一下a账户的余额,是否为 80

VZfI3i2.png!web

最后我们要关闭Fabric网络,首先需要运行exit命令退出cli容器。关闭Fabric的命令与启动类似,命令为:

exit
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh down

整个Fabric的环境已经测试完毕,一切正常。接下来就是去做自己的区块链的开发。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK