撰寫鏈碼
鏈碼以 Go、Node.js 或 Java 撰寫,然後封裝成安裝在 Oracle Blockchain Platform 網路上的 ZIP 檔案。
鏈碼定義分類帳中的資料綱要、將其初始化、應用程式觸發時完成更新,以及回應查詢。鏈碼也可以張貼可通知應用程式並完成下游作業的事件。例如,在採購單、商業發票及交貨記錄以鏈碼比對後,可以將事件過帳,讓訂閱應用程式可以處理相關付款並更新內部 ERP 系統。
Chaincode 開發的資源
Oracle Blockchain Platform 使用 Hyperledger Fabric 作為其基礎。使用 Hyperledger Fabric 文件可協助您撰寫有效的鏈碼。
-
歡迎使用 Hyperledger Fabric 。請先閱讀「重要概念」和「教學課程」區段,再撰寫自己的鏈碼。
-
使用程式設計語言。Go 編譯器、工具和程式庫提供了多種資源,可簡化寫入鏈碼。
-
套裝軟體動畫。套裝軟體 shim 為鏈碼提供 API 以存取其狀態變數、取得交易相關資訊環境,以及呼叫其他鏈碼。套裝軟體 shim 文件說明鏈碼所需的實際語法。
Oracle Blockchain Platform 提供可下載的範例,協助您瞭解如何撰寫鏈碼和應用程式。請參閱何謂鏈碼範例?
您可以在鏈碼中新增 Rich-query 語法,以查詢狀態資料庫。請參閱 SQL Rich Query Syntax 和 CouchDB Rich Query Syntax 。
封裝 Go Chaincode
編寫鏈碼之後,請將它壓縮成 ZIP 格式的檔案。您不需要為 Go 鏈碼建立套裝軟體,也不需要簽署 - Oracle Blockchain Platform 安裝和部署程序會依照部署鏈碼的一般工作流程 (Hyperledger Fabric v2.x) 中的說明為您執行此操作。
如果您的鏈碼有任何外部相依性,您可以將其置於 ZIP 檔案的供應商目錄中。
Go Chaincodes 的 Shim 廠商
Hyperledger Fabric v2.x 不包含先前版本的 Hyperledger Fabric 所包含的 Go chaincode shim 相依性。此 shim 現在必須先將 (匯入) 轉送至 Go 鏈碼,然後才安裝在對等體上。
您可以使用 Go 模組或第三方工具 (例如協力廠商) 來為鏈碼 shim 提供廠商,並將它更新為與 Hyperledger Fabric v2.x 搭配運作的版本。
如需詳細資訊,請參閱 Hyperledger Fabric 文件中的 Chaincode shim changes (僅限 Go chaincode) 和 Upgrade Chaincodes with vendored shim 。如需有關「執行」模組的詳細資訊,請參閱執行模組參考。
封裝 Node.js 鏈碼
package.json
檔案:
-
scripts
區段宣告如何啟動鏈碼。 -
dependencies
區段指定相依性。
以下為 Node.js 鏈碼的範例 package.json
:
{
"name": "chaincode_example02",
"version": "1.0.0",
"description": "chaincode_example02 chaincode implemented in Node.js",
"engines": {
"node": ">=8.4.0",
"npm": ">=5.3.0"
},
"scripts": { "start" : "node chaincode_example02.js" },
"engine-strict": true,
"license": "Apache-2.0",
"dependencies": {
"fabric-shim": "~1.3.0"
}
}
package.json
檔案必須位於根目錄中。- 項目 JavaScript 檔案可位於套裝軟體的任何位置。
- 如果
package.json
檔案中未指定"start" : "node <start>.js"
,則server.js
檔案必須位於根目錄中。
以 ZIP 格式壓縮鏈碼和套裝軟體檔案,並將其安裝在 Oracle Blockchain Platform 上。
封裝 Java 鏈碼
如果您正在撰寫 Java 鏈碼,可以選擇 Gradle 或 Maven 來建立鏈碼。
Archive: example_gradle.zip Length Date Time Name --------- ---------- ----- ---- 610 02-14-2019 01:36 build.gradle 54 02-14-2019 01:28 settings.gradle 0 02-14-2019 01:28 src/ 0 02-14-2019 01:28 src/main/ 0 02-14-2019 01:28 src/main/java/ 0 02-14-2019 01:28 src/main/java/org/ 0 02-14-2019 01:28 src/main/java/org/hyperledger/ 0 02-14-2019 01:28 src/main/java/org/hyperledger/fabric/ 0 02-14-2019 01:28 src/main/java/org/hyperledger/fabric/example/ 5357 02-14-2019 01:28 src/main/java/org/hyperledger/fabric/example/SimpleChaincode.java --------- ------- 6021 10 files
Archive: example_maven.zip Length Date Time Name --------- ---------- ----- ---- 3313 02-14-2019 01:52 pom.xml 0 02-14-2019 01:28 src/ 0 02-14-2019 01:28 src/chaincode/ 0 02-14-2019 01:28 src/chaincode/example/ 4281 02-14-2019 01:28 src/chaincode/example/SimpleChaincode.java --------- ------- 7594 5 files
測試鏈碼
寫入鏈碼後測試您的鏈碼。請參閱下列主題:
安裝與部署鏈碼
測試鏈碼之後,您可以依照部署鏈碼的一般工作流程 (Hyperledger Fabric v2.x) 中的資訊來部署鏈碼。
升級鏈碼
請依照升級鏈碼 (Hyperledger Fabric v2.x) 中的步驟,升級已部署的鏈碼。