【问题标题】:Hyperledger fabric peer update failed: signature set did not satisfy policyHyperledger 结构对等更新失败:签名集不满足策略
【发布时间】:2020-01-23 10:17:01
【问题描述】:

我的 HLF 网络有两个组织(每个对等方)和 3 个订单节点,订单类型为 raft。对于第一个加入的组织和对等点,更新工作没有任何问题,但是对于第二个组织,我在对等点更新中遇到了一些麻烦

这是我用于对等更新的命令

peer channel update \
    -o orderer1.base.order:7050 \
    -c basechannel \
    -f ./channel-artifacts/BaseRightOrg.tx \
    --tls \
    --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/base.order/orderers/orderer1.base.order/msp/tlscacerts/tlsca.base.order-cert.pem

我得到的错误是

错误:出现意外状态:BAD_REQUEST -- 应用配置时出错 更新到现有频道“basechannel”:授权更新时出错: 验证 DeltaSet 时出错:[Group] 的策略 /Channel/Application/RightOrgMSP 不满意:签名集没有 满足政策

这是上述组织的configtx 部分

 - &Org2
        Name: RightOrgMSP
        ID: RightOrgMSP
        MSPDir: crypto-config/peerOrganizations/base.right/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('RightOrgMSP.admin', 'RightOrgMSP.peer', 'RightOrgMSP.client','RightOrgMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('RightOrgMSP.admin','RightOrgMSP.peer', 'RightOrgMSP.client','RightOrgMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('LeftOrgMSP.admin','RightOrgMSP.peer')"
            Endorsement:
                Type: Signature
                Rule: "OR('RightOrgMSP.peer')"     

        AnchorPeers:
            - Host: peer1.base.right
              Port: 9051       

【问题讨论】:

    标签: hyperledger-fabric hyperledger


    【解决方案1】:

    文件 (./channel-artifacts/BaseRightOrg.tx) 应由属于频道的组织的所有/大多数管理员按顺序签名(即同一个文件一个接一个)。那么只有更新才会成功。

    尝试对通道的每个对等方使用以下命令:

    对等通道 signconfigtx -f ./channel-artifacts/BaseRightOrg.tx

    签名后,您可以更新频道。

    【讨论】:

      【解决方案2】:

      cafile

      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/base.order/orderers/orderer1.base.order/msp/tlscacerts/tlsca.base.order-cert.pem

      在上面的行中更改证书位置和密钥。

      【讨论】:

        【解决方案3】:

        在您的组织下的 configtx 中,您应该只指定该组织的管理员,而不是两者。

         &Org2
            Name: RightOrgMSP
            ID: RightOrgMSP
            MSPDir: crypto-config/peerOrganizations/base.right/msp
            Policies:
                Readers:
                    Type: Signature
                    Rule: "OR('RightOrgMSP.admin', 'RightOrgMSP.peer', 'RightOrgMSP.client','RightOrgMSP.member')"
                Writers:
                    Type: Signature
                    Rule: "OR('RightOrgMSP.admin','RightOrgMSP.peer', 'RightOrgMSP.client','RightOrgMSP.member')"
                Admins:
                    Type: Signature
                    Rule: "OR('RightOrgMSP.admin')"
                Endorsement:
                    Type: Signature
                    Rule: "OR('RightOrgMSP.peer')"     
        
            AnchorPeers:
                - Host: peer1.base.right
                  Port: 9051   
        

        问题不在于此,但请检查您的频道申请政策部分,如果是管理员下的多数管理员,则此频道更新必须由两个组织签署。一旦被所有交易(在这种情况下为多数)签名,您的更新将起作用。

        Application: &ApplicationDefaults
        
        # Organizations is the list of orgs which are defined as participants on
        # the application side of the network
        Organizations:
        
        # Policies defines the set of policies at this level of the config tree
        # For Application policies, their canonical path is
        #   /Channel/Application/<PolicyName>
        Policies:
            Readers:
                Type: ImplicitMeta
                Rule: "ANY Readers"
            Writers:
                Type: ImplicitMeta
                Rule: "ANY Writers"
            Admins:
                Type: ImplicitMeta
                Rule: "MAJORITY Admins"
        

        如果您仍然无法执行,请分享您的完整 configtx。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-02
          • 1970-01-01
          相关资源
          最近更新 更多