如何在不更新渠道配置(渠道更新)的情况下添加新组织?

时间:2019-03-28 01:51:01

标签: hyperledger-fabric

我们已经建立了光纤网络。在configtx.yaml中定义的联盟中已经有ORG1和ORG2。每个组织都有自己的根CA。而且,ORG2还具有一个中间CA。

configtx.yaml:

---
################################################################################
#
#   ORGANIZATIONS
#
#   This section defines the organizational identities that can be referenced
#   in the configuration profiles.
#
################################################################################
Organizations:
    - &OrdererOrg
        Name: OrdererOrg
        ID: ORDERER
        MSPDir: crypto-config/ordererOrganizations/ordererorg/msp
        Policies: &OrdererOrgPolicies
            Readers:
                Type: Signature
                Rule: "OR('ORDERER.member')"
            Writers:
                Type: Signature
                Rule: "OR('ORDERER.member')"
            Admins:
                Type: Signature
                Rule: "OR('ORDERER.admin')"

    - &ORG1
        Name: ORG1
        ID: ORG1
        MSPDir: crypto-config/peerOrganizations/ORG1.com/msp
        Policies: &Org1Policies
            Readers:
                Type: Signature
                Rule: "OR('ORG1.member')"
            Writers:
                Type: Signature
                Rule: "OR('ORG1.member')"
            Admins:
                Type: Signature
                Rule: "OR('ORG1.admin')"
        AnchorPeers:
            - Host: peer0
              Port: 7051

    - &ORG2
        Name: ORG2
        ID: ORG2
        MSPDir: crypto-config/ORG2/ORG2.com/msp
        Policies: &Org2Policies
            Readers:
                Type: Signature
                Rule: "OR('ORG2.member')"
            Writers:
                Type: Signature
                Rule: "OR('ORG2.member')"
            Admins:
                Type: Signature
                Rule: "OR('ORG2.admin')"
        AnchorPeers:
            - Host: peer1
              Port: 7051

.
.
.
.
    SingleMSPSolo:
        <<: *ChannelDefaults
        Orderer:
            <<: *OrdererDefaults
            Addresses:
                - kiesnet-dev-orderer:7050
            Organizations:
                - *OrdererOrg
        Consortiums:
            DevConsortium:
                Organizations:
                    - *ORG1
                    - *ORG2

    SingleMSPChannel:
        Consortium: DevConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *ORG1
                - *ORG2

ORG2的根CA和中间CA将具有相同的MSPID(即“ ORG2”),并且最终用户将仅从中间CA服务器中注册。

这是问题所在。 在上面的configtx.yaml中,“ MSPDir:crypto-config / ORG / ORG2.com / msp”是根CA的msp目录路径,而不是中间目录。

但是,最终用户仅从中间服务器注册,并且当这些用户试图向ORG1的对等方查询/调用时,会出现以下错误:

Error: error endorsing query: rpc error: code = Unknown desc = access denied: channel [ORG1] creator org [ORG2] - proposal response: <nil>

如果我们使用从ORG2的根CA注册的最终用户的证书进行测试,则用户可以查询/调用ORG1的对等体。

我们如何告诉网络(渠道)信任从中间CA注册的用户,而不进行对等渠道更新或修改渠道配置文件?

其背后的业务原因是,从ORG2开始,将来可能会添加许多中间CA服务器,因此我们不想每次拥有新的中间CA时都更新通道配置。因此,一旦我们注册了ORG2的ROOT CA(第一次建立网络时),我们就希望信任从其中间CA注册的所有用户。

我认为,如果中间CA来自ORG2的根CA,应该有一种方法告诉网络信任所有从中间CA注册的用户。

0 个答案:

没有答案