美文网首页
主机下hfc和本机docker节点联调

主机下hfc和本机docker节点联调

作者: chen4w | 来源:发表于2017-01-20 12:33 被阅读0次

fabric的starter-kit确实是快速搭建和认识fabric的途径,但开发人员更关注的其实是hfc。starter-kit的介绍和hfc的介绍脱节了。
本篇要实现的是:主机的hfc通过grpc与本机docker下的node交互

参考文档:

Chaincode的开发环境搭建

这一步的目标是:在docker下运行一个member节点提供用户注册服务,运行一个 peer节点提供chaincode调试服务。

用docker镜像启动节点

这一部分按照上面的文档做就好,附上docker-compose.yml内容:

membersrvc:
  image: hyperledger/fabric-membersrvc
  ports:
    - "7054:7054"
  command: membersrvc
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
  links:
    - membersrvc
  command: sh -c "sleep 5; peer node start --peer-chaincodedev"

编译和运行chaincode

仍然按照文档做就好,主要做了几件事:

  1. 安装go执行环境,mac下我的GOPATH环境变量是自己手工设置的;
  2. 下载相关代码;
  3. 编译和运行chaincode;(运行起来之后,其实处于等待被invoke状态)
编译和运行chaincode

验证节点

搭建完成之后docker-compose up 启动节点,
然后用Rest API进行验证,我用的Postman。

Rest API验证

也可以用Rest API去deployinvoke上面的chaincode试试。

hfc的开发环境搭建

上面的工作结果:我们已经可以通过Rest API方式deployinvoke chaincode,下面我们要用hfc提供的grpc方式代替Rest API方式做同样的事。

  • 安装nodejs
    nodejs内置了npm,安装完之后,安装hfc
  • npm install -g hfc
    其中-g表示全局可见,没有-g的话只有当前目录可见。
  • 下载和修改示例代码
curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js

这个示例代码,依赖3个外部传入的环境变量,docker下是通过docker-compose.yml设置和传入的,为了省事,我们直接赋值:

//var PEER_ADDRESS         = process.env.CORE_PEER_ADDRESS;
//var MEMBERSRVC_ADDRESS   = process.env.MEMBERSRVC_ADDRESS;
var PEER_ADDRESS         = "localhost:7051";
var MEMBERSRVC_ADDRESS   = "localhost:7054";
...
//var mode =  process.env['DEPLOY_MODE'];
var mode = 'dev';

运行hfc

在vsc下以nodejs方式运行示例程序,顺利的话,vsc调试面板会输出以下信息:

hfc调试输出

同时,终端下运行的chaincode也会输出被invoke的调试信息:

chaincode输出

相关文章

  • 主机下hfc和本机docker节点联调

    fabric的starter-kit确实是快速搭建和认识fabric的途径,但开发人员更关注的其实是hfc。sta...

  • Docker的网络

    Docker bridge docker bridge network是怎么映射到主机IP地址上网的呢?通过本机 ...

  • Flannel网络

    作用:跨docker宿主机进行docker和docker之间的通信,所有node节点要安装flannel插件1:安...

  • docker 容器的通信

    一. 本机访问docker 的容器 本地主机的 8088 被映射到了容器的 8080 端口。此时访问本机的 808...

  • Ubuntu使用非root用户运行docker

    默认情况下,docker 命令会使用 Unix socket 与 Docker 主机通讯,安装完docker主机后...

  • Docker Registry

    前言 上一篇文章讲了Docker Machine实现多主机Docker节点的管理。本文讲解如何实现Docker R...

  • iptables

    man iptables(本机centos7.6已支持中文) iptables图解 工作在主机或者网络边缘的节点上...

  • 使用kubeadm部署kubernetes1.18.2(1.21

    一、所有节点操作 每个节点主机每个需要2G内存,和双核cup 关闭防火墙和同步时间 编写脚本设置docker和k8...

  • 用主机上的visual code调试docker下的hfc应用

    上篇说到:fabric官方提供了docker镜像starter,运行一个nodejs写的hfc(Hyperledg...

  • k8s集群的安装部署(三)

    05 所有node节点配置flannel网络插件 flannel网络插件主要是为了解决docker宿主机在不同节点...

网友评论

      本文标题:主机下hfc和本机docker节点联调

      本文链接:https://www.haomeiwen.com/subject/ieuwbttx.html