我是靠谱客的博主 精明故事,最近开发中收集的这篇文章主要介绍混子日记——校园征信项目2Fabric组织节点部署各组织节点的启动,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于fabric的校园征信系统——各组织节点的配置及启动

  • Fabric组织节点部署
    • Orderer与组织节点分配
    • 配置文件的编写
  • 各组织节点的启动
    • docker—compose文件的编写
    • 启动各节点

Fabric组织节点部署

Orderer与组织节点分配

名称Hostname组织机构组织ID机构名称
ordererorderer.rjxy.cnOrderer
peer0peer0.orgschool.rixy.cnOrgSchoolOrgSchoolMSP学校
peer1peer0.orgschool.rixy.cnOrgSchoolOrgSchoolMSP学校
peer0peer0.orgenterprise.rixy.cnOrgEnterpriseOrgEnterpriseMSP企业
peer1peer0.orgenterprise.rixy.cnOrgEnterpriseOrgEnterpriseMSP企业
peer0peer0.orgcredit.rixy.cnOrgCreditOrgCreditMSP第三方征信
peer1peer0.orgcredit.rixy.cnOrgCreditOrgCreditMSP第三方征信

       本项目中设定三个组织:学校,企业,第三方征信机构
       每个组织中的 peer 节点数:2
       每个组织对应一个单独的channel: schoolchannel , enterprisechannel , creditchannel
       三个组织有一个共同的 channel:unionchannel
       根域名使用:rjxy.cn

       项目为测试环境,为简化步骤降低成本所以采用solo机制,在企业中通常采用采取kafka的共识机制。

配置文件的编写

       上一篇文章已经搭建好fabric框架,这篇文章我们利用框架完成搭建自己的联盟链。首先在家目录下创建项目文件夹,这里我们取名为school-credit。
       第一步编写crypto-config.yaml文件并生成证书目录。

#利用crytogen showtemplate 命令生成配置文件模板,在此基础上加以修改
cryptogen showtemplate > crypto-config.yaml

       将文件修改为:

OrdererOrgs:
  - Name: Orderer
    Domain: rjxy.cn

    Specs:
      - Hostname: orderer

PeerOrgs:
    # 学校组织
  - Name: OrgSchool
    Domain: orgschool.rjxy.cn
    # 是否支持 Nodejs
    EnableNodeOUs: true
    # 组织下面peer节点的个数
    Template:
      Count: 2
    # 创建的普通用户的个数
    Users:
      Count: 1

    # 企业组织
  - Name: OrgEnterprise
    Domain: orgenterprise.rjxy.cn
    # 是否支持 Nodejs
    EnableNodeOUs: true
    # 组织下面peer节点的个数
    Template:
      Count: 2
    # 创建的普通用户的个数
    Users:
      Count: 1

    # 第三方征信机构组织
  - Name: OrgCredit
    Domain: orgcredit.rjxy.cn
    # 是否支持 Nodejs
    EnableNodeOUs: true
    # 组织下面peer节点的个数
    Template:
      Count: 2
    # 创建的普通用户的个数
    Users:
      Count: 1

 #接下来用 cryptogen generate 命令生成证书目录,执行后可看到crypto-config文件夹
 cryptogen generate --config=./crypto-config.yaml

       第二步编辑configtx.yaml文件并生成通道及创世块文件
       首先复制上篇文章中first-sample/first-network中的cofigtx.yaml文件到项目目录中来,相当于借助于demo模板进行修改。
       接下来修改文件为:

