Hyperledger Fabric 1.0 快速搭建 -------- 多机部署 peer节点

前言

在这里我推荐两位大神的博客,可以参考或者直接跟着这两位大神学习,我是阅读这两位大神的博客和《深度探索区块链Hyperledger技术与应用》一书部署的

《深度探索区块链Hyperledger技术与应用》作者:张增骏、董宁、朱轩彤、陈剑雄  著。

深蓝大大:https://www.cnblogs.com/studyzy/category/1024666.html

Aberic大神:https://www.cnblogs.com/aberic/category/1148898.html

所有的peer节点都是记账节点,负责验证从排序服务节点区块里的交易,维护状态数据和账本的副本。部分节点会执行交易并对出结果进行从签名背书,充当背书节点的角色。背书节点是动态的角色,是与具体链码绑定的。每一个链码在实例化的时候都会设置背书策略,指定那些节点对交易背书后才是有效的,也只有在应用程序向它发起交易背书请求的时候才是背书节点,其他的时候就是普通的记账节点,只负责验证交易并记账。

在准备篇介绍crypto-config.yaml时说了可以部署的peer节点是PeerOrgs.Template属性设置的(生成了对应的MSP证书),在这里部署peer0节点。

在配置文件中定义了五个org,每一个org中有两个peer(peer0和peer1),我们把这五个peer0分别部署在五个不同的机器上。node1-node5

下一篇:Hyperledger Fabric 1.0 快速搭建 -------- 多机部署 Fabric CA节点服务

开始

编写peer.yaml文件

[root@node1 ~]# mkdir -p /u01/chainConfig/configfile/peer

[root@node1 ~]# vi peer.yaml

#copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

version: '2'

services:
  peer:
    image: hyperledger/fabric-peer:x86_64-1.0.1
    extends:
      file:  ../hosts.yaml  #host文件是上一章节提到的
      service: myYwhHost
    environment:
      - CORE_LOGGING_LEVEL=debug
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=${PEERNAME}:5984  #连接couchdb,保存状态数据,couchdb支持原生的json和字节数组的操作。
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=test
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=test
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB

      - CORE_PEER_TLS_ENABLED=true    #日志的级别
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt  #用到了tls证书来通信
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt

      - CORE_PEER_ADDRESS=${PEERNAME}:7051
      - CORE_PEER_ID=${PEERNAME}
      - CORE_PEER_LOCALMSPID=${MSPID}

      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=${PEERNAME}:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.ywhOrg1.example.com:7051 #peer节点启动时连接的peer节点,一般配置同一个组织下的peer节点,其实这里我是都写得这个,有警告但是好像没影响到什么

    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/var/run/
      - /u01/chainConfig/crypto-config/peerOrganizations/${ORGNAME}/peers/${PEERNAME}/msp:/etc/hyperledger/fabric/msp
      - /u01/chainConfig/crypto-config/peerOrganizations/${ORGNAME}/peers/${PEERNAME}/tls:/etc/hyperledger/fabric/tls
      - /u01/data/peer/${PEERNAME}/:/var/hyperledger/
    ports:
      - 7051:7051/tcp
      - 7052:7052/tcp
      - 7053:7053/tcp
    logging:
      options:    #这里应该是设置了日志的大小  和日志文件数量的max 最大文件数
        max-size: "1024m"
        max-file: "3"
  couchdb:      #启动couchdb
    image: hyperledger/fabric-couchdb:x86_64-1.0.1
    environment:
     - COUCHDB_PASSWORD=test
     - COUCHDB_USER=test
    ports:
     - 5984:5984

peer节点的配置文件配置好以后,把这个文件发送到node1-node5机器上相同目录下,然后启动,设置的环境变量在peer.yaml文件中都用到了。

node1机器上:

[root@node1 ~]# export PEERNAME=peer0.ywhOrg1.example.com

[root@node1 ~]# export ORGNAME= ywhOrg1.example.com

[root@node1 ~]# export MSPID=Ywh1OrgMSP

[root@node1 ~]# mkdir -p /u01/data/peer/${PEERNAME}

[root@node1 ~]# docker-compose -f /u01/chainConfig/configfile/peer/peer.yaml up -d

node2机器上

[root@node1 ~]# export PEERNAME=peer0.ywhOrg2.example.com

[root@node1 ~]# export ORGNAME= ywhOrg2.example.com

[root@node1 ~]# export MSPID=Ywh2OrgMSP

[root@node1 ~]# mkdir -p /u01/data/peer/${PEERNAME}

[root@node1 ~]# docker-compose -f /u01/chainConfig/configfile/peer/peer.yaml up -d

node3-node5机器上跟上面的相同,注意修改三个环境变量就可以了,这里要修改的这些,要根据准备篇中的配置文件相对应的修改,应该不是很难就能知道修改哪些。

在启动每一个peer节点时也会相应的跟着启动一个couchDB数据库,用来存储状态数据,记录的是交易执行的结果,最新的状态代表了通道上所有键的最新值。

暂时对于couchDB理解的不好,先不写了,跟着启动没有报错即可。

把peer启动后,在node1-node5节点上应该有以下容器,Kafka,Orderer,Zookeeper,Peer,CouchDB五个容器。


[root@node1 ~]# docker ps

CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS                                                                                            NAMES
721a15534ad2        hyperledger/fabric-orderer:x86_64-1.0.1     "orderer"                8 days ago          Up 8 days           0.0.0.0:7050->7050/tcp                                                                           order
6b393d78f9ee        hyperledger/fabric-kafka:x86_64-1.0.1       "/docker-entrypoint.…"   8 days ago          Up 8 days           0.0.0.0:9092->9092/tcp, 9093/tcp                                                                 kafka_kafka_1
68def5411279        hyperledger/fabric-zookeeper:x86_64-1.0.1   "/docker-entrypoint.…"   8 days ago          Up 8 days           2888/tcp, 0.0.0.0:2181->2181/tcp, 0.0.0.0:12888->12888/tcp, 0.0.0.0:13888->13888/tcp, 3888/tcp   zookeeper_zooleeper1_1
6c32182d844d        hyperledger/fabric-peer:x86_64-1.0.1        "peer node start"        12 days ago         Up 12 days          0.0.0.0:7051-7053->7051-7053/tcp                                                                 peer_peer_1
a3d8ce2ed722        hyperledger/fabric-couchdb:x86_64-1.0.1     "tini -- /docker-ent…"   12 days ago         Up 12 days          4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp                                                       peer_couchdb_1

可以用docker -logs -f [peer容器的名字] 来查看一下日志的信息,看是否有报错信息,如果有报错信息,可根据相应的错误更改,第一次部署时大概率上的错误都是证书文件不对,名字写错,创始区块的生成有问题等等,可以把配置文件中的信息确认一下,路径什么的。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值