使用 IBM Blockchain Platform Developer Tools 開發智慧型合約

執行不同版本的 IBM Blockchain Platform? 切換至 2.1.32.5、2.51、 2.5.2

IBM® Blockchain Platform Developer Tools 提供 Visual Studio Code 或 Red Hat CodeReady Workspaces 內的環境,以開發、包裝及測試智慧型合約。 您可以使用工具來建立智慧型合約專案,並開始開發商業邏輯。 然後,在將智慧型合約部署至 IBM Blockchain Platform之前,您可以使用工具在本端機器上使用預先配置的 Hyperledger Fabric 實例或連接至 IBM Blockchain Platform 網路來測試智慧型合約。 本指導教學說明如何安裝及使用 Developer Tools。

IBM® Blockchain Platform Developer Tools 提供 Visual Studio Code 或 Red Hat CodeReady Workspaces 內的環境,以開發、包裝及測試智慧型合約。 您可以使用工具來建立智慧型合約專案,並開始開發商業邏輯。 然後,在將智慧型合約部署至 IBM Blockchain Platform之前,您可以使用工具在本端機器上使用預先配置的 Hyperledger Fabric 實例或連接至 IBM Blockchain Platform 網路來測試智慧型合約。 本指導教學說明如何安裝及使用 Developer Tools。 按一下方框以取得處理程序的更多詳細資料。

建立智慧型合約專案 在開發人員工具中開發智慧型合約程式碼 包裝智慧型合約 在本端部署以測試及除錯 匯出套件 部署至 IBM Cloud

IBM Blockchain Platform 延伸與任何使用 Hyperledger Fabric 1.4 版及更新版本的 IBM Blockchain Platform 實例緊密搭配運作。 本指導教學面向高階 Fabric 智慧型合約程式設計模型的使用者。 如果您使用低階智慧型合約 API ,則可以在 IBM Blockchain Platform 延伸說明文件中找到其他指示。 如需相關資訊,請參閱 Fabric 文件中的 撰寫您的第一個鏈碼 指導教學。

開始之前

IBM Blockchain Platform Developer Tools 可以安裝為本端系統上的 VS 程式碼延伸 ,或者如果您有 Red Hat OpenShift 叢集,則可以部署至 Red Hat CodeReady Workspaces 2.1 或更高版本。 這兩個選項都使用完全相同的工具,但 Red Hat CodeReady Workspaces 提供開發人員工作區伺服器和雲端 IDE。 您選擇的選項主要取決於您偏好在本端開發,還是在雲端整合開發環境 (IDE) 中與開發團隊分工合作。

CodeReady Workspaces 有哪些好處?

如果您是現有的 Red Hat OpenShift 客戶,則 CodeReady Workspaces 可免費使用 OpenShift 訂閱,並可透過加入 Red Hat 開發人員 程式來存取。 以開放式 Eclipse 車 專案為建置基礎, Red Hat CodeReady Workspaces 使用 Kubernetes 和儲存器,為開發或 IT 團隊的任何成員提供一致、安全且預先配置的開發環境。 使用者體驗與筆記型電腦上的 IDE 一樣快速且熟悉。

瀏覽器介面
CodeReady Workspaces 使用 IBM Blockchain Platform Developer Tools 來建置可重複的工作區,此工作區設計為開發團隊在智慧型合約或用戶端應用程式上分工合作。 它不是在本端機器上執行的工具,而是在 OpenShift 叢集中執行,並可透過 Web 瀏覽器存取。 它包括在本端執行工具的相同好處,包括存取指導教學和範例,以及您預期 IDE 的語法強調顯示和程式碼完成。

協同作業
開發人員團隊可以在相同的可共用預先配置環境中工作。 讓新開發人員上線已簡化,因為他們避免花時間配置本端開發環境,而且可以快速開始使用。

受限團隊
此選項對在高度規範空間中運作且無法在本端下載工具的客戶有好處,可讓他們維護安全的開發環境。

熟悉的開發體驗
工作區使用開放程式碼 Eclipse Theia IDE ,其作為 CodeReady Workspaces 的編輯器元件,並包含與 VS Code 類似且支援 VS Code 延伸規格的所有熱門套件、工具及公用程式。 工作區也已預先配置 IBM Blockchain Platform Developer Tooling 所需的必備工具,並且可以針對您的開發團隊進行自訂,例如版本控制,以便您可以從 GitHub匯入專案。

CodeReady Workspaces 隨附於 IBM Cloud Pak for Applications

CodeReady Workspaces 的現行限制

雖然在 CodeReady Workspaces 中執行的 IBM Blockchain Platform Developer Tooling 與在本端系統上執行時的體驗完全相同,但下列特性在 CodeReady Workspaces 中無法運作,且目前不受支援。 計劃每兩週更新一次工具,以處理這些特性。