Organizations:				# 固定的,不能改
  - &Orderer				# 相当于定义了一个变量,其他地方可以引用它
    Name: Orderer			# 排序节点的组织名
    ID: OrdererMSP			# 排序节点组织的ID
    MSPDir: crypto-config/ordererOrganizations/rjxy.cn/msp # 组织的 MSP 账号

  - &OrgSchool					# 房管局组织
    Name: OrgSchoolMSP			# 组织名称
    ID: OrgSchoolMSP		# 组织ID,该属性在设置背书策略时需要使用
    MSPDir: crypto-config/peerOrganizations/orgschool.rjxy.cn/msp	#组织的 MSP 账号
    AnchorPeers:			# 锚节点
      - Host: peer0.orgschool.rjxy.cn
        Port: 7051

  - &OrgEnterprise
    Name: OrgEnterpriseMSP
    ID: OrgEnterpriseMSP
    MSPDir: crypto-config/peerOrganizations/orgenterprise.rjxy.cn/msp
    AnchorPeers:
    - Host: peer0.orgenterprise.rjxy.cn
      Port: 7051

  - &OrgCredit
    Name: OrgCreditMSP
    ID: OrgCreditMSP
    MSPDir: crypto-config/peerOrganizations/orgcredit.rjxy.cn/msp
    AnchorPeers:
    - Host: peer0.orgcredit.rjxy.cn
      Port: 7051

Orderer: &OrdererDefaults
  # 共识机制 == 排序算法
  OrdererType: solo	  # 共识机制 - solo 算法之支持一个排序节点
  Addresses:          # orderer 节点的网络位置
    - orderer.rjxy.cn:7050
  BatchTimeout: 5s    # 产生一个区块的时间单位
  BatchSize:
    MaxMessageCount: 10		# 交易的最大数量,交易数量达到之后会产生一个区块
    AbsoluteMaxBytes: 98 MB # 数据量达到该制定的值,也会产生一个区块
    PreferredMaxBytes: 512 KB # 首选 MaxBytes 
  
  Kafka:			  # 本例中的排序算法指定的是solo,此项可以不指定
    Brokers:
      - 127.0.0.1:9092   	# 指定 Kafka 排序集群所在的网络位置
  MaxChannels: 0
  Organizations:

# 此处不需要修改,默认即可
Application: &ApplicationDefaults
  Organizations:
 
# Fabric_v1.1 之后的内容,全部设为true,是为了兼容 1.1 前面的版本
Capabilities:
    Global: &ChannelCapabilities
        V1_1: true
    Orderer: &OrdererCapabilities
        V1_1: true
    Application: &ApplicationCapabilities
        V1_1: true
        
Profiles:
  ThreeOrgsOrdererGenesis:
    Capabilities:
      <<: *ChannelCapabilities
    Orderer:
      <<: *OrdererDefaults
      Organizations:
        - *Orderer
      Capabilities:
        <<: *OrdererCapabilities
      # 联盟
    Consortiums:
      # 三个组织的联盟
      ThreeOrgsConsortium:   # 名字可改
        Organizations:
          - *OrgSchool
          - *OrgEnterprise
          - *OrgCredit
      # 学校私有链
      OrgSchoolConsortium:
        Organizations:
          - *OrgSchool
      # 企业私有链
      OrgEnterpriseConsortium:
        Organizations:
          - *OrgEnterprise
      #第三方征信机构私有链
      OrgCreditConsortium:
        Organizations:
          - *OrgCredit
     
  # 生成 unionchannel
  unionOrgschannel:
    Consortium: ThreeOrgsConsortium
    Application:
      <<: *ApplicationDefaults
      Organizations:
        - *OrgSchool
        - *OrgEnterprise
        - *OrgCredit
      Capabilities:
        <<: *ApplicationCapabilities
       
  schoolOrgchannel:
    Consortium: OrgSchoolConsortium
    Application:
      <<: *ApplicationDefaults
      Organizations:
        - *OrgSchool
      Capabilities:
        <<: *ApplicationCapabilities

  enterpriseOrgchannel:
    Consortium: OrgEnterpriseConsortium
    Application:
      <<: *ApplicationDefaults
      Organizations:
        - *OrgEnterprise
      Capabilities:
        <<: *ApplicationCapabilities
        
  creditOrgchannel:
    Consortium: OrgCreditConsortium
    Application:
      <<: *ApplicationDefaults
      Organizations:
        - *OrgCredit
      Capabilities:
        <<: *ApplicationCapabilities

       接下来生成创世块文件,首先创建channel-artifacts文件夹用来存放创世块及通道文件。

