基于超级账本Fabric的供应链跟踪解决方案【开源】
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
本項(xiàng)目為基于Hyperledger Fabric區(qū)塊鏈的供應(yīng)鏈資產(chǎn)跟蹤解決方案,項(xiàng)目主要包括鏈碼和Web應(yīng)用兩部分。Fabric鏈碼采用GOLANG開(kāi)發(fā),負(fù)責(zé)維護(hù)資產(chǎn)的狀態(tài),后臺(tái)為采用Node.js開(kāi)發(fā)的Web應(yīng)用,負(fù)責(zé)為用戶(hù)提供訪(fǎng)問(wèn)區(qū)塊鏈上資產(chǎn)的操作界面,例如資產(chǎn)的創(chuàng)建、所有權(quán)轉(zhuǎn)移等操作。
如果希望快速高效地掌握超級(jí)賬本Fabric區(qū)塊鏈的開(kāi)發(fā),強(qiáng)烈推薦這個(gè)在線(xiàn)互動(dòng)課程:
- Fabric區(qū)塊鏈鏈碼與應(yīng)用開(kāi)發(fā)詳解
在本項(xiàng)目中要跟蹤的資產(chǎn)是大理石,當(dāng)然可以換成和你的業(yè)務(wù)相關(guān)的任何類(lèi)型資產(chǎn)。大理石資產(chǎn)的屬性定義如下,所有的屬性值都是字符串:
- ID:資產(chǎn)的唯一標(biāo)識(shí)符
- COLOR:資產(chǎn)的顏色
- SIZE:資產(chǎn)的尺寸,單位:MM
- OWNER:持有人
本項(xiàng)目提供一個(gè)基于Web的用戶(hù)界面,以便用戶(hù)操作區(qū)塊鏈上的數(shù)據(jù)。資產(chǎn)在區(qū)塊鏈上以鍵/值對(duì)的形式保存。我們使用資產(chǎn)ID作為鍵,所有的資產(chǎn)屬性構(gòu)成一個(gè)JSON對(duì)象,其對(duì)應(yīng)的字符串作為資產(chǎn)的值。在Fabric區(qū)塊鏈上,應(yīng)用與鏈碼的交互是通過(guò)與網(wǎng)絡(luò)上的Peer節(jié)點(diǎn)通過(guò)gRPC協(xié)議通信完成的。
應(yīng)用通信框架
整個(gè)應(yīng)用的通信流程如下圖所示:
1、管理員使用瀏覽器與Node.js應(yīng)用交互,我們將該Node.js應(yīng)用稱(chēng)為Marbles。
2、瀏覽器中的客戶(hù)端JS代碼將通過(guò)websocket與Node.js應(yīng)用交互,當(dāng)管理員操作界面時(shí),客戶(hù)端 JS將向后端發(fā)送消息。
3、讀寫(xiě)賬本的操作在Fabric中被稱(chēng)為提議(Proposal),由Node.js應(yīng)用負(fù)責(zé)生成提議并發(fā)送給Fabric區(qū)塊鏈的對(duì)等節(jié)點(diǎn)(Peer)。
4、Peer節(jié)點(diǎn)與部署在其本地的鏈碼通信,鏈碼將執(zhí)行/模擬交易,如果模擬的結(jié)果沒(méi)有問(wèn)題,節(jié)點(diǎn) 將對(duì)交易進(jìn)行背書(shū)并返回響應(yīng)給Node.js應(yīng)用。
5、Node.js應(yīng)用會(huì)將背書(shū)過(guò)的提議發(fā)送給Farbic區(qū)塊鏈的排序節(jié)點(diǎn)(Orderer),排序節(jié)點(diǎn)負(fù)責(zé)將整個(gè)網(wǎng)絡(luò)上的多個(gè)提議打包并生成新的區(qū)塊,然后廣播給所有的對(duì)等節(jié)點(diǎn)。
6、最后,對(duì)等節(jié)點(diǎn)將驗(yàn)證收到的區(qū)塊,然后寫(xiě)入自己維護(hù)的賬本,交易現(xiàn)在就生效了,任何之后 發(fā)生的賬本讀取操作都可以反應(yīng)賬本的變化。
使用手冊(cè)
安裝完成后,訪(fǎng)問(wèn)http://localhost:3001打開(kāi)web界面,可以執(zhí)行資產(chǎn)創(chuàng)建、資產(chǎn)交易等操作。
創(chuàng)建新資產(chǎn)
點(diǎn)擊**+**圖標(biāo)創(chuàng)建新的資產(chǎn):
在彈出的窗口中輸入所有的資產(chǎn)屬性后,點(diǎn)擊CREATE按鈕,然后等待新資產(chǎn)在鏈上創(chuàng)建成功。
資產(chǎn)交易
在web界面中可以通過(guò)拖拽方式將一個(gè)大理石資產(chǎn)的所有權(quán)從一個(gè)用戶(hù)轉(zhuǎn)移給另一個(gè)用戶(hù)。
刪除資產(chǎn)
在web界面中也可以將資產(chǎn)拖拽到垃圾桶中,然后等待資產(chǎn)從鏈上消失:
資產(chǎn)查詢(xún)
可以在web頁(yè)面中按資產(chǎn)持有人或資產(chǎn)公司名稱(chēng)進(jìn)行查詢(xún)。
應(yīng)用源碼鏈接:https://github.com/Incede/SupplyChain
原文鏈接:基于Fabric區(qū)塊鏈的供應(yīng)鏈跟蹤解決方案 — 匯智網(wǎng)
轉(zhuǎn)載于:https://my.oschina.net/u/3794778/blog/3027089
總結(jié)
以上是生活随笔為你收集整理的基于超级账本Fabric的供应链跟踪解决方案【开源】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端学习(3120):react-hel
- 下一篇: Taro+react开发(37)箭头函数