選擇您的 Developer Tooling 環境

將 Developer Tooling 安裝至雲端中的 Red Hat CodeReady Workspaces。將 Developer Tooling 安裝至雲端中的 Red Hat CodeReady Workspaces        將 IBM Blockchain Platform VS Code 延伸規格安裝至本端系統上的 Visual Studio。將 IBM Blockchain Platform VS Code 延伸規格安裝至本端系統上的 Visual Studio

這兩個開發環境都包含 IBM Blockchain Platform Developer Tooling 的相同豐富功能。 Red Hat CodeReady Workspaces 包括預先安裝的必備項目堆疊,以便在可從 Web 瀏覽器存取的 IDE 中快速啟動並執行。 如果您偏好在本端開發智慧型合約和應用程式,請選擇 VisualStudio Marketplace 中的 VS 程式碼延伸 。 您將需要在本端系統上下載、安裝及配置所有項目。

將 Developer Tooling 安裝至 Red Hat CodeReady Workspaces

下列一組步驟可用來安裝 CodeReady Workspaces ,並在 OpenShift 4.3+ 叢集上使用 IBM Blockchain Platform Developer Tooling 來配置它。 如果您偏好在本端系統上安裝工具,請參閱 安裝 IBM Blockchain Platform VS Code 延伸規格

  1. 以 OpenShift 4.3 叢集的管理者身分登入。
  2. 在導覽列中,按一下 操作員 > 操作員中心。 請確定您已從頁面頂端的小三角形中選取要安裝操作器的專案。
  3. 搜尋 CodeReady Workspaces ,然後按一下 安裝
  4. 順利安裝操作器之後,它會從 已安裝的操作員 標籤中可見,且狀態為Succeeded.
  5. 從「已安裝的操作器」表格中,按一下 Red Hat CodeReady Workspaces > CodeReady Workspaces 叢集
  6. Red Hat CodeReady Workspaces 是以開放式 Eclipse 車 專案為基礎,該專案使用 Kubernetes 和儲存器,為開發或 IT 團隊的任何成員提供一致、安全且零配置的開發環境。 按一下 建立 CheCluster
  7. 完成 CheCluster 建立需要數分鐘。 當它備妥時, CheCluster 詳細資料 概觀 標籤中有兩個可見的 URL:

    • CodeReady Workspaces URL -用來存取工作區。
    • Red Hat SSO 管理主控台 URL -用來管理容許與工作區互動的使用者。

    按一下 CodeReady Workspaces URL 並登入。 要求您提供Username用來形成工作區的名稱,以及您的Email位址。

    若要避免在下一步中建立自訂工作區時發生錯誤,請不要在中包含任何特殊字元Username.

  8. 按一下 建立自訂工作區 ,然後按一下 IMPORT DEVFILE。 CodeReady Workspaces 使用 Devfiles 來說明開發人員工作區的內容。 當您想要將 CodeReady Workspaces 與 IBM Blockchain Platform Developer Tooling 搭配使用時,您需要將數個元件帶入 Devfile。 具體而言,您需要將 Developer Tooling 新增為chePlugin將它併入您的元件清單中。 下列.yaml檔案代表將 IBM Blockchain Platform 副檔名與 CodeReady Workspaces 搭配使用的最小 Devfile:

    ---
    apiVersion: 1.0.0
    metadata:
        name: ibp-sample-devfile
      components:
    - type: cheEditor
      id: eclipse/che-theia/latest
      alias: theia-editor
      memoryLimit: 1024M
    - type: chePlugin
      reference: https://github.com/IBM-Blockchain/blockchain-vscode-extension/releases/latest/download/ibm-blockchain-platform-che.yaml
      alias: ibm-blockchain-platform
    

    其中:

    • meta 資料: 是提供給工作區的名稱。 在此範例中,它是ibp-sample-devfile. 使用者應該為此內容指定自己的值。
    • components:-type: cheEditor 是 CodeReady Workspaces 自動包含在 CodeReady Workspaces 中的預設 Eclipse Theia 編輯器 ,它不是 Devfile 中的必要元件。 不過, IBM Blockchain Platform 延伸需要高於預設值的記憶體限制,因此它必須隨附於memoryLimit內容來置換預設值。
    • components:-type: chePluginIBM Blockchain Platform VS Code 延伸規格的參照。 範例包括使用 GitHub 中的 URL 來參照最新版本的延伸:https://github.com/IBM-Blockchain/blockchain-vscode-extension/releases/latest/download/ibm-blockchain-platform-che.yaml。這表示每當工作區啟動或重新啟動時,即會安裝我們延伸的最新版本。 預期每兩週一次將更新項目發佈至延伸。

    如果您偏好將工作區固定至特定版本的 VS Code 延伸規格,請跳至 GitHub 版本頁面 ,並導覽至您偏好版本的 URL。 向下捲動至該版本的「資產」小三角形,以尋找一組檔案。 複製名稱為之檔案的 URLibm-blockchain-platform-che-x.y.z.yaml,例如ibm-blockchain-platform-che-1.0.31.yaml. URL 應該如下所示:https://github.com/IBM-Blockchain/blockchain-vscode-extension/releases/download/v1.0.31/ibm-blockchain-platform-che-1.0.31.yaml. 將此 URL 貼到reference欄位,取代範例中提供的 URL。

    可以根據開發人員環境需求進一步自訂此檔案,例如從 GitHub 移出 Hyperledger Fabric 範例。 在 Red Hat 文件中進一步瞭解 Devfiles。

  9. 按一下 YAML 磚,並將編輯過的範例貼到YAML方框。 然後,按一下 建立並開啟。 載入工作區需要數分鐘。 順利載入之後,請按一下區塊鏈圖示來啟動開發人員工具。