#利用configtxgen 命令生成genesis.block文件
configtxgen -profile ThreeOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

       在这里我遇到yaml格式的错误,算是我踩到的坑,一定不要有tab缩进,格式一定要严谨,包括注释信息。建议部署之间利用yaml格式校验器检验一下。

	panic: Error reading configuration: While parsing config: yaml: line 104: found character that cannot start any token

       下面生成通道文件

#生成unionchannel
 configtxgen -profile unionOrgschannel -outputCreateChannelTx ./channel-artifacts/unionchannel.tx -channelID unionchannel
 #生成schoolchannel
 configtxgen -profile schoolOrgchannel -outputCreateChannelTx ./channel-artifacts/schoolchannel.tx -channelID schoolchannel
 #生成enterprisechannel
 configtxgen -profile enterpriseOrgchannel -outputCreateChannelTx ./channel-artifacts/enterprisechannel.tx -channelID enterprisechannel
 #生成creditchannel
 configtxgen -profile creditOrgchannel -outputCreateChannelTx ./channel-artifacts/creditchannel.tx -channelID creditchannel

       生成锚节点更新文件(此操作可选)

#生成OrgSchool组织锚节点更新文件
configtxgen -profile unionOrgschannel -outputAnchorPeersUpdate ./channel-artifacts/OrgSchoolMSPanchors.tx -channelID unionchannel -asOrg OrgSchoolMSP
#生成OrgEnterprise组织锚节点更新文件
configtxgen -profile unionOrgschannel -outputAnchorPeersUpdate ./channel-artifacts/OrgEnterpriseMSPanchors.tx -channelID unionchannel -asOrg OrgEnterpriseMSP
#生成OrgCredit组织锚节点更新文件
configtxgen -profile unionOrgschannel -outputAnchorPeersUpdate ./channel-artifacts/OrgCreditMSPanchors.tx -channelID unionchannel -asOrg OrgCreditMSP

各组织节点的启动

docker—compose文件的编写

       先复制first-network中的docker-compose.yaml作为模板加以修改
       修改为以下内容:

version: '2'

networks:
  school-credit:

