當您在阿里云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
查看任務,如果您能進行任務瀏覽,表示您已成功綁定管理鏈碼。