hyperledger-fabric1.1 单机多点部署(6)-部署peer0.org2节点

博主最近部署fabric发现,fabric的部署很方便,同时官方提供了示范脚本,博主在部署官方示范脚本end-2-end的时候,发现启动环境是如此简单流畅!!但也带来了一个问题,因为脚本过于流畅和简单,单机多节点的启动的具体理解确变的复杂,为此博主开始了手动搭建单机多节点的征程,同时记录下来希望对大家有所帮助下面是此系列文章的目录结构,供大家品尝

hyperledger-fabric1.1 单机多点部署(1)-生成证书文件 

hyperledger-fabric1.1 单机多点部署(2)-部署orderer节点

hyperledger-fabric1.1 单机多点部署(3)-部署peer0.org1节点

hyperledger-fabric1.1 单机多点部署(4)-搭建fabric网络

hyperledger-fabric1.1 单机多点部署(5)-初步了解智能合约

hyperledger-fabric1.1 单机多点部署(6)-部署peer0.org2节点

 

在部署节点之前我首先需要编写专门为Org2的peer节点准备新的docker-peer1.yaml启动文件,具体内部源码如下

注意:此yaml配置文件与上述课程一样,都是放在aberic目录下

version: '2'

services:
  
  peer0.org2.example.com:
    container_name: peer0.org2.example.com
    image: hyperledger/fabric-orderer
    environment: 
      - CORE_PEER_ID=peer0.org2.example.com
      - CORE_PEER_ID_NETWORKID=aberic
      - CORE_PEER_ADDRESS=peer0.org2.example.com:7051
      - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052
      - CORE_PEER_EXTERNALENDPOINT=peer0.org2.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP

      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      #the following setting star、ts chaincode containers on the same
      #bridge network as the peer
      # https://docs.docker、.com/compose/networking/
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=aberic
      # - CORE_LOGGING_LEVEL=ERROR
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=aberic_default
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_PROFILE_ENABLED=false
      - CORE_PEER_TLS_ENABLED=false
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
      volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
      - ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    ports: 
      - 8051:7051
      - 8052:7052
      - 8053:7053
    depends_on:
      - couchdb
    networks:
      default:
        aliases:
          - aberic

由于是单机多节点,在一台服务上部署多个节点,我们需要对docker的映射端口作出改变。

我们可以看到,在org1中我们映射的本地端口为7051,7052,7053,而在org2中我们映射的端口为8051,8052,8053。

紧接着我们在服务器命令端口和启动org1一样我们开始启动org2服务,当然现在我们使用我们刚刚编写的docker-peer1.yaml去启动org2服务,执行命令如下

docker-compose -f docker-peer1.yaml up -d

执行结果如下图所示

我们再次执行docker ps 命令查看现在的容器情况

从这里我们可以看到org1已经启动了。

接下来我们需要针对peer0Org2执行频道加入,安装合约,测试合约已经背书验证的操作了

首先我们进入cli容器

docker exec -it cli bash

随后我们需要对当前容器一系列的全局变量做复制操作

CORE_PEER_ID=peer0.org2.example.com
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051
CORE_PEER_LOCALMSPID=Org2MSP
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp

cli容器内全局变量完成修改之后,我们开始对peer0org2操作,与peer0Org2的操作一样,我们先加入频道

peer channel join -b mychannel.block

同样我们要开始安装智能合约

peer chaincode install -n mychannel -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 -v 1.0

安装智能合约之后我们可是测试合约是否已经运行成功

通过查询操作我们可以看到我们已经成功安装并运行

接下来我们再进行一次转账操作

peer chaincode invoke -C mychannel -n mychannel -c '{"Args":["invoke","B","A","2"]}'

执行完之后我们经过查询B账户我们会发先B账户的余额并没有变化,这是因为仅有Org1的成员才具备背书的能力,关于背书的具体讲解,博主将会在背书系列文章中讲解,这里先挖一个坑

因为我们实例话操作中选择的背书组织为Org1,而后面我们加入的节点组织为Org2,这就说明Org2对资产的变跟操作都未进行过背书,也就是不具备任何效力,但是我们在Org2组织中加入了该频道并安装了智能合约,因而可以对区块链中的数据进行检索。

我们可以执行exit命令退出容器,再次进入容器

docker exec -it cli bash

此时cli容器默认的是对peer0org1节点的操作再次进行资产转账

peer chaincode invoke -C mychannel -n mychannel -c '{"Args":["invoke","B","A","2"]}'

经过查询我们发现B的资产现在是10,也就说明我们此次的资产转账成功了

至此我们简单的单机多节点部署实验完毕!!

 

小结:此系列文章带着大家进行了一次Fabric网络最小单元的部署,开发,和测试,讲述了如何生成各个节点配置文件,生成创世区块,和频道证书文件,通过对yaml的文件的编写,启动了Orderer排序节点以及peer节点使我们对fabric有了进一步的了解。后面博主会争取跟新多机多节点系列文章的更新,希望大家关注!!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值