CodeReady Workspaces 使用者介面
圖 2. CodeReady Workspaces 使用者介面

下一步

CodeReady Workspaces 的另一個好處是在工作區已啟動並在執行中,且您想要與同事共用它之後,您可以使用 工廠 特性來建立工作區的範本,並透過 URL 來共用 Factory。 進一步瞭解如何在 CodeReady Workspaces 文件中使用 Factory。

繼續前往 第一步 以瞭解如何存取指導教學。

reference

免費安裝 IBM Blockchain Platform VS Code 延伸規格

在本端系統上安裝 IBM Blockchain Platform VS Code 延伸規格之前,您必須先完成必要條件。 如果您已為開發人員環境配置 Red Hat CodeReady Workspaces ,則可以跳至 第一步 以開始使用工具。

必要條件

開發 Java 智慧型合約時的考量:

如果您使用 Windows,則也必須確定下列條件:

如果您使用管理程式 (例如 'nvm' 或 'nodenv') 來安裝 Node 和 npm ,則需要設定預設或廣域版本。 然後,您可以針對要由「必要條件」頁面偵測到的版本重新啟動 VS Code。

安裝延伸規格

  1. 請確定您正在執行 VS Code 1.40 版或更新版本。
  2. 移至 Visual Studio Code 延伸市場頁面 ,或在 Visual Studio Code內的延伸畫面中搜尋 IBM Blockchain Platform
  3. 按一下安裝
  4. 如果您要升級延伸,則需要重新啟動 VS Code 才能完成延伸的安裝。

安裝之後,您可以使用 VS Code 左側的 IBM Blockchain 圖示來開啟 IBM Blockchain Platform 畫面。

IBM Blockchain 圖示
圖 3. VS 程式碼中的 IBM Blockchain 圖示

此延伸規格也在 Visual Studio Code 指令選用區中新增指令。 您可以使用指令選用區來完成本手冊中詳述的許多作業。

步驟 1: VS Code 中的引導式指導教學

IBM Blockchain Platform Developer Tooling 包含引導式指導教學,可協助您開始使用。 指導教學提供如何開發及測試智慧型合約專案的逐步指示,以及如何將智慧型合約部署至 IBM Cloud上的網路。 您也可以找到可供下載的範例智慧型合約。

若要從 VS Code 內導覽至指導教學,請按一下左導覽中的區塊鏈圖示,然後按一下右上角的 IBM Blockchain Platform 圖示,以檢視延伸首頁。 在首頁上,可以找到指導教學庫和範例智慧型合約的鏈結。

IBM Blockchain 圖示
圖 4. 按一下右上角的 IBM Blockchain 圖示,以導覽至指導教學及範例程式碼

步驟 2:建立智慧型合約專案

您可以使用此延伸規格在 Visual Studio Code 中建立新的智慧型合約專案。 此延伸規格建立的是基本智慧型合約,用於以您選擇的語言來管理範例資產。 您可以使用範例的結構作為起點,來開發您自己的商業邏輯。 此延伸規格提供將智慧型合約部署至 Hyperledger Fabric 實例所需的所有相依關係。

  1. 按一下 IBM Blockchain 圖示,以開啟 IBM Blockchain 標籤。 按一下智慧型合約窗格中的溢位功能表,然後按一下建立新專案
  2. 選取要產生的智慧型合約類型。 建議第一次使用者使用 預設合約 範例,並示範如何對所有網路成員共用的公用分類帳執行建立、讀取、更新及刪除作業。 私人資料合約 範例示範如何對單一網路成員專用的集合執行建立、讀取、更新、刪除及驗證作業。
  3. 選取要用於建立智慧型合約的語言。 現行選項為 JavaScript、TypeScript、Go 和 Java。 附註: 如果您要將智慧型合約部署至正式作業網路,則 JavaScript 及 TypeScript 智慧型合約所需的資源比以 Go 撰寫的合約更多。
  4. 選取要由範例合約管理的資產。 例如,債券
  5. 使用專案名稱建立資料夾,然後將其開啟。
  6. 選取開啟新專案的方式。 現在應該會開啟專案資料夾。

