2019獨角獸企業重金招聘Python工程師標準>>>
本項目為基于Hyperledger Fabric區塊鏈的供應鏈資產跟蹤解決方案,項目主要包括鏈碼和Web應用兩部分。Fabric鏈碼采用GOLANG開發,負責維護資產的狀態,后臺為采用Node.js開發的Web應用,負責為用戶提供訪問區塊鏈上資產的操作界面,例如資產的創建、所有權轉移等操作。
如果希望快速高效地掌握超級賬本Fabric區塊鏈的開發,強烈推薦這個在線互動課程:
- Fabric區塊鏈鏈碼與應用開發詳解
在本項目中要跟蹤的資產是大理石,當然可以換成和你的業務相關的任何類型資產。大理石資產的屬性定義如下,所有的屬性值都是字符串:
- ID:資產的唯一標識符
- COLOR:資產的顏色
- SIZE:資產的尺寸,單位:MM
- OWNER:持有人
本項目提供一個基于Web的用戶界面,以便用戶操作區塊鏈上的數據。資產在區塊鏈上以鍵/值對的形式保存。我們使用資產ID作為鍵,所有的資產屬性構成一個JSON對象,其對應的字符串作為資產的值。在Fabric區塊鏈上,應用與鏈碼的交互是通過與網絡上的Peer節點通過gRPC協議通信完成的。
應用通信框架
整個應用的通信流程如下圖所示:
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界面,可以執行資產創建、資產交易等操作。
創建新資產
點擊**+**圖標創建新的資產:
在彈出的窗口中輸入所有的資產屬性后,點擊CREATE按鈕,然后等待新資產在鏈上創建成功。
資產交易
在web界面中可以通過拖拽方式將一個大理石資產的所有權從一個用戶轉移給另一個用戶。
刪除資產
在web界面中也可以將資產拖拽到垃圾桶中,然后等待資產從鏈上消失:
資產查詢
可以在web頁面中按資產持有人或資產公司名稱進行查詢。
應用源碼鏈接:https://github.com/Incede/SupplyChain
原文鏈接:基于Fabric區塊鏈的供應鏈跟蹤解決方案 — 匯智網