设为首页 收藏本站
查看: 2119|回复: 0

[经验分享] HyperLedger-fabric V0.6 for CentOS7.2环境搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-14 09:13:30 | 显示全部楼层 |阅读模式
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 –r
3.10.0-229.el7.x86_64
b)更新Centos
$ sudo yum update
c)安装需要软件
yum install –y  docker
d)把服务设备成开机启动并启动服务
systemctl enable docker.service
systemctl start docker
e)验证 docker正确安装(通过运行一个测试镜像,当容器运行时,它打印一个信息性消息并退出。)
docker run hello-world
wKiom1ihaE2hMyM2AACCf7PLEE0633.jpg
2、Docker Compose安装
Compose 定位是 “定义和运行多个 Docker 容器的应用”,可以很方便的从官方拉下来一些镜像,在此基础上再进行改造。它允许用户通过一个单独的 dockercompose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
a).安装容器Compose(使用官方提供的方法,安装1.10.1版本):
curl -L https://github.com/docker/compos ... cker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-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 –d  #在后台运行容器
wKioL1ihaE6hNh2rAADaDtlkXno110.jpg
直到启动日志显示如下内容,说明启动成功:
wKiom1ihaE-D3VsSAACQdN8nsBs290.jpg
使用Ctrl+z停止当前日志的显示后,运行docker-compose ps 可以看到服务和对应的端口映射:
wKiom1ihaE_jI2nfAABIJU_WWXI217.jpg
可以做些常用操作:
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.co ... incode_example02.go
wKiom1ihaFDAsDBUAAAvXW5RCHI280.jpg
b)发布chaincode在GOPATH/src 下运行
CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02
wKiom1ihaFCRCJJ0AAA95ERnr_g902.jpg
直至出现“Received REGISTERED”字样,代表成功。
使用exit命令或Ctrl+z退出终端。

4、firefox中安装POST接口测试工具:
在firefox的附加组件中下载Restclient插件安装
wKiom1ihaFLDCKjaAAEW18z4kP8686.jpg
重启firefox后,打开RESTClient,进行POST测试
wKioL1ihaFPAnw09AADGXYjyiqU752.jpg

5、系统环境测试:deploy(部署),invoke(调用),query(查询) chaincode(智能合约)(vp0中peer的用户名和密码在 membersrvc.yaml 文件里为jim: 6avZQLwcUe9b)
已经建成的环境架构,目前Farbric Peer只有一个vp0
wKioL1ihaFeA4YGzAAPw9ngzT1o411.jpg
a)进入vp0容器
docker-compose exec vp0 bash
b)login
CLI方式:
peer network login jim
输入密码:6avZQLwcUe9b
Rest方式(在Body中放入如下代码):
{   
"enrollId": "jim",   
"enrollSecret": "6avZQLwcUe9b"   
}
wKioL1ihaFexfWUhAABMo0u8rMU136.jpg
返回用户已登录。
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"]}'
wKioL1ihaFii7Vu3AACMP7IYbvg594.jpg
d)Invoke(调用)
CLI方式:
CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode invoke -u jim -l golang -n mycc -c '{"Args": ["invoke", "a", "b", "10"]}'
wKioL1ihaFmD2jbCAABhh3hdSsY365.jpg
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月能正式发布。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-341853-1-1.html 上篇帖子: 利用Traefik+Docker构建可弹性扩展的微服务或服务集群 下篇帖子: Ubuntu 16.04 docker安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表