專案開啟後,您可以在左窗格的瀏覽器視窗中找到新的智慧型合約。 專案的結構取決於選取的語言。 不過,每個智慧型合約都包含相同的元素:

我需要更新 Fabric v2.x的智慧型合約嗎?

雖然平台已新增對 Fabric 2.0 網路的支援,但您仍然可以在對等節點上執行現有智慧型合約,這些對等節點在應用程式功能層次為 1.4 或更低的頻道上執行 v1.4 映像檔。 如果您稍後決定將對等節點升級至 v2.x 映像檔,並將頻道應用程式功能層次更新為 2.0 ,請 您可能需要更新現有的智慧型合約。 不過,將對等節點映像檔升級至 v2.x 及頻道應用程式功能 v2.x之後,就無法再更新原始智慧型合約。 相反地,當需要更新時,您需要在新的中重新包裝智慧型合約.tar.gz.tgz使用 VS Code 延伸規格的 v2 來格式化,然後使用新的智慧型合約生命週期程序向通道提出定義。

請檢閱下列考量:

節點

如果智慧型合約是以 Node 撰寫,則您可能需要更新它。 依預設, Fabric v1.4 對等節點會建立 Node v8 執行時期,而 Fabric v2.x 對等節點會建立 Node v12 執行時期。 為了讓智慧型合約使用 Node v12 執行時期,fabric-contract-apiANDfabric-shim節點模組必須位於 v1.4.5 或以上。 如果您使用原本撰寫用於使用 Fabric 1.4 的智慧型合約,請在 Fabric v2.x 對等節點上部署智慧型合約之前,先執行下列指令來更新 Node 模組。 如需相關資訊,請參閱 fabric-chaincode-node 的支援和相容性

npm install --save fabric-contract-api@latest-1.4 fabric-shim@latest-1.4

執行

因為 Fabric v2.x 對等節點沒有 "shim" (容許智慧型合約在舊版 Fabric 上執行的外部相依關係) ,您需要提供此 shim ,然後重新包裝任何以 Golang (Go) 撰寫且使用 Go SDK的智慧型合約。 「為墊片提供供應商」實際上表示您正在將相依關係複製到專案中。 如果沒有此提供及重新包裝,則 Go 智慧型合約無法在使用 Fabric 2.x 映像檔的對等節點上執行。 如果您使用 IBM Developer Tools 來開發及包裝智慧型合約,則工具會為您執行提供。 對於以 Java 或 Node.js撰寫的智慧型合約,以及使用 Go contract-api的 Go 智慧型合約,都不需要此程序。

Java
build.gradle必須更新智慧型合約的檔案:

  1. 如果智慧型合約使用shadowjar2.x 外掛程式,則應該使用下列程式碼將它更新至第 5 版:

    plugins {
        id 'com.github.johnrengelman.shadow' version '5.1.0'
        id 'java'
    }
    
  2. Therepositories檔案的區段必須包含maven URL用於jitpack例如:

        repositories {
        ...
        maven {
            url 'https://jitpack.io'
        }
    }
    

Init 函數

如果智慧型合約是使用 Fabric Chaincode Sham API 所提供的 低階 API 撰寫的,則您的智慧型合約需要包含Init用來起始設定鏈碼的函數。 智慧型合約介面需要此功能,但應用程式不一定需要呼叫此功能。 因為您無法使用主控台來部署包含Init功能,您需要將該起始設定邏輯移至智慧型合約本身,並個別呼叫它。 例如,智慧型合約可以使用保留金鑰來檢查智慧型合約是否已起始設定。 如果沒有,則呼叫起始設定邏輯,否則照常進行。 如果您的智慧型合約需要包括Init功能,部署它的唯一方法是使用 Fabric 對等節點生命週期鏈碼安裝 指令或 Ansible 的 IBM Blockchain Platform 集合。 您也可以參閱 光纖網路文件 ,以取得如何使用Init具有 Fabric 鏈碼生命週期的功能。

重新包裝智慧型合約

更新智慧型合約之後,請使用 VS Code 延伸規格的 v2重新包裝 智慧型合約。

步驟 3:包裝智慧型合約

