Hyperledger fabric 2.0: commit with status (ENDORSEMENT_POLICY_FAILURE)

问题描述 投票:0回答:1

我正在尝试按照HLF 2.0链式代码的生命周期进行实验。正式文件

该网络有3个订购节点,每个节点有2个orgs和1个对等节点。

但在链式代码提交时,我得到的错误是

committed with status (ENDORSEMENT_POLICY_FAILURE) at peer1.base.right:9051

configtx.yml

     Organizations:
    - &OrdererOrg
        Name: OrdererOrg
        ID: OrdererMSP
        MSPDir: crypto-config/ordererOrganizations/base.order/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('OrdererMSP.admin')"

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

    - &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','RightOrgMSP.peer')"
            Endorsement:
                Type: Signature
                Rule: "OR('RightOrgMSP.peer')"     

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

Capabilities:
    Channel: &ChannelCapabilities
       V2_0: true
    Orderer: &OrdererCapabilities
        V2_0: true
    Application: &ApplicationCapabilities
       V2_0: true

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"   
        BlockValidation:
            Type: ImplicitMeta
            Rule: "ANY Writers"    


    Capabilities:
        <<: *ApplicationCapabilities

Orderer: &OrdererDefaults
    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB
    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"
        BlockValidation:
            Type: ImplicitMeta
            Rule: "ANY Writers"


    Capabilities:
        <<: *ChannelCapabilities

Profiles:
    MainChannel:
        Consortium: BaseConsortium
        <<: *ChannelDefaults
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
            Capabilities:
                <<: *ApplicationCapabilities

    Raft:
        <<: *ChannelDefaults
        Capabilities:
            <<: *ChannelCapabilities
        Orderer:
            <<: *OrdererDefaults
            OrdererType: etcdraft
            EtcdRaft:
                Consenters:
                - Host: orderer1.base.order
                  Port: 7050
                  ClientTLSCert: crypto-config/ordererOrganizations/base.order/orderers/orderer1.base.order/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/base.order/orderers/orderer1.base.order/tls/server.crt
                - Host: orderer2.base.order
                  Port: 8050
                  ClientTLSCert: crypto-config/ordererOrganizations/base.order/orderers/orderer2.base.order/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/base.order/orderers/orderer2.base.order/tls/server.crt
                - Host: orderer3.base.order
                  Port: 9050
                  ClientTLSCert: crypto-config/ordererOrganizations/base.order/orderers/orderer3.base.order/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/base.order/orderers/orderer3.base.order/tls/server.crt



            Addresses:
                - orderer1.base.order:7050
                - orderer2.base.order:8050
                - orderer3.base.order:9050

            Organizations:
            - *OrdererOrg
            Capabilities:
                <<: *OrdererCapabilities
        Application:
            <<: *ApplicationDefaults
            Organizations:
            - <<: *OrdererOrg
        Consortiums:
            BaseConsortium:
                Organizations:
                - *Org1
                - *Org2

当检查读提交的时候,我得到了所需的输出。

{
    "approvals": {
        "LeftOrgMSP": true,
        "RightOrgMSP": true
    }
}

链码批准

peer lifecycle chaincode approveformyorg  --channelID basechannel --name fabcar --version 1.0 --init-required --package-id fabcar_1:206a5ce87aefb8b9780b75451523c2aa3ef718ceebaaeae5082ae88ea259b305 --sequence 1 -o orderer1.base.order:7050  --tls --cafile $CA_PATH

链码提交命令

peer lifecycle chaincode commit -o orderer1.base.order:7050 --channelID basechannel --name fabcar --version 1.0 --sequence 1 --init-required --tls true --cafile $ORDER_CA_PATH  --peerAddresses peer1.base.right:9051 --tlsRootCertFiles $PATH_RIGHT --peerAddresses peer1.base.left:7051  --tlsRootCertFiles   $PATH_LEFT

不知道为什么我得到这个错误

hyperledger-fabric hyperledger
1个回答
0
投票

我考虑到所有的对等体容器都已建立,MSP名称也正确。

似乎缺少块验证策略。

 BlockValidation:
        Type: ImplicitMeta
        Rule: "ANY Writers"
© www.soinside.com 2019 - 2024. All rights reserved.