1. 程式人生 > >基於超級賬本Fabric的供應鏈跟蹤解決方案【開源】

基於超級賬本Fabric的供應鏈跟蹤解決方案【開源】

開發十年,就只剩下這套架構體系了! >>>   

本專案為基於Hyperledger Fabric區塊鏈的供應鏈資產跟蹤解決方案,專案主要包括鏈碼和Web應用兩部分。Fabric鏈碼採用GOLANG開發,負責維護資產的狀態,後臺為採用Node.js開發的Web應用,負責為使用者提供訪問區塊鏈上資產的操作介面,例如資產的建立、所有權轉移等操作。

如果希望快速高效地掌握超級賬本Fabric區塊鏈的開發,強烈推薦這個線上互動課程:

在本專案中要跟蹤的資產是大理石,當然可以換成和你的業務相關的任何型別資產。大理石資產的屬性定義如下,所有的屬性值都是字串:

  • ID:資產的唯一識別符號
  • COLOR:資產的顏色
  • SIZE:資產的尺寸,單位:MM
  • OWNER:持有人

本專案提供一個基於Web的使用者介面,以便使用者操作區塊鏈上的資料。資產在區塊鏈上以鍵/值對的形式儲存。我們使用資產ID作為鍵,所有的資產屬性構成一個JSON物件,其對應的字串作為資產的值。在Fabric區塊鏈上,應用與鏈碼的互動是通過與網路上的Peer節點通過gRPC協議通訊完成的。

marbles peek

應用通訊框架

整個應用的通訊流程如下圖所示:

communication flow

1、管理員使用瀏覽器與Node.js應用互動,我們將該Node.js應用稱為Marbles。

2、瀏覽器中的客戶端JS程式碼將通過websocket與Node.js應用互動,當管理員操作介面時,客戶端 JS將向後端傳送訊息。

3、讀寫賬本的操作在Fabric中被稱為提議(Proposal),由Node.js應用負責生成提議併發送給Fabric區塊鏈的對等節點(Peer)。

4、Peer節點與部署在其本地的鏈碼通訊,鏈碼將執行/模擬交易,如果模擬的結果沒有問題,節點 將對交易進行背書並返回響應給Node.js應用。

5、Node.js應用會將背書過的提議傳送給Farbic區塊鏈的排序節點(Orderer),排序節點負責將整個網路上的多個提議打包並生成新的區塊,然後廣播給所有的對等節點。

6、最後,對等節點將驗證收到的區塊,然後寫入自己維護的賬本,交易現在就生效了,任何之後 發生的賬本讀取操作都可以反應賬本的變化。

使用手冊

安裝完成後,訪問http://localhost:3001開啟web介面,可以執行資產建立、資產交易等操作。

建立新資產

點選**+**圖示建立新的資產:

use_marbles1

在彈出的視窗中輸入所有的資產屬性後,點選CREATE按鈕,然後等待新資產在鏈上建立成功。

資產交易

在web介面中可以通過拖拽方式將一個大理石資產的所有權從一個使用者轉移給另一個使用者。

刪除資產

在web介面中也可以將資產拖拽到垃圾桶中,然後等待資產從鏈上消失:

use_marbles2

資產查詢

可以在web頁面中按資產持有人或資產公司名稱進行查詢。

應用原始碼連結:https://github.com/Incede/SupplyChain


原文連結:基於Fabric區塊鏈的供應鏈跟蹤解決方