您需要先包裝智慧型合約,然後才能將它安裝在 IBM Blockchain Platform 網路或預先配置的 Hyperledger Fabric 網路上。 光纖網路 V1 通道需要智慧型合約套件位於.cds格式,且 V2 需要.tar.gz格式。 完成下列步驟,以包裝智慧型合約:

  1. 按一下 檔案 ,然後按一下 開啟 ...,在 VS Code 中開啟智慧型合約專案。 如果您已將專案另存為工作區,則也可以按一下開啟工作區。 請確定在檔案檢視器中開啟智慧型合約專案。
  2. 按一下 IBM Blockchain 圖示,以開啟 IBM Blockchain 標籤。
  3. 智慧型合約窗格中,按一下溢位功能表,然後選取包裝開啟的專案。 系統將要求您提供套件的名稱和版本。 您也需要選取是否要將它包裝為.tar.gz(用於部署至具有 V2 應用程式功能的通道) 或.cds(用於部署至具有 V1 應用程式功能的通道)。 若要找出通道功能/版本,請將滑鼠移至您要部署至其中的 光纖環境 畫面中的通道。 這會顯示包含通道功能的工具提示。
    • 如果只有一個智慧型合約專案,則該專案會自動包裝,並顯示在智慧型合約窗格中。
    • 如果開啟了多個智慧型合約資料夾,則會詢問您要包裝哪個資料夾。
    • 如果未開啟任何智慧型合約資料夾,則會收到錯誤訊息。

如果您要控制要包裝專案中的哪些檔案,您可以建立.fabricignore智慧型合約專案最上層目錄中的檔案。 的檔案及型樣格式.fabricignore檔案與 .gitignore 檔案,例如:

/.classpath
/.git/
/.gradle/
/.project
/.settings/
/bin/
/build/

匯出、匯入和刪除智慧型合約套件

包裝智慧型合約專案後,您可以從 VS Code 將其匯出:

  1. 在 IBM Blockchain Platform 延伸畫面中,用滑鼠右鍵按一下智慧型合約套件,然後選取 匯出套件
  2. 選擇目錄以儲存智慧型合約套件檔案,然後按一下匯出

您也可以將現有智慧型合約套件匯入至 IBM Blockchain Platform 窗格:

  1. 智慧型合約窗格中,按一下溢位功能表,然後選取匯入套件
  2. 瀏覽至要匯入的智慧型合約套件,然後按一下匯入

您也可以按一下刪除套件以從套件清單移除智慧型合約套件。

步驟 4:將智慧型合約部署至預先配置的 Hyperledger Fabric 網路

您可以使用 VS Code 延伸規格,將智慧型合約部署至延伸規格在本端機器上建立的預先配置 Hyperledger Fabric 網路。 如果您要部署至已啟用 V1 功能的頻道,則需要安裝並實例化智慧型合約。 如果您要部署至已啟用 V2 功能且使用新的 Fabric 2.x 生命週期程序的頻道,則需要安裝然後「核准」及「確定」智慧型合約,而不是將其實例化。

如果您是從 Red Hat CodeReady Workspaces 執行開發人員環境,則目前無法使用此選項將智慧型合約部署至預先配置的網路。 您可以改用現有的 IBM Blockchain Platform 網路。 請參閱 步驟七 中的指示,以連接至該網路。

部署預先配置的 Hyperledger Fabric 網路

在部署智慧型合約之前,請使用下列步驟來部署預先配置的網路:

  1. 確定 Docker 在機器上執行。
  2. 開啟 VS Code 中的 IBM Blockchain Platform 標籤。
  3. 光纖環境 窗格中,按一下 1 個組織本端光纖網路。 如果 Docker 在執行中,則應該在下載 Hyperledger Fabric 映像檔之後啟動本端實例。
  4. 按一下 光纖閘道 窗格中的 1 個組織本端光纖網路- Org1 Gateway ,以連接至本端網路。

VS Code 延伸規格建立的是基本 Fabric 網路,其中包括一個排序節點、一個對等節點和一個憑證管理中心。 對等節點已加入名為的頻道mychannel. 您可以在 光纖環境 窗格中找到屬於網路的節點、組織及通道清單。 在這些節點上方,您可以找到在通道上部署的智慧型合約清單。

請使用下列步驟來建立新的單一組織或兩個組織網路:

  1. 確定 Docker 在機器上執行。
  2. 將滑鼠移至 光纖環境 窗格上,然後按一下 +新增環境
  3. 選取 從範本建立新的項目
  4. 選取 1 個組織範本 (1 個 CA、1 個對等節點、1 個頻道)。 或者,如果您想要更大的網路或已產生 私人資料合約 ,請選取 2 個組織範本 (2 個 CA、2 個對等節點、1 個頻道)
  5. 當系統要求您選擇要用於網路的通道功能版本時,請選取 V2_0 。 或者,如果您想要具有 v1 通道功能,請選取另一個選項。