services:

  orderer.rjxy.cn:
    image: hyperledger/fabric-orderer:latest
    container_name: orderer.rjxy.cn
    environment:

      - ORDERER_GENERAL_LOGLEVEL=debug

      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0

      - ORDERER_GENERAL_LISTENPORT=7050

      - ORDERER_GENERAL_GENESISPROFILE=Orderer

      - ORDERER_GENERAL_GENESISMETHOD=file

      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block 

      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP

      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp 

      - ORDERER_GENERAL_TLS_ENABLED=true

      - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key

      - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt

      - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
      - ./channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
      - ./crypto-config/ordererOrganizations/rjxy.cn/orderers/orderer.rjxy.cn/msp:/var/hyperledger/orderer/msp
      - ./crypto-config/ordererOrganizations/rjxy.cn/orderers/orderer.rjxy.cn/tls:/var/hyperledger/orderer/tls
    ports:
      - 7050:7050
    networks:
      default:
        aliases:
          - orderer.rjxy.cn
  peer0.orgschool.rjxy.cn:
    image: hyperledger/fabric-peer:latest
    container_name: peer0.orgschool.rjxy.cn
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_PEER_ID=peer0.orgschool.rjxy.cn       # peer 节点的名字
      - CORE_PEER_ADDRESS=peer0.orgschool.rjxy.cn:7051 # 当前 peer 节点的地址信息
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_ADDRESSAUTODETECT=true
      # 为了别其他节点感知到,如果不设置,其他节点不知道该节点的存在
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.orgschool.rjxy.cn:7051
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false         # 当前节点是不是 leader 节点,结果应由选举得出所以此处给出 false
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      # 当前组织的ID[Organizations -> ID]
      - CORE_PEER_LOCALMSPID=OrgSchoolMSP
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_MSPCONFIGPATH=/var/hyperledger/msp
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0.orgschool.rjxy.cn
      - CORE_PEER_TLS_CERT_FILE=/var/hyperledger/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/var/hyperledger/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/tls/ca.crt
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/orgschool.rjxy.cn/peers/peer0.orgschool.rjxy.cn/msp:/var/hyperledger/msp
      - ./crypto-config/peerOrganizations/orgschool.rjxy.cn/peers/peer0.orgschool.rjxy.cn/tls:/var/hyperledger/tls
    ports:
      - 7051:7051
      - 7053:7053
    depends_on:
      - orderer.rjxy.cn
    links:
      - orderer.rjxy.cn
    networks:
      default:
        aliases:
          - peer0.orgschool.rjxy.cn

  peer1.orgschool.rjxy.cn:
    image: hyperledger/fabric-peer:latest
    container_name: peer1.orgschool.rjxy.cn
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/var/hyperledger/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/var/hyperledger/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/tls/ca.crt
      - CORE_PEER_ID=peer1.orgschool.rjxy.cn
      - CORE_PEER_ADDRESSAUTODETECT=true
      - CORE_PEER_ADDRESS=peer1.orgschool.rjxy.cn:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.orgschool.rjxy.cn:7051
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_LOCALMSPID=OrgSchoolMSP
      - CORE_PEER_MSPCONFIGPATH=/var/hyperledger/msp
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer1.orgschool.rjxy.cn
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/orgschool.rjxy.cn/peers/peer1.orgschool.rjxy.cn/msp:/var/hyperledger/msp
      - ./crypto-config/peerOrganizations/orgschool.rjxy.cn/peers/peer1.orgschool.rjxy.cn/tls:/var/hyperledger/tls
    ports:
      - 8051:7051
      - 8053:7053
    depends_on:
      - orderer.rjxy.cn
    links:
      - orderer.rjxy.cn
    networks:
      default:
        aliases:
          - peer1.orgschool.rjxy.cn

  # orgenterprise
  peer0.orgenterprise.rjxy.cn:
    image: hyperledger/fabric-peer:latest
    container_name: peer0.orgenterprise.rjxy.cn
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/var/hyperledger/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/var/hyperledger/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/tls/ca.crt
      - CORE_PEER_ID=peer0.orgenterprise.rjxy.cn
      - CORE_PEER_ADDRESSAUTODETECT=true
      - CORE_PEER_ADDRESS=peer0.orgenterprise.rjxy.cn:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.orgenterprise.rjxy.cn:7051
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_LOCALMSPID=OrgEnterpriseMSP
      - CORE_PEER_MSPCONFIGPATH=/var/hyperledger/msp
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0.orgenterprise.rjxy.cn
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/orgenterprise.rjxy.cn/peers/peer0.orgenterprise.rjxy.cn/msp:/var/hyperledger/msp
      - ./crypto-config/peerOrganizations/orgenterprise.rjxy.cn/peers/peer0.orgenterprise.rjxy.cn/tls:/var/hyperledger/tls
    ports:
      - 9051:7051
      - 9053:7053
    depends_on:
      - orderer.rjxy.cn
    links:
      - orderer.rjxy.cn
    networks:
      default:
        aliases:
          - peer0.orgenterprise.rjxy.cn

  peer1.orgenterprise.rjxy.cn:
    image: hyperledger/fabric-peer:latest
    container_name: peer1.orgenterprise.rjxy.cn
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/var/hyperledger/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/var/hyperledger/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/tls/ca.crt
      - CORE_PEER_ID=peer1.orgenterprise.rjxy.cn
      - CORE_PEER_ADDRESSAUTODETECT=true
      - CORE_PEER_ADDRESS=peer1.orgenterprise.rjxy.cn:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.orgenterprise.rjxy.cn:7051
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_LOCALMSPID=OrgEnterpriseMSP
      - CORE_PEER_MSPCONFIGPATH=/var/hyperledger/msp
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer1.orgenterprise.rjxy.cn
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/orgenterprise.rjxy.cn/peers/peer1.orgenterprise.rjxy.cn/msp:/var/hyperledger/msp
      - ./crypto-config/peerOrganizations/orgenterprise.rjxy.cn/peers/peer1.orgenterprise.rjxy.cn/tls:/var/hyperledger/tls
    ports:
      - 10051:7051
      - 10053:7053
    depends_on:
      - orderer.rjxy.cn
    links:
      - orderer.rjxy.cn
    networks:
      default:
        aliases:
          - peer1.orgenterprise.rjxy.cn

  # orgcredit
  peer0.orgcredit.rjxy.cn:
    image: hyperledger/fabric-peer:latest
    container_name: peer0.orgcredit.rjxy.cn
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/var/hyperledger/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/var/hyperledger/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/tls/ca.crt
      - CORE_PEER_ID=peer0.orgcredit.rjxy.cn
      - CORE_PEER_ADDRESSAUTODETECT=true
      - CORE_PEER_ADDRESS=peer0.orgcredit.rjxy.cn:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.orgcredit.rjxy.cn:7051
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_LOCALMSPID=OrgCreditMSP
      - CORE_PEER_MSPCONFIGPATH=/var/hyperledger/msp
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0.orgcredit.rjxy.cn
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/orgcredit.rjxy.cn/peers/peer0.orgcredit.rjxy.cn/msp:/var/hyperledger/msp
      - ./crypto-config/peerOrganizations/orgcredit.rjxy.cn/peers/peer0.orgcredit.rjxy.cn/tls:/var/hyperledger/tls
    ports:
      - 11051:7051
      - 11053:7053
    depends_on:
      - orderer.rjxy.cn
    links:
      - orderer.rjxy.cn
    networks:
      default:
        aliases:
          - peer0.orgcredit.rjxy.cn

  peer1.orgcredit.rjxy.cn:
    image: hyperledger/fabric-peer:latest
    container_name: peer1.orgcredit.rjxy.cn
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/var/hyperledger/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/var/hyperledger/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/tls/ca.crt
      - CORE_PEER_ID=peer1.orgcredit.rjxy.cn
      - CORE_PEER_ADDRESSAUTODETECT=true
      - CORE_PEER_ADDRESS=peer1.orgcredit.rjxy.cn:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.orgcredit.rjxy.cn:7051
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_LOCALMSPID=OrgCreditMSP
      - CORE_PEER_MSPCONFIGPATH=/var/hyperledger/msp
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer1.orgcredit.rjxy.cn
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/orgcredit.rjxy.cn/peers/peer1.orgcredit.rjxy.cn/msp:/var/hyperledger/msp
      - ./crypto-config/peerOrganizations/orgcredit.rjxy.cn/peers/peer1.orgcredit.rjxy.cn/tls:/var/hyperledger/tls
    ports:
      - 12051:7051
      - 12053:7053
    depends_on:
      - orderer.rjxy.cn
    links:
      - orderer.rjxy.cn
    networks:
      default:
        aliases:
          - peer1.orgcredit.rjxy.cn

