鏈碼生命週期
鏈碼生命週期描述在對等上安裝鏈碼並在通道上部署鏈碼的過程。
鏈碼生命週期是以 Hyperledger Fabric 平台的功能為基礎,此平台允許鏈碼的分散式治理。多個組織可以在鏈碼與分類帳互動之前,先同意鏈碼參數 (包括鏈碼背書政策)。這些功能會在新的快速部署和進階部署選項以及 REST API 中實作。如需週期的詳細資訊,請參閱 Hyperledger Fabric 文件中的 Fabric chaincode lifecycle 。
一般而言,若要部署已安裝的鏈碼,您可以在主控台中使用快速部署或進階部署。部署程序包括封裝和安裝鏈碼,以及核准和確認鏈碼定義。您也可以使用 REST API 分開完成核准和承諾作業。
封裝並安裝鏈碼
當您在 Oracle Blockchain Platform 中安裝鏈碼時,系統會封裝、安裝鏈碼,並自動產生套件 ID。套裝程式 ID 會顯示在主控台的鏈碼頁籤中。
核准鏈碼定義
在將鏈碼部署到通道之前,必須先由足夠的組織核准鏈碼定義,以滿足該通道的 LifecycleEndorsement 政策。Oracle Blockchain Platform 中的預設 LifecycleEndorsement 原則可讓任何組織核准鏈碼定義 (相對於大多數組織)。鏈碼定義包含下列所有組織必須相同的參數:Chaincode Name、Version、Sequence、Endorsement Policy、Private Data Collection 及 Init-required。鏈碼定義也可以包含 Package ID,這對所有組織而言不必相同。
核准鏈碼定義之後,一個組織可以從核准組織的同儕收集背書,然後將鏈碼定義確認至通道。
若要使用 REST API 核准鏈碼定義,請參閱核准通道中的鏈碼定義。
在主控台中,當您使用快速部署或進階部署時,系統會同時嘗試核准和承諾步驟。
確認鏈碼定義
若要使用 REST API 確認已核准的鏈碼定義,請參閱確認通道中的鏈碼定義。
在主控台中,您可以在通道的部署的鏈碼頁面上查看已核准但未確認的鏈碼定義。您可以使用其他動作功能表來確認核准的鏈碼。
鏈碼生命週期案例
| 案例 | 描述 |
|---|---|
| 加入頻道 |
通常在主控台中,您不需要確認鏈碼定義就不會核准鏈碼定義。如果您加入另一個組織確認鏈碼定義的共用通道,您將會在該通道的部署的鏈碼頁面上看到列為已確認但未核准的鏈碼定義。您可以使用其他動作功能表來核准鏈碼定義,以及建立套裝程式 ID 的關聯。您不需要再次確認配套定義。 |
| 更新背書原則 |
您可以更新鏈碼定義中的背書原則,無須重新安裝鏈碼。在通道的「部署的鏈碼」頁面上,使用「更多動作」功能表來升級鏈碼定義。展開背書原則並指定新原則,然後按一下升級。 |
| 核准定義而不安裝 |
在多重組織案例中,若要核准鏈碼定義而不安裝鏈碼套件,請勿指定套件 ID。您背書已確認至通道的鏈碼定義,但鏈碼並未安裝在您組織中的對等上。您將無法使用鏈碼來背書交易或查詢分類帳。 |
| 不同意定義 |
在多個組織案例中,未核准鏈碼定義或核准不同鏈碼定義的組織無法在其對等上執行鏈碼。如果其他組織獲得足夠的背書,將定義確認至通路,則這些組織可以使用鏈碼。異動仍會新增至所有組織同儕上的分類帳。 如果組織不同意鏈碼定義,且沒有組織取得足夠的背書來確認通路的定義,則無法確認定義,因此無法執行鏈碼。 |
| 多個組織安裝不同的套裝軟體 |
當您核准具有多個組織之管道的鏈碼定義時,可以指定不同的套件 ID。如果定義名稱和背書原則相同,則通道成員可以安裝其組織特定的鏈碼,但可以將資料讀取和寫入相同的鏈碼命名空間。 |
| 從一個包裹建立多個鏈碼 |
同樣地,您可以多次核准和確認相同的鏈碼套件,為每個定義指定不同的名稱。通道上會執行鏈碼的多個執行處理。如果您也為每個定義指定不同的背書原則,則每個鏈碼執行處理都會受限於不同的背書原則。 |