然後,這將需要幾分鐘的時間來建立本端 Fabric 網路,包括環境、閘道及錢包。

停止、重新啟動、關閉及刪除預先配置的網路

當預先配置的網路執行中時,可以停止或重新啟動該網路:

  1. Fabric 環境窗格中,按一下溢位功能表。
  2. 選取 重新啟動停止關閉 ,以停止、重新啟動或關閉儲存器。

選取 關閉 將完全移除本端 Fabric 網路。 附註:此移除動作將導致分類帳和廣域狀態資料遺失。

選取 刪除 將執行 關閉 ,並從 光纖環境 窗格中移除網路。

部署智慧型合約 (頻道應用程式功能 V2)

可以使用 部署視圖來部署智慧型合約。 此視圖會處理已啟用應用程式功能 v2.0 或更高版本之通道上智慧型合約生命週期所需的所有部署步驟 (安裝、核准、確定)。

如果您的頻道已配置應用程式功能 V2 或更高版本及.tar.gz智慧型合約套件。

如果要啟動部署視圖,請執行下列動作:

  1. 確認您已在 光纖環境 窗格中連接至網路。
  2. 展開您要在其中部署智慧型合約的通道。
  3. 按一下 + 部署智慧型合約

使用部署視圖來部署智慧型合約有三個步驟。

步驟 1: 選擇要部署的智慧型合約

  1. 使用下拉清單來選取您要部署的智慧型合約套件。
  2. 按一下 下一個 以繼續。

步驟 2: 建立定義

  1. 在適當的輸入欄位中提供智慧型合約的名稱和版本。 依預設,這些參數將以套件的名稱和版本填入。
  2. (選用) 在適當的輸入欄位中輸入自訂 背書原則
  3. (選用) 如果智慧型合約使用專用資料 (例如 私人資料合約 範例) ,請選取 新增檔案 以瀏覽至集合配置檔。
  4. 按一下 下一個 以繼續。

步驟 3: 部署

  1. 按一下 部署 ,以在所有網路對等節點上自動安裝、核准及確定智慧型合約。
  2. (選用) 使用 執行確定 切換參數來啟用或停用將此智慧型合約定義確定至通道。
  3. (選用) 按一下 為確定交易背書的其他對等節點 以選取或取消選取您核准此智慧型合約定義所需的任何其他可用對等節點。

此時,您的智慧型合約現在已在頻道上「確定」。 如果您已變更智慧型合約程式碼,然後重新包裝它,則可以使用部署視圖,並遵循上述相同步驟來升級已部署至網路的智慧型合約定義。

部署智慧型合約 (頻道應用程式功能 V1)

如果您具有使用應用程式功能 v1.x 所配置的頻道,以及位於下列中的智慧型合約套件,請遵循下列步驟:.cds格式。

如果要啟動部署視圖,請執行下列動作:

  1. 確認您已在 光纖環境 窗格中連接至網路。
  2. 展開您要在其中部署智慧型合約的通道。
  3. 按一下 + 部署智慧型合約

使用部署視圖來部署智慧型合約有三個步驟。

步驟 1: 選擇要部署的智慧型合約

  1. 使用下拉清單來選取您要部署的智慧型合約套件。
  2. 按一下 下一個 以繼續。

步驟 2: 配置智慧型合約部署

  1. (選用) 在適當的輸入欄位中輸入自訂 背書原則
  2. (選用) 如果智慧型合約使用專用資料 (例如 私人資料合約 範例) ,請選取 新增檔案 以瀏覽至集合配置檔。
  3. 按一下 下一個 以繼續。

步驟 3: 部署

  1. 按一下 部署 以在所有網路對等節點上自動安裝並實例化 (或升級) 智慧型合約。
  2. (選用) 輸入要在實例化/升級時呼叫的函數名稱。
  3. (選用) 輸入要在實例化/升級時呼叫的函數引數。

此時,您的智慧型合約現在已在頻道上實例化。 如果您已變更智慧型合約程式碼,然後重新包裝它,則可以使用部署視圖,並遵循上述相同步驟來升級已部署至網路的智慧型合約。

與智慧型合約互動

將智慧型合約部署至頻道之後,您可以使用 光纖閘道 窗格,將交易提交至智慧型合約內的函數:

  1. 確保您的智慧型合約已部署至通道,且您已連接至網路。
  2. 光纖閘道 窗格中,展開 通道 下拉清單。 按一下在其上實例化或確定智慧型合約的頻道。
  3. 展開要與其互動的智慧型合約。 您可以找到在智慧型合約下方列出的交易的清單。
  4. 在要提交的交易上按一下滑鼠右鍵,然後選取提交交易。 例如,如果您已建立並包裝範例債券智慧型合約,則請按一下 createBond
  5. 輸入交易所需的任何引數,然後按 Enter 鍵。 例如,輸入["bond01","100"]來建立你的第一個紐帶
  6. (選用) 輸入將作為暫時資料提交的任何引數。 暫時資料不會儲存在通道分類帳上,以便保持資料專用。

