【问题标题】:Can't Connect Orderer and Peer Nodes on Different Machines on AWS无法在 AWS 上连接不同机器上的 Orderer 和 Peer 节点
【发布时间】:2019-09-20 05:11:06
【问题描述】:

我正在尝试构建一个包含单个排序者和 3 个组织的网络,每个组织在 AWS 上使用 Hyperledger Fabric 版本 2 有一个对等节点。我可以使用 configtxgen 成功地为排序者和通道配置事务生成创世块以下命令:

configtxgen -profile ThreeOrgsOrdererGenesis -channelID ordererchannel -outputBlock ./config/genesis.block

configtxgen -profile ChannelAll -outputCreateChannelTx ./config/channel.tx -channelID channelall

这是我的 configtx.yaml 文件:(这里的策略不是一个好的做法,只是在试验)

---
Organizations:

- &OrdererOrg
    Name: OrdererOrg
    ID: OrdererMSP
    MSPDir: ./crypto-config/ordererOrganizations/example.com/msp

    Policies:
      Readers:
          Type: Signature
          Rule: "OR('OrdererMSP.member')"
      Writers:
          Type: Signature
          Rule: "OR('OrdererMSP.member')"
      Admins:
          Type: Signature
          Rule: "OR('OrdererMSP.member')"

- &Org1
    Name: Org1MSP
    ID: Org1MSP
    MSPDir: ./crypto-config/peerOrganizations/org1.example.com/msp

    Policies:
      Readers:
          Type: Signature
          Rule: "OR('Org1MSP.member')"
      Writers:
          Type: Signature
          Rule: "OR('Org1MSP.member')"
      Admins:
          Type: Signature
          Rule: "OR('Org1MSP.member')"
      Endorsement:
          Type: Signature
          Rule: "OR('Org1MSP.member')"

- &Org2
    Name: Org2MSP
    ID: Org2MSP
    MSPDir: ./crypto-config/peerOrganizations/org2.example.com/msp

    Policies:
      Readers:
          Type: Signature
          Rule: "OR('Org2MSP.member')"
      Writers:
          Type: Signature
          Rule: "OR('Org2MSP.member')"
      Admins:
          Type: Signature
          Rule: "OR('Org2MSP.member')"
      Endorsement:
          Type: Signature
          Rule: "OR('Org2MSP.member')"

- &Org3
    Name: Org3MSP
    ID: Org3MSP
    MSPDir: ./crypto-config/peerOrganizations/org3.example.com/msp

    Policies:
      Readers:
          Type: Signature
          Rule: "OR('Org3MSP.member')"
      Writers:
          Type: Signature
          Rule: "OR('Org3MSP.member')"
      Admins:
          Type: Signature
          Rule: "OR('Org3MSP.member')"
      Endorsement:
          Type: Signature
          Rule: "OR('Org3MSP.member')"

Capabilities:

Channel: &ChannelCapabilities
    V1_3: true

Orderer: &OrdererCapabilities
    V1_1: true

Application: &ApplicationCapabilities
    V2_0: true
    V1_3: false
    V1_2: false
    V1_1: false

Application: &ApplicationDefaults

Organizations:

Policies:
    Readers:
        Type: ImplicitMeta
        Rule: "ANY Readers"
    Writers:
        Type: ImplicitMeta
        Rule: "ANY Writers"
    Admins:
        Type: ImplicitMeta
        Rule: "MAJORITY Admins"
    LifecycleEndorsement:
        Type: ImplicitMeta
        Rule: "MAJORITY Endorsement"
    Endorsement:
        Type: ImplicitMeta
        Rule: "MAJORITY Endorsement"

Capabilities:
    <<: *ApplicationCapabilities

Orderer: &OrdererDefaults

OrdererType: solo
Addresses:
    - orderer.example.com:7050
BatchTimeout: 2s
BatchSize:
    MaxMessageCount: 300
    AbsoluteMaxBytes: 99 MB
    PreferredMaxBytes: 512 KB
Kafka:
    Brokers:
        - 127.0.0.1:9092
Organizations:

Policies:
  Readers:
      Type: ImplicitMeta
      Rule: "ANY Readers"
  Writers:
      Type: ImplicitMeta
      Rule: "ANY Writers"
  Admins:
      Type: ImplicitMeta
      Rule: "MAJORITY Admins"

  BlockValidation:
      Type: ImplicitMeta
      Rule: "ANY Writers"

Channel: &ChannelDefaults

Policies:

    Readers:
        Type: ImplicitMeta
        Rule: "ANY Readers"

    Writers:
        Type: ImplicitMeta
        Rule: "ANY Writers"

    Admins:
        Type: ImplicitMeta
        Rule: "MAJORITY Admins"

Capabilities:
    <<: *ChannelCapabilities

Profiles:

ThreeOrgsOrdererGenesis:
    <<: *ChannelDefaults
    Orderer:
        <<: *OrdererDefaults
        Organizations:
            - *OrdererOrg
        Capabilities:
            <<: *OrdererCapabilities
    Consortiums:
        SampleConsortium:
            Organizations:
                - *Org1
                - *Org2
                - *Org3
ChannelAll:
    Consortium: SampleConsortium
    <<: *ChannelDefaults
    Application:
        <<: *ApplicationDefaults
        Organizations:
            - *Org1
            - *Org2
            - *Org3
        Capabilities:
            <<: *ApplicationCapabilities

当我将peer1 加入我创建的频道时,我在订购者的 docker 日志中收到以下警告:

Handle -&gt; WARN 008 Error reading from 172.31.19.174:35362: rpc error: code = Canceled desc = context canceled

起初,我只是忽略了这个警告,并将其他节点加入了频道。但是,我无法通过使用 Fabric Node SDK 的客户端程序连接到区块链,所以我认为这是问题的根本原因。

【问题讨论】:

  • 你在使用 docker swarm 吗?
  • 我不是,我在我的 docker-compose 文件中使用了 extra_hosts。例如:peer0.org1.example.com:extra_hosts:-“orderer.example.com:172.31.95.122”-“peer0.org2.example.com:172.31.20.132”-“peer0.org3.example.com:172.31 .22.56"
  • 已尝试 ping 您的容器,是否可以访问?
  • 是的,我用nmap检查了特定的端口,它说打开
  • 您在本地或 aws 实例中使用过的 nmap 吗?

标签: hyperledger-fabric hyperledger


【解决方案1】:

我注意到你使用

configtxgen -profile OneOrgOrdererGenesis

而在您的个人资料部分中的configtx.yamlThreeOrgsOrdererGenesis

也许您应该尝试使用以下命令生成加密文件:

configtxgen -profile ThreeOrgsOrdererGenesis -channelID ordererchannel -outputBlock ./config/genesis.block

configtxgen -profile ChannelAll -outputCreateChannelTx ./config/channel.tx -channelID channelall

【讨论】:

  • 抱歉,这是一个复制和粘贴错误。我正在运行正确的命令。即使收到该警告,我也能够成功运行我的网络。这可能是因为我的其他同伴当时还没有加入网络,所以八卦没有正常工作。
猜你喜欢
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
  • 2020-07-03
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
相关资源
最近更新 更多