【问题标题】:Unable to spinup orderers in Raft consensus in hyperledger Fabric无法在超级账本 Fabric 中启动 Raft 共识中的订购者
【发布时间】:2020-01-23 08:24:33
【问题描述】:

我正在扩展第一个网络示例,并在多个主机上达成 raft 共识。当我尝试启动订购者时,第一个订购者启动,但是,我无法启动来自同一组织和其他组织的任何其他订购者。我得到的错误如下

[common.deliver] DeliverBlocks -> WARN 019 [channel: orderersyschannel] 已撤销交付请求的客户端授权 从 172.18.0.5:45506:隐式策略评估失败 - 0 子策略得到满足,但该策略需要 1 个 需要满足的“读者”子政策:权限被拒绝 2019-09-23 07:22:52.937 UTC [comm.grpc.server] 1 -> INFO 01a 流式呼叫 完成 grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=172.18.0.5:45506 grpc.peer_subject="CN=ord1-org2,OU=orderer,O=Hyperledger,ST=North 卡罗莱纳州,C=US" grpc.code=OK grpc.call_duration=1.590709ms
2019-09-23 07:22:52.945 UTC [orderer.common.cluster.replication] fetchLastBlockSeq -> WARN 01b 收到状态:FORBIDDEN 来自 ord1-org2.local:7050: 禁止拉频道
2019-09-23 07:22:52.945 UTC [orderer.common.cluster.replication] func1 -> WARN 01c 从 {ord1-org2.local:7050 收到类型为“禁止拉通道”的错误

我还在“configtx.yaml”中检查了我的政策

在组织部分:

              Readers:
                  Type: Signature
                  Rule: "OR('org2MSP.member', 'org2MSP.admin', 'org2MSP.peer', 'org2MSP.client')"
              Writers:
                  Type: Signature
                  Rule: "OR('org2MSP.member', 'org2MSP.admin', 'org2MSP.client')"
              Admins:
                  Type: Signature
                  Rule: "OR('org2MSP.admin')"

在订购者部分我有:

         Readers:
             Type: ImplicitMeta
             Rule: "ANY Readers"
         Writers:
             Type: ImplicitMeta
             Rule: "ANY Writers"
         Admins:
             Type: ImplicitMeta
             Rule: "MAJORITY Admins"
         # BlockValidation specifies what signatures must be included in the block
         # from the orderer for the peer to validate it.
         BlockValidation:
             Type: ImplicitMeta
             Rule: "ANY Writers"

我不知道为什么这些政策或没有得到满足。谁能帮我解决这个问题?

【问题讨论】:

  • 您似乎没有在系统频道中定义所有参与组织。你能添加你的 configtx.yaml 文件吗?
  • @Trinayan 我已将我的 configtx.yaml 粘贴在这里 pastebin.com/SLaGSrid
  • 从 org1 的 Orderer2,我得到错误:[orderer.common.cluster.replication] fetchLastBlockSeq -> ERRO 030 Failed received the latest block from ord1-org1.local:7050: didn't receive 7 秒内的响应 [orderer.common.cluster.replication] func1 -> WARN 031 从 {ord1-org1.local:7050 [-----BEGIN CERTIFICATE- 收到类型为“在 7 秒内没有收到响应”的错误---- MIICIjCCAcigAwIBAgIUbn1FGuhGesOdjUovQI+ERiV+2xUwCgYIKoZIzj0EAwIw 我也做了以下推荐:stackoverflow.com/questions/55490469/…

标签: hyperledger-fabric raft


【解决方案1】:

尝试在您的 configtx.yaml 文件中编辑此块并重新生成创世块。

Profiles:
    TwoOrgsOrdererGenesis:
        <<: *ChannelDefaults
        Orderer:
            <<: *OrdererDefaults
            Organizations:
               - *Org1
               **- *Org2**
            Capabilities:
                <<: *OrdererCapabilities
        Consortiums:
            SampleConsortium:
                Organizations:
                   - *Org1
                    - *Org2

【讨论】:

  • 感谢 Trinayan,我没有使用 TwoOrgsOrdererGenesis 配置文件。现在我设法启动了订购者,但无法创建通道:(。CLI 显示一些日志,然后永远等待。
  • 当然:创建频道期间的日志:pastebin.com/ahEU6Fn9 在日志末尾,shell 什么都不做,只是等待
  • 您的订购者之间似乎无法相互通信。检查不同的主机是否打开了排序端口,以及是否可以从一台主机ping到另一台主机。
猜你喜欢
  • 2017-07-24
  • 2019-09-20
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多