將應用程式連接至預先配置的網路

您可以將用戶端應用程式連接至預先配置的網路,並將交易提交給智慧型合約,來測試這些應用程式。

首先,您需要匯出連線設定檔:

  1. 確保網路在 光纖環境 窗格中執行。
  2. 用滑鼠右鍵按一下 光纖閘道 畫面中的閘道,然後選取 匯出連線設定檔

然後,您可以使用 Fabric SDK 及連線設定檔,透過使用者名稱來登記管理者身分admin及密碼adminpw. 然後,您可以使用此身分來呼叫智慧型合約,或登錄並登記其他使用者。

步驟 5: 測試已部署的智慧型合約

您可以針對在所連接通道上實例化或確定的智慧型合約產生測試。 測試可以產生為 JavaScriptTypeScript (若為「節點」專案)、 Java (若為 Java 專案) 或 (若為 Go 專案)。 然後可以執行或除錯產生的測試。

  1. 確保在頻道上實例化或確定智慧型合約。
  2. Fabric 閘道窗格中,在頻道清單下要為其產生測試的智慧型合約按一下滑鼠右鍵。
  3. 選取產生智慧型合約測試
  4. 根據智慧型合約語言,選取測試檔案的語言 ( JavaScriptTypeScriptJava)。 IBM Blockchain Platform 延伸會安裝必要的相依關係,並建置測試檔。
  5. 請確定您已安裝 Node Test Runner 延伸Java 測試執行程式延伸Go 延伸

建置測試檔案之後,按一下檔案中的執行測試按鈕,即可執行測試。

步驟 6: 連接至 IBM Blockchain Platform 網路

您也可以使用延伸來與 IBM Blockchain Platform上的網路互動。

呼叫已在頻道上實例化或確定的智慧型合約

您可以從 IBM Blockchain Platform 主控台下載連線設定檔,以在 光纖閘道 窗格中建置閘道。 然後,您可以使用閘道來呼叫在頻道上部署的智慧型合約。

開啟與 IBM Blockchain Platform實例相關聯的 IBM Blockchain Platform 主控台。 導覽至 組織 標籤,然後按一下用戶端應用程式將與之互動之組織的 組織 MSP 磚。 按一下 建立連線設定檔 ,以開啟可讓您對本端檔案系統 建置並下載連線設定檔 的側邊畫面。 然後,使用 CA 並儲存 enrollID 和密碼 建立應用程式身分 。 請使用下列步驟,從 VS Code 連接至 IBM Blockchain Platform 。

  1. 開啟 IBM Blockchain Platform 標籤。
  2. 將滑鼠移至 Fabric 閘道窗格上方,按一下 +
  3. 選擇 從連線設定檔建立閘道
  4. 輸入連線的名稱。
  5. 輸入連線設定檔的完整檔案路徑。 您的連線現在應該會出現在 1 個組織本端光纖網路下的連線清單中。
  6. 將滑鼠移至 Fabric Wallets 窗格上,按一下 +
  7. 從選項中選擇建立新錢包並新增身分。 提供錢包的名稱及身分。
  8. 輸入組織的 MSP ID。
  9. 按一下 選取閘道並提供登記 ID 和密碼 選項,然後選擇您在上方建立的閘道。
  10. 輸入使用主控台建立的應用程式身分的登記 ID 和密碼。 這將在 Fabric 錢包窗格中建立新身分。
  11. 您現在可以連接至 IBM Blockchain Platform 網路的實例。 按一下連線名稱,然後選取您所建立錢包的名稱。 您也可以在閘道按一下滑鼠右鍵,並選取關聯錢包,將建立的錢包與閘道相關聯。 這容許連線在每次進行連接時使用相同的錢包。

從 VS Code 連接至 IBM Blockchain Platform 之後,您可以看到組織對等節點在閘道下加入的頻道清單。 在每一個頻道下,您可以查看在每一個頻道上實例化或確定的智慧型合約清單,以及每一個智慧型合約內的交易。 您可以在函數上按一下滑鼠右鍵、選取提交交易並傳遞必要的引數,將交易提交給網路。 您也可以為在頻道上實例化的智慧型合約產生測試檔案。

從 VS Code 部署智慧型合約

您也可以將 IBM Blockchain Platform 網路匯入至延伸的 光纖環境 窗格。 然後,您可以使用延伸來在網路上部署智慧型合約。

