Hyperledger fabric 部署Hyperledger结构区块链网络时出现问题

Hyperledger fabric 部署Hyperledger结构区块链网络时出现问题,hyperledger-fabric,blockchain,hyperledger,Hyperledger Fabric,Blockchain,Hyperledger,我正在为一些基于Hyperledger Fabric区块链的软件解决方案准备部署场景。2.0. 我已经阅读了官方文档和示例,但是关于在实际生产环境中的部署/支持,我仍然不清楚一些要点 假设所设计的区块链网络包括以下参与者: 准备和支持基本区块链基础设施的软件提供商组织 参与区块链网络上商业交易的N个组织(Org1、Org2、…、OrgN)的联盟 联合体中的每个组织都有一名系统管理员,或多或少熟悉区块链技术和Hyperledger结构 我预期的大致部署场景是: 所有参与者(软件提供商、Org1

我正在为一些基于Hyperledger Fabric区块链的软件解决方案准备部署场景。2.0. 我已经阅读了官方文档和示例,但是关于在实际生产环境中的部署/支持,我仍然不清楚一些要点

假设所设计的区块链网络包括以下参与者:

  • 准备和支持基本区块链基础设施的软件提供商组织
  • 参与区块链网络上商业交易的N个组织(Org1、Org2、…、OrgN)的联盟
  • 联合体中的每个组织都有一名系统管理员,或多或少熟悉区块链技术和Hyperledger结构
我预期的大致部署场景是:

  • 所有参与者(软件提供商、Org1、Org2……OrgN)准备所需的身份:选择其证书颁发机构(CA)、获取X.509证书、生成用于安全连接的私钥和公钥等
  • 软件供应商部署订购节点,创建系统通道,并定义N个组织的联盟。因此,软件供应商必须获得所有参与组织的公共身份(MSP)
  • 联合体中的所有组织(Org1、Org2、…OrgN)在其本地环境中至少启动一个对等方
  • 联合体同意用于生产的业务规则。基于此,一些组织(例如Org1)应该创建一个业务渠道,并在其上安装相应的链码。为此,Org1必须拥有所有组织的MSP,以便为整个联合体配置业务渠道
  • 所有组织都加入这个业务渠道,并且只使用他们自己的MSP(带有私有数据)在网络中进行标识
  • 之后,Org1在business channel上安装商定的链码。所需数量的其他组织批准此链码
  • 批准完成后,Org1提交链码定义
  • 现在,所有组织都可以使用自己的MSP与提交的链码交互(查询分类账数据并调用智能合约)
  • 在这种情况下,我认为只有两个组织(软件提供商和Org1)应该以某种方式获得所有其他联合体成员的公共身份(MSP)。对于其他组织来说,使用自己的私有MSP在网络中获得适当授权就足够了

    但事实上,至少在第5步中,每个组织在技术上必须明确与所有联合体成员的MSP合作。下面是每个组织在步骤#5执行的一个命令,用于注册锚节点:

    configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./output/channel-artifacts/organchors.tx -channelID mychannel -asOrg OrgX
    
    上述TwoOrgsChannel配置文件在channel configuration(configtx.yaml)中定义,该配置文件又包含指向所有组织的MSP的链接。这意味着,在加入渠道期间,每个组织必须使用渠道配置的本地副本(configtx.yaml),并以某种方式接收联合体中所有MSP的本地副本。它同时提出了几个问题:

    a) 对于生产场景,每个参与组织是否真的需要所有其他联合体成员的MSP?看起来组织管理员手动管理此复杂配置非常不舒服

    b) 为什么每个组织都要求启动锚节点显式更新,尽管在初始信道配置(configtx.yaml)中已指定了有关所有锚节点的信息,用于为信道(Org1)准备genesis块

    c) 如果我跳过锚节点更新步骤,会发生什么

    d) 此外,Hyperledger Fabric中是否有某种方法可以添加一些具有只读权限的组织(甚至未经授权的参与者)以在某些渠道中访问分类账?例如,如果有一天客户要求我们(作为软件供应商)将账本的访问权交给审计公司,我们该怎么办

    请你澄清这些要点好吗

    谢谢和问候

    伊戈尔·埃戈罗夫