Chaincode 週期

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

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

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

套裝程式並安裝鏈碼

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

核准鏈碼定義

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

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

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

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

確認鏈碼定義

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

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

Chaincode 生命週期案例

案例 描述
加入頻道

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

更新背書原則

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

核准定義而不安裝

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

不同意定義

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

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

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

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

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

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