簡介

這個 15 分鐘的教學課程示範如何安裝與 Oracle Blockchain Platform 套件的汽車經銷商範例鏈碼、在通道上部署這個程式碼,並且確認它正在執行、呼叫基本交易以將區塊新增至分類帳,以及確認已正確新增區塊。

背景

區塊鏈平台實作了分散式、防竄改的資料分類帳,這些資料會在信任的業務網路上安全地共用。區塊鏈是一個不斷成長的記錄清單,稱為區塊,這些記錄會使用加密功能加以連結及保護。

Chaincodes 在分類帳中定義資料綱要、起始該綱要、在應用程式觸發時執行更新及回應查詢。鏈碼也可以張貼事件,以通知應用程式並執行下游作業。

通道分割區及隔離對等體與分類帳資料,以提供區塊鏈網路上的專用與機密交易。成員定義和結構通道,以允許特定對等體進行專用和機密交易,但相同區塊鏈網路上的其他成員無法看到或存取。每個通道都包含對等體、共用分類帳、在通道上建立鏈碼,以及一或多個排序服務節點。

對等節點包含分類帳的複本,並將交易寫入分類帳。這些節點也可以背書交易。

REST 代理主機節點會將應用程式識別對應至區塊鏈成員,讓使用者和應用系統能夠呼叫 Oracle Blockchain Platform REST API。

汽車經銷商樣本包含一條鏈碼來管理車輛零件的生產、移轉與查詢;這些零件的車輛組合;以及車輛的移轉。若要執行範例,您需要完成下列步驟:

  • 在一或多個對等上安裝鏈碼。
  • 在通道上部署鏈碼。
  • 使用 REST API 呼叫或應用程式呼叫鏈碼。

您可以下載範例以進一步探索程式碼,或作為您專屬鏈碼或應用系統的基礎。

必要條件

  • Oracle Blockchain Platform 創辦人執行處理。
  • 您執行處理的管理員存取權。
  • Oracle Blockchain Platform 主控台的 URL。
  • 執行處理隨附的通道 (default)。
  • 執行處理隨附的對等 (peer0peer1),並加入 default 通道。
  • 執行處理隨附的預設 REST 代理主機節點 (restproxy)。

工作 1:安裝範例

安裝作業是將鏈碼放在對等上。

  1. 使用管理使用者 ID 登入 Oracle Blockchain Platform 服務主控台。
  2. 按一下開發人員工具頁籤。
  3. 按一下範例窗格。
  4. 範例窗格中,找到「汽車經銷商」範例,然後按一下安裝
  5. 在「安裝 CarDealer 鏈碼」對話方塊中,從對等下拉式清單中選取 peer0,然後按一下安裝。將語言下拉式清單設為 Golang
  6. 按一下「鏈碼」頁籤。將會顯示「鏈碼摘要」頁面,顯示已經封裝 obcs-cardealer 鏈碼,並指定套裝程式 ID。按一下已在對等項目安裝資料欄中的 1。會顯示「安裝在對等摘要」頁面,顯示鏈碼安裝在 peer0 上。

作業 2:部署範例

部署鏈碼可在先前安裝的所選通道和對等體上核准及確認鏈碼定義。部署交易會呼叫生命週期鏈碼 (_lifecycle),以在通道上部署鏈碼。

  1. 開發人員工具頁籤的範例窗格中,找到「汽車經銷商」範例,然後按一下部署。在「部署鏈碼」對話方塊中,選取下列項目並按一下部署
    • 通路:default
    語言下拉式清單設為 Golang
  2. 部署鏈碼之後,請移至「鏈碼」頁籤。對於以 obcs-cardealer 開頭的套裝程式 ID,請按一下部署於通道資料欄中的 1。會顯示「部署於通道摘要」頁面,顯示已在您選取的 default 通道上部署鏈碼。
  3. 管道頁籤上,按一下您執行範例鏈碼的 default 通道。按一下已部署的鏈碼窗格,以確認通道 (obcs-cardealer 鏈碼) 上有一個鏈碼部署。
    Deployment-channel.png 的描述如下
    Deployment-channel.png 圖例描述

作業 3:呼叫範例

呼叫是呼叫鏈碼函數的程序。儘管如有需要,您還是可以使用直接的 REST API 呼叫,內含的應用系統。

  1. 開發人員工具頁籤中,開啟範例窗格,找出「汽車經銷商」範例,然後按一下呼叫
  2. 在「呼叫鏈碼」視窗中,使用下列資訊建立輪胎,然後按一下執行:
    • 語言:Golang
    • 通路:default
    • 動作:Produce vehicle part
    • 序號:tr357
    • 擁有者:bobsmith
    • 名稱:tire357
    • 組合程式:sevencorp
    • 組件日期:Thursday, December 9, 2021
    call-create-part.png 的描述如下
    Call-create-part.png 圖例描述
  3. 管道頁籤上,尋找並按一下 default 通道。
  4. 分類帳窗格中,找出指出資料呼叫發生的區塊編號。
  5. 選取區塊,並確認在「交易」表格中,您會在「狀態」資料欄中看見 Success
  6. 按一下交易 ID 旁的箭頭圖示可顯示交易的詳細資訊。

    備註:

    因為您要呼叫「汽車經銷商」鏈碼,所以交易中會列出 obcs-cardealer 鏈碼。函數名稱為 initVehiclePart,因為您已建立新部分,而交易會由 peer0 背書,因為這是您選擇在此通道上背書交易的唯一對等項目。
  7. call-create-ledger.png 的描述如下
    Call-create-ledger.png 圖解的描述
  8. 開發人員工具頁籤中,開啟範例窗格,找出「汽車經銷商」範例,然後按一下呼叫
  9. 在「呼叫鏈碼」視窗中,輸入下列值來查詢您剛建立的輪胎,然後按一下執行
    • 語言:Golang
    • 通路:default
    • 動作:Query vehicle part
    • 序號:tr357
  10. 管道頁籤上,尋找並按一下 default 通道。
  11. 分類帳窗格中,找出最近交易的區塊編號。
  12. 按一下區塊並確認「交易」表格中的 Success 是在「狀態」資料欄中。按一下交易 ID 旁的箭頭圖示可顯示交易的詳細資訊。

    備註:

    應列出正確的鏈碼、函數名稱 (readVehiclePart) 和背書對等 (peer0)。
  13. call-query.png 的描述如下
    Call-query.png 圖解的描述
  14. 開發人員工具頁籤中,開啟範例窗格,找出「汽車經銷商」範例,然後按一下呼叫
  15. 在「呼叫鏈碼」視窗中,輸入下列值以將輪胎所有權轉移給新使用者,然後按一下執行:
    • 語言:Golang
    • 通路:default
    • 動作:Transfer vehicle part
    • 序號:tr357
    • 擁有者:anniechu
  16. 管道頁籤上,尋找並按一下 default 通道。
  17. 分類帳窗格中,找出最近交易的區塊編號。
  18. 按一下區塊,按一下交易 ID 旁的箭頭圖示來顯示交易的詳細資訊,並確認在「交易」表格中,您會在「狀態」資料欄中看見 Success

    備註:

    應列出正確的鏈碼、函數名稱 (transferVehiclePart) 和背書對等 (peer0)。
  19. call-transfer.png 的描述如下
    Call-transfer.png 圖解的描述

如果鏈碼已不再需要,您可以刪除該鏈碼。如需詳細資訊,請參閱刪除鏈碼

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或是存取更多免費學習內容至 Oracle Learning YouTube 通道。此外,瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請瀏覽 Oracle Help Center