使用 Visual Studio 程式碼測試您的鏈碼

如果您的鏈碼是在網路上執行,您可以測試任何產生的方法。此外,如果您選擇在鏈碼開發期間建立 executeQuery 方法,則可以在將鏈碼部署到 Oracle Blockchain Platform 網路時,執行 SQL Rich Query。

在本機 Hyperledger Fabric 網路上測試您的鏈碼

當您的鏈碼專案在區域網路上執行後,您就可以進行測試。

Blockchain App Builder 包含內建的精靈,可協助您呼叫或查詢您的鏈碼。

  1. 鏈碼窗格中選取您的鏈碼專案。在鏈碼詳細資訊窗格中,選取執行。應已選取鏈碼名稱。確定目標環境設為本機環境,通道將預設為唯一可用的通道。
  2. 函數欄位中,從下拉式清單中選取您的方法。會列出鏈碼中每個可用的方法。
  3. 函數參數欄位中,選取其他動作 (...) 按鈕。這會啟動含有所選方法可用特性的視窗。輸入特性,針對您呼叫方法時不想送出的任何非必要特性,按一下省略,然後按一下儲存
  4. 按一下呼叫

輸出主控台視窗會顯示已呼叫函數。或者,在鏈碼動作窗格中,函數輸出視窗會顯示輸出。按一下其他動作 (...) 按鈕,查看此輸出的格式。

如果您要儲存剛執行的方法和參數,可以按一下儲存,然後輸入該方法的名稱和描述。它將會儲存在 Queries 資料夾中的鏈碼專案中。若要再次使用,請用滑鼠右鍵按一下它,然後選取開啟

如果您對會變更方法的控制器檔案進行任何變更,請選取鏈碼執行窗格頂端的重新載入圖示。變更現在應反映在函數下拉式清單中。

附註:

如果您不想使用精靈進行測試,也可以在 Visual Studio Code 終端機視窗中執行 Blockchain App Builder 命令行工具。請依照此處提供的指示,使用命令行進行測試:在本機 Hyperledger Fabric 網路測試您的鏈碼

在本機測試多個權杖使用者

若要在本機測試具有多個使用者的記號專案,您可以使用 tokenUser 特性來變更每個交易的呼叫程式。每個鷹架式鏈碼專案都包含一個 .ochain.json 檔案,其中儲存鏈碼的描述資料。您可以更新 .ochain.json 檔案中的 tokenUser 欄位值來變更呼叫程式。

{
  "name": "digiCurrCC",
  "description": "Chaincode package for digiCurrCC",
  "chaincodeName": "digiCurrCC",
  "chaincodeType": "node",
  "configFileLocation": "/Users/user1/token.yml",
  "appBuilderVersion": "21.2.3",
  "nodeVersion": "v12.18.1",
  "tokenUser": "admin"
}

當專案被鷹架時,tokenUser 特性會設為本機網路的預設 admin 使用者。若要變更交易的呼叫者,請變更 tokenUser 特性,以符合在呼叫 createAccount (TypeScript) 或 CreateAccount (Go) 方法時建立帳戶時所設定的 user_id 特性。

更新後自動安裝與部署

每當您更新並儲存鏈碼時,變更都會自動進行編譯、安裝和部署。您不需要去除或重新啟動本機網路。所有專案將在每次變更時自動編譯和部署。

在遠端 Oracle Blockchain Platform 網路上測試生命週期作業

當您的鏈碼專案成功部署到遠端 Oracle Blockchain Platform 網路之後,您可以依照在本機 Hyperledger Fabric 網路上測試您的鏈碼中的描述進行測試。

您可以使用相同的呼叫和查詢命令,在遠端 Oracle Blockchain Platform Cloud 或 Enterprise Edition 網路執行所有方法交易;遠端網路也支援本機網路的所有支援項目。執行測試時,請選取 Oracle Blockchain Platform 執行處理作為目標環境。

在遠端 Oracle Blockchain Platform 網路上測試記號專案

您可以使用 Blockchain App Builder、Oracle Blockchain Platform REST 代理主機或 Hyperledger Fabric SDK 來測試與權杖搭配使用的鏈碼專案。

區塊鏈 App 產生器

您可以使用 Visual Studio Code 擴充功能來呼叫多位使用者的交易,以測試記號鏈碼。若要與多位使用者進行測試,請變更環境頁籤中的授權參數 (使用者名稱和密碼),然後儲存環境。呼叫交易時,請從下拉式清單中選取相同的環境,然後執行交易。

Oracle Blockchain Platform REST 代理主機

您可以使用 Oracle Blockchain Platform 中的 REST 代理主機,在遠端 Oracle Blockchain Platform 網路上執行權杖鏈碼。使用任何 REST 代理主機從屬端 (例如 Postman REST 從屬端) 測試您的鏈碼專案。

若要測試多位使用者,請變更您 REST 從屬端中的授權參數 (使用者名稱和密碼),或連線至不同的 Oracle Blockchain Platform 執行處理。

執行 Berkeley 資料庫 SQL 豐富查詢

如果您選擇在鏈碼開發期間建立 executeQuery 方法,則可以在將鏈碼部署到 Oracle Blockchain Platform 網路時,執行 SQL Rich Query。

如果您已在規格檔案的 customMethods 區段中使用 executeQuery,則會在控制器中建立對應的 executeQuery 方法。

規格檔案:
customMethods:
    - executeQuery
    - "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
    - "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
    - "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
    - "sendProductsToDistribution()"
控制器檔案:
**
*
* BDB sql rich queries can be executed in OBP CS/EE.
* This method can be invoked only when connected to remote OBP CS/EE network.
*
*/
@Validator(yup.string())
public async executeQuery(query: string) {
    const result = await OchainController.query(query); 
    return result;
}

您可以呼叫此方法在 Oracle Blockchain Platform 網路上執行 Berkeley DB SQL 豐富查詢,確保您在執行查詢時選取作為目標環境的 Oracle Blockchain Platform 環境。

範例:
  1. 鏈碼詳細資訊窗格中,選取執行。應該已經從部署步驟預先填入鏈碼名稱、目標環境以及通道。
  2. 函數名稱欄位中,從下拉式清單中選取 executeQuery
  3. 函數參數欄位中,選取其他動作 (...) 按鈕。這會啟動一個視窗,供您輸入查詢字串。輸入查詢的引數,然後按一下儲存
  4. 按一下查詢
輸出視窗會顯示正在執行的查詢和結果。
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" 

整個 SQL 查詢都包含在引數中,因此您可以即時變更查詢。

從查詢產生 CLI 命令

如果您已在 Visual Studio Code 的鏈碼專案中儲存查詢,則可以自動產生等效的 CLI 命令。

您必須在鏈碼專案中至少有一個已儲存的查詢,才能產生 Mac OSX 和 Linux 以及 Microsoft Windows 的 CLI 命令。

  1. 展開鏈碼窗格中的專案。
  2. 查詢上按一下滑鼠右鍵。
  3. 按一下產生 CLI 命令

鏈碼窗格的查詢區段中會產生並顯示兩個文字檔:CLIcommandsForLinux.txtCLIcommandsForWindows.txt。選取檔案名稱以開啟檔案並顯示對應的 CLI 命令。