升级 hyperledger fabric 网络后通道创建失败

Channel creation fails after upgrading hyperledger fabric network

我将开发 hyperledger fabric 网络从 1.4.1 更新到 1.4.4,并且无法再创建通道或与网络交互,因为通道策略失败但在 v1.4.1 中没有失败

以下是我尝试通过节点 sdk 创建频道时发生的情况

来自节点 sdk 的错误

error: Status: BAD_REQUEST
Info: error validating channel creation transaction for new channel 'mychannel', could not successfully apply update to template configuration: error authorizing update: error validating DeltaSet: policy for [Group]  /Channel/Application not satisfied: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Admins' sub-policies to be satisfied

来自订购者的错误 Docker 容器

[orderer.common.broadcast] ProcessMessage -> WARN 00e [channel: farm] Rejecting broadcast of config message from 172.18.0.1:40866 because of error: error validating channel creation transaction for new channel 'farm', could not succesfully apply update to template configuration: error authorizing update: error validating DeltaSet: policy for [Group]  /Channel/Application not satisfied: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Admins' sub-policies to be satisfied

加密配置部分

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"

我认为 1.4.3 中有一些渠道政策和渠道能力变化

我通过从 first-network 获取 configtx.yaml 1.4.3 fabric-samples 并将我的更改(组织名称等)应用到新的 yaml 文件来解决问题。然后生成一个新的创世块等等

在使用 v1.4.4 的 fabric-samples configtx.yaml 作为模板后,我发现唯一的区别是这个 Capabilities 部分

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"

    Capabilities:
        <<: *ApplicationCapabilities