Heperledger fabric v1.3.0阿里云环境配置及运行e2e案例

栏目: 编程工具 · 发布时间: 5年前

内容简介:如何使用阿里云服务器部署fabric, 其实大部分流程和物理机相同,但还是有不同的地方的申请云服务器的时候,我们是在阿里云申请的按需, 系统选择的是ubuntu 16.04,注意最低配置是4G的, 否则在运行e2e案例的时候kafka启动不起来.

如何使用阿里云服务器部署fabric, 其实大部分流程和物理机相同,但还是有不同的地方的

1. 创建云服务器

申请云服务器的时候,我们是在阿里云申请的按需, 系统选择的是ubuntu 16.04,注意最低配置是4G的, 否则在运行e2e案例的时候kafka启动不起来.

Heperledger fabric v1.3.0阿里云环境配置及运行e2e案例

image.png

2.安装go

可以先下载好 go 的包, 然后拷贝到云服务器上

浏览器下载go包:

https://golang.org/doc/install?download=go1.11.4.linux-amd64.tar.gz

拷贝:

$ scp go1.11.3.linux-amd64.tar.gz root@47.105.93.246:/root

进入到云服务器:

$ ssh root@47.105.93.246

进行解压操作

$ sudo tar -C /usr/local -xzf go1.11.4.linux-amd64.tar.gz

编辑环境变量

$ vi ~/.profile

添加以下内容

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

至此,go的环境安装完毕!

使用 go version 命令来查看go版本以检查是否安装成功

3.安装 docker 环境

由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:

$ sudo apt-get remove docker docker-engine docker-ce docker.io

更新apt包索引:

$ sudo apt-get update

安装以下包以使apt可以通过HTTPS使用存储库(repository):

$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

添加Docker官方的GPG密钥:

$ curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo apt-key add -

使用下面的命令来设置stable存储库:

$ sudo add-apt-repository "deb [arch=amd64] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable"

再更新一下apt包索引:

$ sudo apt-get update

列出可用的版本:

$ apt-cache madison docker-ce

这里我们安装18.03.01版本的docker

$ sudo apt-get install docker-ce=18.03.1~ce-0~ubuntu

查看docker服务是否启动:

$ systemctl status docker

若未启动,则启动docker服务:

$ sudo systemctl start docker

经典的hello world:

$ sudo docker run hello-world

至此,docker安装完毕!!

4.安装docker-compose

接下来呢,安装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-](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
至此,docker-compose 安装完毕!! 输入docker-com ,按tab键,看看能否自动补全,若能自动补全,则说明docker-compose安装成功!!

5. fabric源码及fabric的镜像

5.1 fabric源码

在 $GOPATH/src/github.com/heperledger路径下,把代码拉下来

若是没有路径,则手动创建

$ cd $GOPATH
$ mkdir -p src/github.com/hyperledger
$ cd src/github.com/hyperledger

拉取代码:

$ git clone -b release-1.3.0 https://github.com/hyperledger/fabric

若是拉取速度太慢的话,可以先在本地clone, 然后再scp到云服务器上..

5.2 fabric镜像

在 $GOPATH/src/github.com/heperledger路径下, 下载 fabric-samples

$ git clone https://github.com/hyperledger/fabric-samples.git

切换到1.3.0版本, 因为镜像的版本一定要和fabric源码的版本保持一致,否则跑不起来!!

$ cd fabric-samples/

$ git checkout v1.3.0

将fabric/scripts/bootstrap.sh 文件拷贝到 fabric-samples 文件夹下

$ cp ../fabric/scripts/bootstrap.sh ./

修改bootstrap.sh权限

$ chmod +x bootstrap.sh

运行bootstrap.sh, 开始拉取镜像, 时间略长,需要耐心等待..

$ ./bootstrap.sh

拉取完之后, $ docker images 查看镜像状态

Heperledger fabric v1.3.0阿里云环境配置及运行e2e案例

image.png

5.3 运行 first-network 案例

$ cd first-network/

启动案例

$ ./byfn.sh up

关闭案例

$ ./byfn.sh down

5.4 运行 e2e 案例

$ cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/
$ ./network_setup.sh up
在这里会报错的:

!!!!!!!!!!!!!!! Ordering Service is not available, Please try again ... !!!!!!!!!!!!!!!!
================== ERROR !!! FAILED to execute End-2-End Scenario ==================
或者
Attempting to Query PEER0 ...3 secs
Attempting to Query PEER0 ...6 secs
Attempting to Query PEER0 ...9 secs
Attempting to Query PEER0 ...12 secs
Attempting to Query PEER0 ...15 secs
Attempting to Query PEER0 ...18 secs
Attempting to Query PEER0 ...21 secs
Attempting to Query PEER0 ...24 secs
Attempting to Query PEER0 ...27 secs
Attempting to Query PEER0 ...30 secs
Attempting to Query PEER0 ...33 secs
Attempting to Query PEER0 ...37 secs
Attempting to Query PEER0 ...40 secs
Attempting to Query PEER0 ...43 secs
Attempting to Query PEER0 ...46 secs
Attempting to Query PEER0 ...49 secs
Attempting to Query PEER0 ...52 secs
Attempting to Query PEER0 ...55 secs
Attempting to Query PEER0 ...58 secs
Attempting to Query PEER0 ...61 secs

docker ps -a 查看各个容器的状态, orderer或者peer呈现Exit状态.

docker logs 容器id 查看未启动的docker容器的日志, 会看到如下错误:

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1

报错原因,请点这...

解决办法: 更新docker compose yaml模板,为所有的节点(如orderer, peer, ca, cli等)添加环境变量 GODEBUG=netdns=go 以强制使用pure Go resolver.

需要在 e2e文件夹中,对以下文件添加环境变量 GODEBUG=netdns=go

在e2e案例中,需要更改4个文件
examples/e2e_cli/base/docker-compose-base.yaml
examples/e2e_cli/base/peer-base.yaml
examples/e2e_cli/docker-compose-cli.yaml
examples/e2e_cli/docker-compose-e2e.yaml

比如:

Heperledger fabric v1.3.0阿里云环境配置及运行e2e案例

image.png

若是kafka启动不起来,那可能是因为云服务器的配置太低了,比如说是1g内存的

Heperledger fabric v1.3.0阿里云环境配置及运行e2e案例

image.png

跑起来之后,进入cli容器

$ docker exec -it cli bash

查看a的余额

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

90

查看b的余额

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

210

从a 给 b转 20块钱:

$ 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 --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["invoke","a","b","20"]}'

执行完之后,再查询一下 a,b的余额, 分别是 70 和 230 了, 这就表明fabric的环境已经搭建完毕,并且成功运行了e2e案例!!!

关闭案例: $ ./network_setup.sh down

参考资料:


以上所述就是小编给大家介绍的《Heperledger fabric v1.3.0阿里云环境配置及运行e2e案例》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解C++11

深入理解C++11

Michael Wong、IBM XL编译器中国开发团队 / 机械工业出版社 / 2013-6 / 69.00元

《深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。 《深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计......一起来看看 《深入理解C++11》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具