鏈碼生命週期

(Hyperledger Fabric v2.x) 鏈碼生命週期描述在對等上安裝鏈碼並在通道上部署鏈碼的程序。

鏈碼生命週期以 Hyperledger Fabric v2.x 平台的功能為基礎,該平台允許對鏈碼進行分散式治理。多個組織可以在鏈碼與分類帳互動之前,先同意鏈碼參數 (包括鏈碼背書原則)。這些功能在新的快速部署和進階部署選項以及 REST API 中導入。如需新生命週期的詳細資訊,請參閱 Hyperledger Fabric v2.2.4 文件中的 Fabric chaincode lifecycle

一般而言,若要部署已安裝的鏈碼,您可以在主控台中使用快速部署或進階部署。部署流程包括封裝和安裝鏈碼,以及核准和確認鏈碼定義。您也可以使用 REST API 分別完成核准和承諾作業。

封裝並安裝 Chaincode

當您在 Oracle Blockchain Platform 中安裝鏈碼時,會封裝、安裝鏈碼,並自動產生套件 ID。套裝軟體 ID 會顯示在主控台的 [ 鏈碼 ] 標籤中。

核准鏈碼定義

在將鏈碼部署到通道之前,必須先由足夠的組織核准鏈碼定義,才能滿足通道的 LifecycleEndorsement 原則。Oracle Blockchain Platform 中的預設 LifecycleEndorsement 原則可讓任何組織核准鏈碼定義 (相對於大多數組織)。鏈碼定義包含下列參數,這些參數必須與所有組織相同:Chaincode NameVersionSequenceEndorsement PolicyPrivate Data CollectionInit-required。鏈碼定義也可以包含 Package ID,所有組織都不需要相同。

核准鏈碼定義之後,一個組織可以從核准組織的對等體收集背書,然後將鏈碼定義確認至通道。

若要使用 REST API 核准鏈碼定義,請參閱核准通路中的鏈碼定義

在主控台中,當您使用快速部署或進階部署時,系統會嘗試核准和承諾步驟。

確認鏈碼定義

若要使用 REST API 來確認已核准的鏈碼定義,請參閱在管道中確認鏈碼定義

在主控台中,您可以在通道的部署的鏈碼頁面上查看已核准但尚未確認的鏈碼定義。您可以使用其他動作功能表來確認核准的鏈碼。

鏈碼生命週期案例

案例 描述
加入頻道

通常在主控台中,您不需要先確認鏈碼定義,就無法核准。如果您加入另一個組織確認鏈碼定義的共用通道,您將會在該通道的部署的鏈碼頁面中看到列為已確認但未核准的鏈碼定義。您可以使用其他動作功能表來核准鏈碼定義,也可以建立套裝程式 ID 的關聯。您不需要再次確認配套定義。

更新背書原則

您可以在鏈碼定義中更新背書原則,而不需重新安裝鏈碼。在通道的「部署的鏈碼」頁面上,使用「其他動作」功能表來升級鏈碼定義。展開背書原則並指定新原則,然後按一下升級

核准定義而不安裝

在多個組織案例中,若要核准鏈碼定義而不安裝鏈碼套件,請勿指定套件 ID。您可以為確認至通道的鏈碼定義背書,但該鏈碼並未安裝在您的組織中的對等上。您將無法使用鏈碼來為交易背書或查詢分類帳。

定義上的意見分歧

在多個組織案例中,未核准鏈碼定義或核准不同鏈碼定義的組織無法在其對等上執行鏈碼。如果其他組織獲得足夠的背書來確認通路的定義,則這些組織可以使用鏈碼。交易仍會新增至所有組織同儕的分類帳。

如果組織不同意鏈碼定義,且組織沒有足夠的背書來確認通路的定義,則無法確認定義,因此無法執行鏈碼。

多重組織安裝不同的套裝軟體

當您核准具有多個組織的通路鏈碼定義時,可以指定不同的套件 ID。如果定義名稱和背書原則相同,則通道成員可以安裝其組織特定的鏈碼,但會將資料讀取並寫入相同的鏈碼命名空間。

從一個套裝程式建立多個鏈碼

同樣地,您可以多次核准和確認相同的鏈碼套件,為每個定義指定不同的名稱。多個鏈碼執行處理會在通道上執行。如果您也為每個定義指定不同的背書原則,則每個鏈碼執行處理都會受到不同的背書原則約束。