您可以從主控台匯出節點,然後從另一個主控台匯入它們。 您可以使用相同的處理程序從主控台匯出節點,然後將它們匯入至 光纖環境 窗格。 最簡單的方法是使用延伸來自動探索主控台並匯入節點。

  1. 導覽至左側導覽中的 設定 標籤。 您可以看到一個稱為 大量資料管理 的區段,其中包含兩個按鈕。 匯出 按鈕會在右側開啟一個畫面。
  2. 勾選方框以匯出您的身分。 您可以取消選取其他選項。
  3. 按一下 匯出 以將身分下載至 .zip 檔中的本端檔案系統。 下載完成時解壓縮檔案。

然後,您可以將網路的節點匯入至延伸。

從 IBM Cloud 匯入

  1. 將滑鼠移至 光纖環境 窗格上,然後按一下 +新增環境
  2. 選取 新增 IBM Blockchain Platform 環境
  3. 當詢問是否連接至 IBM Cloud上的 IBM Blockchain Platform 服務實例時,請選取
  4. 選取 使用使用者名稱和密碼登入 或其他方法。
  5. 輸入 IBM Cloud 使用者名稱 (電子郵件位址)。
  6. 輸入 IBM Cloud 密碼。
  7. 延伸現在將嘗試探索任何 IBM Blockchain Platform 服務實例-如果您有多個服務實例,請選取要匯入的實例。
  8. 輸入環境的名稱。
  9. 選取屬於您組織的 CA 和對等節點,以及頻道的排序節點,完成時按一下 好的

從不在 IBM Cloud 中的 Kubernetes 叢集匯入

  1. 將滑鼠移至 光纖環境 窗格上,然後按一下 +新增環境
  2. 選取 新增 IBM Blockchain Platform 環境
  3. 當詢問是否連接至 IBM Cloud上的 IBM Blockchain Platform 服務實例時,請選取 沒有
  4. 輸入 IBM Blockchain Platform 主控台軟體實例的 URL。
  5. 輸入主控台實例的 使用者 ID
  6. 輸入主控台實例的 密碼
  7. 如果您計劃將 CA 憑證新增至作業系統授信 CA 憑證儲存庫,請選取 繼續進行而不進行憑證驗證取消
  8. 輸入環境的名稱。
  9. 選取屬於您組織的 CA 和對等節點,以及頻道的排序節點,完成時按一下 好的

在步驟 5 和 6 中,您也可以輸入使用 IBM Blockchain Platform REST API產生的 API 金鑰和密碼。

您還需要將管理者身分匯入錢包窗格,並將其與節點相關聯。 您需要先將管理者身分與對等節點、CA 及排序節點相關聯,然後才能與網路連接。

  1. 按一下您在 光纖環境 窗格中建立的環境。
  2. 您可以在對等節點和排序節點旁邊看到 警示 符號。 按一下警示以將管理者身分與節點相關聯。
  3. 選取 新增錢包
  4. 選取 建立新的錢包
  5. 輸入錢包的名稱以識別網路的排序節點或對等節點管理者。
  6. 選取 新增身分
  7. 輸入對等節點或排序節點管理者身分的名稱。
  8. 選取 從 IBM Blockchain Platform 提供 JSON 身分檔案 ,然後瀏覽至您從主控台匯出的管理者身分。 如果身分是網路中多個節點的管理者,您可以將身分與多個節點相關聯。

當您將管理者身分與對等節點、CA 及排序節點相關聯時,可以連接至網路並使用延伸來部署智慧型合約。

新增錢包和使用者

請使用下列步驟,以使用憑證及私密金鑰來建立新的錢包:

  1. 將滑鼠移至 Fabric Wallets 窗格上,按一下 +
  2. 從選項中選擇建立新錢包並新增身分。 提供錢包的名稱及身分。
  3. 輸入組織的 MSP ID。
  4. 選擇新增憑證和私密金鑰。
  5. 如果您使用憑證及私密金鑰,請瀏覽至憑證及私密金鑰。

您也可以將新使用者新增至已建立的錢包:

  1. Fabric 錢包窗格中,在錢包上按一下滑鼠右鍵,然後選取新增身分
  2. 提供身分及 MSP ID 的名稱。
  3. 您可以上傳 JSON 檔案,提供憑證和私密金鑰,也可以提供登記 ID 和密碼。
    • 如果您要連接至 IBM Blockchain Platform上的網路,則可以從 IBM Blockchain 主控台下載身分,方法是從錢包中匯出身分,或透過登記,然後使用「憑證管理中心」來匯出身分。 然後,您可以將 JSON 檔案直接上傳至 VS Code。
    • 如果您使用憑證及私密金鑰,請瀏覽至憑證及私密金鑰。
    • 如果您使用登記 ID 和密碼,請選擇要向其登記的閘道,然後輸入登記 ID 和密碼。