启动各节点

       接下来就可以按照配置文件进行节点的启动了

#启动各个节点
docker-compose up -d
#查看启动的节点
docker-compose ps
#出现以下内容即为启动成功
        Name                   Command       State                        Ports                      
--------------------------------------------------------------------------------------------------------
orderer.rjxy.cn               orderer           Up      0.0.0.0:7050->7050/tcp                          
peer0.orgcredit.rjxy.cn       peer node start   Up      0.0.0.0:11051->7051/tcp, 0.0.0.0:11053->7053/tcp
peer0.orgenterprise.rjxy.cn   peer node start   Up      0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp  
peer0.orgschool.rjxy.cn       peer node start   Up      0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp  
peer1.orgcredit.rjxy.cn       peer node start   Up      0.0.0.0:12051->7051/tcp, 0.0.0.0:12053->7053/tcp
peer1.orgenterprise.rjxy.cn   peer node start   Up      0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp
peer1.orgschool.rjxy.cn       peer node start   Up      0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp  

       此时Fabric的服务器端已经配置完毕,在服务器端可配置cli节点进行链码的安装,调用等操作,在这里就不详细介绍了,我们主要介绍在beego框架中如何使用fabric-sdk-go完成相应的操作。
       下一篇文章我将会记录进行链码设计的相关过程。

最后

以上就是精明故事为你收集整理的混子日记——校园征信项目2Fabric组织节点部署各组织节点的启动的全部内容,希望文章能够帮你解决混子日记——校园征信项目2Fabric组织节点部署各组织节点的启动所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部