当您在阿里云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目录。如果外部组织无法使用该工具,则需要外部组织所在的区块链平台提供相应的互操作功能。
操作步骤
外部组织使用互操作工具,运行命令
./cmt.amd64 req generate req.json
获取加入请求文件,线下发送给目标通道中任意一个阿里云BaaS组织的管理员。重要工具的配置及使用请参考工具附带的说明文件。如果外部组织无法使用互操作工具,可以通过其区块链平台,或者Fabric CLI命令获取组织加入信息,进而形成加入请求文件,文件所需的内容请下载参考示例。
截图示例中,
~/cmt.amd64 req generate req.json
表示在root目录下执行,请确保root目录下有cmt工具,如果cmt工具在当前目录下,可以直接运行命令./cmt.amd64 req generate req.json
,本文出现的所有截图示例都代表在root目录下执行的。
该组织管理员使用阿里云账户登录控制台,在概览页面,我的组织区域,找到目标通道内需要作为发起方的组织,单击组织的名称。
单击已加入通道标签,对于将加入外部组织的通道,确定其已经带有混合通道标识后,单击添加外部组织。
在添加外部组织侧边弹框中,将外部组织发来的加入请求文件进行上传,表格中会显示该组织的关键信息,确认无误后单击添加。此时通道内每个组织会收到一个审批任务,需要半数以上的组织签名。
对于通道内的每一个BaaS组织,使用对应的阿里云账户登录BaaS控制台,单击左侧导航栏上的任务,查看任务页面的列表,找到对应的待审批的任务,单击去处理,弹出任务详情侧边弹框。一般情况下,发起方会自动审批,任务状态为“已审批”。
说明如果通道内的组织是第一次使用管理链码处理任务,也不是管理链码实例化的操作方,则需要一定时间创建管理链码的运行环境,其任务显示可能会有滞后,发起方的任务也无法自动审批。
在任务详情侧边弹框中,查看加入组织的详细信息。确定待加入组织的MSP ID及其他信息无误。如果批准则单击同意,如果不批准可单击关闭。
如果通道内已存在外部组织,由于无法使用阿里云BaaS控制台审批任务,可使用互操作工具运行命令
./cmt.amd64 list
进行任务浏览。运行命令
./cmt.amd64 approve [Proposal ID]
进行审批。其中“Proposal ID”为此次任务在阿里云BaaS控制台中任务详情侧边弹框中展示的任务ID。说明注意:如果外部组织无法使用互操作工具,可以通过其区块链平台,或者Fabric CLI命令对通道变更进行签名,并调用管理链码处理任务。
当通道内半数以上的组织完成审批,任务状态会变为可提交。如果是阿里云BaaS上的组织审批后使任务变为可提交,则BaaS会自动提交该任务,状态变为已生效。如果是外部组织审批后使任务变为可提交,则需要该通道内的任一BaaS组织在任务详情中,单击提交,手动使通道变更生效。
在概览页面,找到我的组织区域,单击已加入通道标签,单击获取加入回复,弹出侧边弹框。下载加入回复文件,或复制文本框中的内容,发送给待添加的外部组织。
外部组织使用互操作工具处理加入回复文件,完成BaaS通道的加入。
说明注意:如果外部组织无法使用互操作工具,可以通过其区块链平台,或者Fabric CLI命令连接排序节点,拉取通道的最新区块。
外部组织根据加入回复文件,重新配置互操作工具的通道和Orderer 证书,并指定管理链码。
(V1.4)外部组织参考下载管理链码章节下载管理链码并进行安装,以便和其他组织一起对通道进行管理。您可以在互操作工具中执行命令
./cmt.amd64 install cmcc.1.4.cc
,安装已下载的管理链码。(V2.2)外部组织根据已下载的管理链码进行安装,以便和其他组织一起对通道进行管理。您可以在互操作工具中执行命令
./cmt.amd64 lifecycle install ./cmcc.1.5.tar.gz
,安装已下载的管理链码。(V2.2)外部组织安装完管理链码后,还需要提交链码定义,您可以在互操作工具中执行命令
./cmt.amd64 lifecycle approve cmcc.1.5.tar.gz -n <BaaS上的链码名称> -v <BaaS上的版本号> -s <BaaS上的序列号> -e <BaaS上的背书策略>
。说明说明:关于BaaS上的链码名称、BaaS上的版本号、BaaS上的序列号,可以由BaaS内的组织线下提供给您。
外部组织链码实例化后,外部组织可以在互操作工具中执行
./cmt.amd64 list
查看任务,如果您能进行任务浏览,表示您已成功绑定管理链码。