微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HyperLedger-fabric V0.6 for CentOS7.2环境搭建

BlockChain联盟链中的Hyperledger项目中的Fabrica项目是商业联盟应用区块链的基石之作,现在来搭建一个运行环境,进行技术验证。

安装组件如下:

1.Docker-compose:Docker 容器管理;
2.Go lang SDK:Go 语言开发、编译环境;
3.Git:git 镜像克隆与提交;
4.Rest Client: rest API 测试;
容器主要运行有:MemberSrv 和Peer;

一、HyperLedger Fabric环境资源准备

1、docker的安装

a)检查版本

$ uname �Cr

3.10.0-229.el7.x86_64

b)更新Centos

$ sudo yum update

c)安装需要软件

yum install �Cy docker

d)把服务设备成开机启动并启动服务

systemctl enable docker.service

systemctl start docker

e)验证 docker正确安装(通过运行一个测试镜像,当容器运行时,它打印一个信息性消息并退出。)

docker run hello-world

image

2、Docker Compose安装

Compose 定位是 “定义和运行多个 Docker 容器的应用”,可以很方便的从官方拉下来一些镜像,在此基础上再进行改造。它允许用户通过一个单独的 dockercompose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

a).安装容器Compose(使用官方提供的方法,安装1.10.1版本):

curl-Lhttps://github.com/docker/compose/releases/download/1.10.1/docker-compose-`uname-s`-`uname-m`>/usr/local/bin/docker-compose
chmod+x/usr/local/bin/docker-compose

docker-compose version

b).从 dockerhub上拉取镜像

mkdir /opt/fabric

cd /opt/fabric/

docker pull hyperledger/fabric-peer:latest #拉取peer的镜像

docker pull hyperledger/fabric-membersrvc:latest #拉取memberserver的镜像

docker images #确认镜像拉取成功

c).在新建的/opt/fabric目录下建立Docker-compose.yml文件

vim docker-compose.yml

内容如下:

#定义第一台虚拟机名称为membersrvc

membersrvc:

#指定镜像
image: hyperledger/fabric-membersrvc
#暴露端口信息,使用宿主:容器 格式,

ports:
- "7054:7054"
##覆盖容器启动后认执行的命令

command: membersrvc
#定义第二台虚拟机名称为vp0

vp0:
image: hyperledger/fabric-peer
ports:
- "7050:7050"
- "7051:7051"
- "7053:7053"
#设置环境变量

environment:
- CORE_PEER_ADDRESSAUTODETECT=true
- CORE_VM_ENDPOINT=unix:///var/run/docker.sock
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=vp0
- CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
- CORE_Security_ENABLED=true
- CORE_Security_ENROLLID=test_vp0
- CORE_Security_ENROLLSECRET=MwYpmSRjupbT
#数据卷所挂载路径设置。可以设置宿主机路径( HOST:CONTAINER ),该指令中路径支持相对路径

volumes:
- /var/run/:/var/run/
#链接到其它服务中的容器

links:
- membersrvc

#覆盖容器启动后认执行的命令
command:
sh -c "sleep 5; peer node start --peer-chaincodedev"

d)运行docker-compose up 命令启动2个容器(MemberServer和Peer.到此,我们可以具备启动和运行chaincode,并进行权限管理的Fabric(虽然只有一个Peer)):

docker-compose up �Cd #在后台运行容器

image

直到启动日志显示如下内容,说明启动成功:

image

使用Ctrl+z停止当前日志的显示后,运行docker-compose ps 可以看到服务和对应的端口映射:

image

可以做些常用操作:

docker-compose logs -f vp0 #查看vp0的日志

docker-compose exec vp0 bash #进入到vp0执行它的bash,exit命令可以退出,Ctrl+z退出而不停止容器。

docker-compose exec membersrvc bash #进入到membersrvc执行它的bash,exit命令可以退出

3、运行与发布Chaincode

a)进入vp0的bash,运行如下命令

docker-compose exec vp0 bash

cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go

cp chaincode_example02/chaincode_example02.go $GOPATH/src/ #复制目录里面的例2到$GOPATH/src/ 进行编译

cd $GOPATH/src/

go build ./chaincode_example02.go #编译成功会在GOPATH/src目录生成chaincode_example02文件

(chaincode_example02.go 源码链接https://raw.githubusercontent.com/hyperledger/fabric/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go

image

b)发布chaincode在GOPATH/src 下运行

CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02

image

直至出现“Received REGISTERED”字样,代表成功。

使用exit命令或Ctrl+z退出终端。

4、firefox中安装POST接口测试工具:

在firefox的附加组件中下载Restclient插件安装

image

重启firefox后,打开RESTClient,进行POST测试

image

5、系统环境测试:deploy(部署),invoke(调用),query(查询) chaincode(智能合约)(vp0中peer的用户名和密码在 membersrvc.yaml 文件里为jim: 6avZQLwcUe9b)

已经建成的环境架构,目前Farbric Peer只有一个vp0

image

a)进入vp0容器

docker-compose exec vp0 bash

b)login

CLI方式

peer network login jim

输入密码:6avZQLwcUe9b

Rest方式(在Body中放入如下代码):

{
"enrollId": "jim",
"enrollSecret": "6avZQLwcUe9b"
}

image

返回用户登录

c)deploy(部署)

CLI方式

CORE_Security_ENABLED=true CORE_Security_PRIVACY=true peer chaincode deploy -u jim -n mycc -c '{"Args": ["init","a","100","b","200"]}'

image

d)Invoke(调用

CLI方式

CORE_Security_ENABLED=true CORE_Security_PRIVACY=true peer chaincode invoke -u jim -l golang -n mycc -c '{"Args": ["invoke","10"]}'

image

e)query(查询

CLI方式

CORE_Security_ENABLED=true CORE_Security_PRIVACY=true peer chaincode query -u jim -l golang -n mycc -c '{"Function": "query","Args": ["b"]}'

后记:Fabric V0.6和V1.0的架构完全不一样,也就是说在V0.6环境下开发的应用,没法在V1.0上运行,V0.6注定是一个过渡版本,期待V1.0在2017-3月能正式发布。

原文地址:https://www.jb51.cc/centos/378761.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。