G2EX

Fabric 0.6 多节点部署视频演示

随着 Fabric 1.0 beta 版本的发布,0.6 版本即将成为历史。在 1.0 架构面前,0.6 更像一个简单的「玩具」实验版本。在新的版本中,除了架构进行了重新设计,引入了 Channel、Endorser、Orderer、Committer 的概念外,链码编写的规则也有所变化,移除了 Table 操作的 API(Table API 实际上封装了 State API),接口返回值也有了特定的 pb.Response 类型。

本文录制了一个基于 Fabric 0.6 版本的平台部署、链码部署和测试的一个视频。以此纪念即将过去的 0.6 稳定版。

videoimg


视频中,Fabric 平台使用 docker-compose 配置文件搭建部署,使用了 docker-compose-files 项目下的 4-peers-with-membersrvc-explorer.yml,具有 4 个 PBFT peer 节点 + 1 个 CA 节点 + 1 个 Blockchain-explorer。

视频中使用的链码是 Fabric 源码中的 chaincode_example02

需要注意的几点:

  1. 使用的镜像

    1
    2
    3
    4
    5
    6
    $ docker pull hyperledger/fabric-peer:x86_64-0.6.1-preview \
    && docker pull hyperledger/fabric-membersrvc:x86_64-0.6.1-preview \
    && docker pull yeasy/blockchain-explorer:latest \
    && docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-peer \
    && docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-baseimage \
    && docker tag hyperledger/fabric-membersrvc:x86_64-0.6.1-preview hyperledger/fabric-membersrvc
  2. Docker compose file 的配置

    Clone docker-compose-files 项目后,需修改 hyperledger/0.6/pbft 中的 4-peers-with-membersrvc-explorer.ymlpeer.yml

    1
    2
    3
    4
    5
    6
    # 4-peers-with-membersrvc-explorer.yml
    # 移除 networks 的注释
    networks:
    default:
    external:
    name: fabric_pbft
    1
    2
    3
    # peer.yml
    # 移除 CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE 一行的注释
    - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric_pbft
  3. 创建 docker 网络 fabric_pbft

    1
    $ docker network create fabric_pbft
  4. REST API 的使用

    视频中使用了 Postman 与 Fabric 的 VP0 节点交互。

    在部署链码 chaincode_example02 之前,我把链码复制到了 VP0 节点中的 /opt/gopath/github.com/chaincode_example02 目录中,所以在 Postman 中部署链码时,JSON 参数 pathgithub.com/chaincode_example02,即链码路径。这样是为了让节点中的 go 能找到链码并进行编译。

  5. 多读文档,比如:
    https://yeasy.gitbooks.io/blockchain_guide/content/fabric/v0.6/install.html
    https://github.com/yeasy/docker-compose-files/tree/master/hyperledger/0.6