D 更新 Hyperledger Fabric v2.x 的應用程式
升級平台版本時,您可能需要變更現有的應用程式,以便與新版本的 Hyperledger Fabric 搭配使用。
- 適用於 Node.js 版本 2.2.9 的 Hyperledger Fabric 用戶端 SDK
- 適用於 Java 版本 2.2.2 的 Hyperledger Fabric 用戶端 SDK
- Go 版本 1.0.0 的 Hyperledger Fabric 用戶端 SDK
Hyperledger Fabric v2.x 需要 Go 版本 1.20 或更新版本,因此您可能需要升級使用的 Go 版本。
附註:
如果您再次部署現有的鏈碼.zip
檔案,且索引儲存在鏈碼套件的根目錄中,而不是 META-INF
目錄下,則查詢可能會發生逾時錯誤。為避免發生逾時錯誤,請確定您部署到 Hyperledger Fabric v2.x 實例之現有鏈碼中的索引位於下列目錄中:META-INF/statedb/relationaldb/indexes
如需詳細資訊,請參閱狀態資料庫索引。
如果應用程式使用從屬端 SDK 來完成更複雜的作業,例如管理鏈碼生命週期、監聽事件或管理數位公事包,您可能需要更新應用程式,如以下各節所述。
適用於 Node.js 的 Hyperledger Fabric SDK
下表摘要 Node.js 版 Hyperledger Fabric SDK 的 1.4 和 2.x 版本之間的差異。如需詳細資訊,請參閱 Hyperledger Fabric 文件中的 Migrating client applications from v1.4 to v2.0 。
2.x 版的變更 | 客戶動作 |
---|---|
已移除 fabric-client 模組。
|
重製應用程式以使用 fabric-network 模組。
|
用於儲存和存取識別資訊的公事包已重新設計。 | 請參閱 Hyperledger Fabric 文件,以取得移轉公事包的準則和公用程式。 |
已重新設計事件監聽器 API 和行為。 | 重新撰寫事件監聽器以使用新的 API。 |
SDK 不再提供管理與管理功能,包括建立通道及管理鏈碼生命週期的能力。 | 這些作業使用命令行介面。在生命週期管理中使用版本 1.4 功能的現有用戶端將無法與 Hyperledger Fabric v2.x 執行處理搭配使用。 |
下表列出 Hyperledger Fabric v2.x fabric-network
模組中可用的類別與 Hyperledger Fabric v1.4.7 fabric-network
模組中的可用類別。
版本 2.x 結構網路模組類別 | 1.4 版結構網路模組類別 |
---|---|
|
|
適用於 Java 的 Hyperledger Fabric SDK
如果您的應用程式使用 Java SDK for Hyperledger Fabric 2.0 (InstallProposalRequest、InstantiateProposalRequest 和 UpgradeProposalRequest) 中已不再使用的生命週期 API,請重寫您的應用程式,以在較新版本的 SDK 中使用 API。如需詳細資訊,請參閱 Java SDK for Hyperledger Fabric 2.0 發行公告。
Oracle Blockchain Platform REST API (REST 代理主機)
呼叫現有鏈碼不需要任何變更。
為了支援新鏈碼需要的初始化函數,已將選擇性的 isInit 參數新增至現有的交易 API。如需詳細資訊,請參閱 REST API 文件中的傳送交易。
Oracle Blockchain Platform REST API (主控台)
更新所有 API 呼叫中使用的版本。在 Hyperledger Fabric v1.4.7 中,API 版本編號是 1.1。在 Hyperledger Fabric v2.x 中,API 版本編號是 2。
/console/admin/api/v1.1/chaincodes
/console/admin/api/v2/chaincodes
附註:
雖然大多數現有 API 都具有新的 Hyperledger Fabric v2.x 等效項目,但並沒有 1:1 相符。某些 API 對每個版本的 Hyperledger Fabric 而言都是唯一的,但有些 API 對於每個版本都有不同的參數。例如,在 Hyperledger Fabric v2.x 上,部署功能已從chaincode
子路徑移至 channel
子路徑。如需詳細資訊,請參閱 REST API 文件中的 New、Changed 及 Deprecated API 。
由於 Hyperledger Fabric v2.x 包含一個新的鏈碼生命週期,其中包含可在對等上安裝鏈碼並在通道上啟動鏈碼的新程序,因此您可能需要更新任何相關的 API 呼叫。若要深入瞭解,請參閱鏈碼生命週期。