外部组织加入通道

当您在阿里云BaaS中已创建联盟和通道,并且通道内所有的组织都已经安装和绑定管理链码后,通道内的任一组织可以申请将阿里云BaaS外的Fabric组织加入此通道。

加入外部组织

前提条件

  • 外部组织的peer节点地址需要是公网可访问的“域名+端口”格式。

  • 外部组织和阿里云BaaS上的组织使用同类型的状态数据库(当前默认为couchDB)。

  • 如果BaaS上的联盟是1.4版本,需要外部组织的Fabric版本高于或等于 v1.4.2,低于v2.0;如果BaaS上的联盟是2.2版本, 则需要外部组织的Fabric版本为2.2.x。

  • 对于将要纳入外部组织的通道,通道内每个组织都需部署管理链码,并将管理链码与通道绑定使其成为混合通道,具体操作请参考管理链码

  • 阿里云BaaS用户可通过工单联系区块链团队获取互操作工具,发送给外部组织。该工具需要访问Fabric环境中的configtx.yaml文件以及crypto-config目录。如果外部组织无法使用该工具,则需要外部组织所在的区块链平台提供相应的互操作功能。

操作步骤

  1. 外部组织使用互操作工具,运行命令./cmt.amd64 req generate req.json获取加入请求文件,线下发送给目标通道中任意一个阿里云BaaS组织的管理员。工具获取加入请求

    注意:工具的配置及使用请参考工具附带的说明文件。如果外部组织无法使用互操作工具,可以通过其区块链平台,或者Fabric CLI命令获取组织加入信息,进而形成加入请求文件,文件所需的内容请下载参考示例

  2. 该组织管理员使用阿里云账户登录控制台,在概览页面,我的组织区域,找到目标通道内需要作为发起方的组织,单击组织的名称。

  3. 单击已加入通道标签,对于将加入外部组织的通道,确定其已经带有混合通道标识后,单击添加外部组织

    • 1.4版本,如下图所示:
      添加外部组织

    • 2.2版本,如下图所示:
      外部组织加入混合通道1

  4. 添加外部组织侧边弹框中,将外部组织发来的加入请求文件进行上传,表格中会显示该组织的关键信息,确认无误后单击添加。此时通道内每个组织会收到一个审批任务,需要半数以上的组织签名。上传加入请求

  5. 对于通道内的每一个BaaS组织,使用对应的阿里云账户登录BaaS控制台,单击左侧导航栏上的任务,查看任务页面的列表,找到对应的“待审批”任务,单击去处理,弹出任务详情侧边弹框。一般情况下,发起方会自动审批,任务状态为“已审批”。加入组织待审批

    注意:如果通道内的组织是第一次使用管理链码处理任务,也不是管理链码实例化的操作方,则需要一定时间创建管理链码的运行环境,其任务显示可能会有滞后,发起方的任务也无法自动审批。

  6. 任务详情侧边弹框中,查看加入组织的详细信息。确定待加入组织的“MSP ID”及其他信息无误。如果批准则单击同意,如果不批准可单击关闭加入组织审批

  7. 如果通道内已存在外部组织,由于无法使用阿里云BaaS控制台审批任务,可使用互操作工具运行命令./cmt.amd64 list 进行任务浏览。工具浏览任务

  8. 运行命令./cmt.amd64 approve [Proposal ID]进行审批。其中“Proposal ID”为此次任务在阿里云BaaS控制台中任务详情侧边弹框中展示的任务ID。工具审批任务

    注意:如果外部组织无法使用互操作工具,可以通过其区块链平台,或者Fabric CLI命令对通道变更进行签名,并调用管理链码处理任务。

  9. 当通道内半数以上的组织完成审批,任务状态会变为“可提交”。如果是阿里云BaaS上的组织审批后使任务变为“可提交”,则BaaS会自动提交该任务,状态变为“已生效”。如果是外部组织审批后使任务变为“可提交”,则需要该通道内的任一BaaS组织在任务详情中,单击“提交”,手动使通道变更生效。提交任务

  10. 概览页面,找到我的组织区域,单击已加入通道标签,单击获取加入回复,弹出侧边弹框。下载加入回复文件,或复制文本框中的内容,发送给待添加的外部组织。获取加入回复

  11. 外部组织使用互操作工具处理加入回复文件,完成BaaS通道的加入。工具处理加入回复文件

    注意:如果外部组织无法使用互操作工具,可以通过其区块链平台,或者Fabric CLI命令连接排序节点,拉取通道的最新区块。

  12. 外部组织根据加入回复文件,重新配置互操作工具的通道和Orderer 证书,并指定管理链码。工具配置2

  13. (V1.4)外部组织参考下载管理链码章节下载管理链码并进行安装,以便和其他组织一起对通道进行管理。您可以在互操作工具中执行命令./cmt.amd64 install cmcc.1.4.cc,安装已下载的管理链码。

  14. (V2.2)外部组织根据已下载的管理链码进行安装,以便和其他组织一起对通道进行管理。您可以在互操作工具中执行命令./cmt.amd64 lifecycle install ./cmcc.1.5.tar.gz,安装已下载的管理链码。

  15. (V2.2)外部组织安装完管理链码后,还需要提交链码定义,您可以在互操作工具中执行命令./cmt.amd64 lifecycle approve cmcc.1.5.tar.gz -n <BaaS上的链码名称> -v <BaaS上的版本号> -s <BaaS上的序列号> -e <BaaS上的背书策略>

    说明:关于BaaS上的链码名称BaaS上的版本号BaaS上的序列号,可以由BaaS内的组织线下提供给您。

  16. 外部组织链码实例化后,外部组织可以在互操作工具中执行./cmt.amd64 list查看任务,如果您能进行任务浏览,表示您已成功绑定管理链码。工具浏览任务