国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Hyperledger Fabric的電子商務網(wǎng)站的設計與實現(xiàn)

2021-09-22 06:14:00劉霆李博何櫟
電子技術與軟件工程 2021年15期
關鍵詞:鏈碼區(qū)塊交易

劉霆 李博 何櫟

(河南工程學院 河南省鄭州市 451191)

1 引言

傳統(tǒng)電商平臺通常采用的是中心化記賬節(jié)點,雖然便于管理,但平臺對交易有著最高的操作權限,這會衍生出一系列的信任問題。最為直觀的便是近日京東的“顯卡穿倉”事件,客戶的顯卡在不經(jīng)意間就不知所蹤[1]。這一事件充分揭示了中心化節(jié)點存在的信用問題,中心節(jié)點可以對客戶的數(shù)據(jù)隨意更改,這將導致極為嚴重的信任危機。

區(qū)塊鏈是近年來研究的熱點,區(qū)塊鏈技術具有不可篡改、開放透明、機器自治等重要特征,以此解決交易過程中的信任和安全問題。從定義來看,區(qū)塊鏈是一種按時間順序將不斷產(chǎn)生的信息區(qū)塊以順序方式組合而成的一種可追溯的鏈式數(shù)據(jù)結構,是一種以密碼學方式保證數(shù)據(jù)不可篡改、不可偽造的分布式賬本[2]。區(qū)塊鏈是非對稱加密算法、共識機制、分布式存儲、點對點傳輸?shù)认嚓P技術通過新方式組合形成的創(chuàng)新應用。為了提升交易數(shù)據(jù)的可靠性,區(qū)塊鏈將交易數(shù)據(jù)全部存儲在鏈式數(shù)據(jù)結構上,這保證了交易數(shù)據(jù)的唯一性與可靠性,從最大限度上避免交易被篡改[3]。從長遠角度來看,區(qū)塊鏈技術有著廣闊的發(fā)展前景,不只是作為賬本,任何需要公正、防偽的場合都可以使用區(qū)塊鏈技術。

雖然從長遠來看,區(qū)塊鏈在很多產(chǎn)業(yè)都有應用潛力,但是目前區(qū)塊鏈與金融行業(yè)明顯最為契合。區(qū)塊鏈技術可以應用在票據(jù)流轉、供應鏈金融,再到證券發(fā)行與交易等領域[4]。現(xiàn)在存在的大量繁瑣的手工操作也可以被智能合約所取代,減少交易延遲、欺詐、操作風險以及系統(tǒng)錯誤導致的損失。區(qū)塊鏈技術不僅作為賬本具有其不可篡改、分布式的特性,還可以為商品溯源提供技術支持,為商品的質量把關,并在出現(xiàn)問題時提供完整的證據(jù)鏈條[5-7]。從下單到貨物的流轉再到資金的流動,區(qū)塊鏈技術可以打造一個完整的基于鏈的商業(yè)平臺,從技術上保證平臺交易的真實性與安全性。

網(wǎng)上購物已成為商業(yè)的重要形式,但由于產(chǎn)品質量不能保證和售后服務困難,消費者對電商平臺的信心不足。出現(xiàn)這一現(xiàn)象的主要原因是消費者的購物交易的數(shù)據(jù)由電商平臺存儲和維護,易出現(xiàn)篡改和否認等情況。另外,電商平臺公布的交易數(shù)據(jù),比如銷量等,是消費者購物活動的主要參考指標,而電商平臺公布的交易數(shù)據(jù)存在可信性不高的問題。本文通過將交易數(shù)據(jù)保存在區(qū)塊鏈中,實現(xiàn)了交易數(shù)據(jù)的無法篡改,從而獲得了高可信性,有助于購物者參考交易數(shù)據(jù)進行購買活動,以及售后的維權。這種技術解決了電子商務的消費者信任的痛點問題,將會促進電子商務的持續(xù)高速健康發(fā)展。本文將區(qū)塊鏈技術引入網(wǎng)上購物,能夠讓普通消費者對沒有信任基礎的電子商務網(wǎng)站建立信任,低成本、高效率地解決網(wǎng)上購物的信任問題。區(qū)塊鏈的不可篡改的特征,可保證存儲在系統(tǒng)中的交易數(shù)據(jù)完整可靠,避免數(shù)據(jù)在存儲、傳輸和展示環(huán)節(jié)被內(nèi)部管理人員和外部攻擊者篡改。因為主要采用了成熟的網(wǎng)站開發(fā)技術,本文區(qū)塊鏈網(wǎng)站的解決方案能夠成功地應用于各種不同的行業(yè)領域。

2 技術框架與環(huán)境設置

本文采用JSP開發(fā)電子商務網(wǎng)站,使用Tomcat提供Web服務。將基于Hyperledger Fabric的區(qū)塊鏈安裝部署在服務器上,同時安裝MySQL數(shù)據(jù)庫,服務器使用Ubuntu16.04操作系統(tǒng)。用戶通過JSP網(wǎng)頁訪問MySQL數(shù)據(jù)庫和Hyperledger Fabric區(qū)塊鏈。

2.1 聯(lián)盟區(qū)塊鏈

區(qū)塊鏈是重要的新興技術,擁有廣闊的應用前景,受到了各方面的高度重視,現(xiàn)在主要有公有鏈、私有鏈和聯(lián)盟鏈等三種形式。公有鏈是所有人都可以訪問的區(qū)塊鏈,私有鏈是只有區(qū)塊鏈所有者可以訪問,聯(lián)盟鏈則是只有符合條件的授權用戶才可以訪問[8]。在本文中只有在電子商務網(wǎng)站合法注冊的用戶才可以訪問區(qū)塊鏈,所以采用的是聯(lián)盟區(qū)塊鏈,目前開發(fā)聯(lián)盟鏈最常用的平臺是Hyperledger Fabric。

2.2 Hyperledger Fabric

Hyperledger Fabric為完成高可靠性與網(wǎng)絡的一致性,系統(tǒng)結構比較復雜,所使用的節(jié)點數(shù)量比較多,主要采用Docker作為節(jié)點的安裝部署方式。Docker提供了一種虛擬化的環(huán)境,應用軟件運行在此環(huán)境中。本文采用本地(Native)模式安裝Hyperledger Fabric,使用的節(jié)點直接安裝在硬件上,所以軟件直接運行在計算機實際的硬件上而不需要通過仿真或其他程序的干預,這種方式方便可保證系統(tǒng)的運行效率,并方便應用軟件的開發(fā)。為了開發(fā)JSP網(wǎng)站程序進行Hyperledger Fabric區(qū)塊鏈的操作,還在服務器上安裝了Fabric Java SKD,JSP程序實現(xiàn)了對區(qū)塊鏈的數(shù)據(jù)新增、查詢等。

安裝Hyperledger Fabric前要先安裝Go語言并設置環(huán)境變量GOROOT、GOPATH、GOBIN、PATH等。Hyperledger Fabric安裝在/opt/hyperledger下,主要的文件結構如圖1所示。

圖1:Hyperledger Fabric主要的文件結構

在fabricconfig文件夾下配置crypto-config.yaml文件,在order文件夾下配置configtx.yaml和orderer.yaml文件,在peer文件夾下配置core.yaml文件。然后運行相關命令生成通道、組織、創(chuàng)始區(qū)塊、排序節(jié)點等。本文網(wǎng)站在服務器上運行Orderer節(jié)點和Peer節(jié)點,Peer節(jié)點即作為背書節(jié)點,又作為執(zhí)行節(jié)點。

Hyperledger Fabric對于區(qū)塊鏈的操作都通過鏈碼執(zhí)行,鏈碼程序被寫入GO語言的文件里,并放在指定的文件夾里。鏈碼文件放置的位置是~/go/src/MyChainCode,鏈碼程序使用GO語言編寫,鏈碼程序名稱是mycc6。

交易信息的數(shù)據(jù)結構如下所示。

鏈碼中保存交易記錄的程序如下:

在終端的/opt/hyperledger/fabricconfig目錄下執(zhí)行安裝與初始化命令:

peer chaincode install -n mycc6 -v v1 -p MyChainCode

peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v v1 -c '{"Args":["init"]}' -P "OR ('Org1MSP.member', 'Org2MSP.member')"

在編寫完鏈碼的程序后執(zhí)行鏈碼更新命令:

peer chaincode upgrade -o orderer.example.com:7050 -C mychannel -n mycc6 -v v5 -c '{"Args":["init"]}'

2.3 JSP、Tomcat服務器和MySQL數(shù)據(jù)庫

JSP(Java Server Page)是廣泛采用的動態(tài)網(wǎng)頁開發(fā)技術,JSP部署于網(wǎng)絡服務器上,可以響應客戶端發(fā)送的請求,并根據(jù)請求內(nèi)容動態(tài)地生成HTML、XML或其他格式文檔的Web網(wǎng)頁,然后返回給請求者。JSP使用Tomcat作為Web容器,在服務器端口提供相應的服務處理從客戶端發(fā)出的請求。Tomcat運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務等開發(fā)應用系統(tǒng)常用的功能。Tomcat是一個小型的輕量級應用服務器,普遍用于中小型系統(tǒng)和并發(fā)訪問量較低的場合,是開發(fā)和調試JSP程序的首選。MySQL是最流行的關系型數(shù)據(jù)庫,具有開源、跨平臺的特點,在國內(nèi)外被廣泛地應用。本文網(wǎng)站的用戶信息和商品的基本信息保存在數(shù)據(jù)庫中,需要在服務器上安裝MySQL數(shù)據(jù)庫。用戶在使用網(wǎng)站時,JSP程序讀寫數(shù)據(jù)庫完成所需要的操作。

3 網(wǎng)站的設計與實現(xiàn)

3.1 網(wǎng)站的設計

3.1.1 系統(tǒng)方案

本文的區(qū)塊鏈電子商務網(wǎng)站采用JSP與關系數(shù)據(jù)庫相結合的方式,實現(xiàn)基礎的B2C電子商務網(wǎng)站的功能。用戶通過網(wǎng)頁進行登錄、查詢商品信息等操作。常規(guī)的數(shù)據(jù)如用戶名、密碼、商品信息等都保存在MySQL中,但將銷售數(shù)據(jù)的存儲從數(shù)據(jù)庫轉移到了區(qū)塊鏈。通過Web服務,用戶能夠購買商品,系統(tǒng)可以自動顯示購買量最大的商品。用戶的商品購買記錄都保存在區(qū)塊鏈中,用于系統(tǒng)自動統(tǒng)計銷量并顯示熱銷商品,也用于用戶查詢自己的購買記錄。

3.1.2 軟件流程

本系統(tǒng)前端使用JSP網(wǎng)頁作為客戶的操作頁面,后端采用MySQL存儲用戶個人信息以及商品等信息,而最重要的交易信息則被存儲在區(qū)塊上。用戶登錄系統(tǒng)通過驗證后查看商品信息和購買商品,此時商品交易信息會傳至后臺區(qū)塊鏈上,由鏈進行記錄,之后會將該交易的編號返回給用戶,此編號將是該交易的標識信息。交易完成后,程序在區(qū)塊鏈上查詢同一商品的歷史交易記錄,計算出商品交易的總數(shù),并將其保存到MySQL數(shù)據(jù)庫,以供熱銷推薦。用戶可以查詢自己的交易記錄,返回所有訂單編號、交易時間、商品以及交易編號等信息。

3.2 網(wǎng)站的實現(xiàn)

本系統(tǒng)實現(xiàn)了用戶注冊和登錄等基礎功能,還可進行查詢商品信息、購買以及顯示用戶歷史訂單等操作,另外還實現(xiàn)了自動將商品按采購數(shù)量排序顯示。主頁界面如圖2所示。

圖2:網(wǎng)站主頁界面

3.2.1 注冊、登錄和修改密碼

新用戶用自己的身份證號注冊,并設置密碼。用戶的身份證號是用戶采購商品記錄的憑證。用戶用自己的身份證號和密碼登錄系統(tǒng),并可以重新設置自己的登錄密碼。

3.2.2 查詢商品的詳細信息、購買商品

用戶能夠從主頁直接選擇商品查看詳細信息,還可以查詢某品牌的所有商品,并查看其中某個商品的詳細信息。在商品詳細信息頁面,用戶可以購買該商品。購買成功后,網(wǎng)站顯示此項交易在Hyperledger Fabric中的交易編號。

3.2.3 查詢歷史訂單記錄

用戶登錄后可以查詢自己的歷史購買記錄,系統(tǒng)將顯示交易的商品名稱、交易時間、交易編號等信息。

4 網(wǎng)站的測試與分析

本文網(wǎng)站可實現(xiàn)用戶正常采購商品,且所有的銷售數(shù)據(jù)均保存在區(qū)塊鏈中。用戶可以在區(qū)塊鏈中保存和查詢自己的銷售數(shù)據(jù),系統(tǒng)將銷售數(shù)據(jù)從區(qū)塊鏈中查詢并匯總統(tǒng)計。系統(tǒng)的區(qū)塊鏈保存與查詢速度可滿足一般電子商務網(wǎng)站的業(yè)務需要,響應迅速、結果準確。本文采用實際部署測試的方法,首先將本作品部署在服務器上,然后對各個功能進行實際測試,檢查結果的正確性和響應所需的時間。

4.1 啟動Hyperledger Fabric區(qū)塊鏈

進入/opt/hyperledger/order目錄下啟動orderer節(jié)點,輸入命令:orderer start。

進入/opt/hyperledger/peer目錄下啟動peer節(jié)點,輸入命令:

export set FABRIC_CFG_PATH=/opt/hyperledger/peer

peer node start >> log_peer.log 2>&1 &

4.2 購買模塊

執(zhí)行購買動作后交易信息被保存到區(qū)塊鏈mychannel中,并返回該交易編號。購買結束后,程序查詢區(qū)塊鏈中此商品的歷史購買數(shù)量,然后在數(shù)據(jù)庫中保存新的歷史購買總數(shù),用于熱銷推薦。經(jīng)過多次購買商品進行測試,得到購買商品所需時間為85ms,基本可以滿足電子商務網(wǎng)站的操作需要。購買商品的返回結果如圖3所示。

圖3:購買商品后的返回結果

4.3 訂單查詢模塊

用戶可從區(qū)塊鏈mychannel中查找到用戶的歷史交易信息,通過多次查詢不同的用戶歷史訂單,得到用戶查詢歷史訂單的時間約為125ms,基本可以滿足電子商務網(wǎng)站的操作需要。查詢購買商品歷史記錄的返回結果如圖4所示。

圖4:查詢購買商品歷史記錄的返回結果

5 結語

本文將區(qū)塊鏈技術應用于電子商務網(wǎng)站,以區(qū)塊鏈存儲交易信息,依靠其透明和不可篡改的特性滿足了供求雙方對交易數(shù)據(jù)高真實性的需要,切中行業(yè)痛點。本文采用了常用的JSP技術開發(fā)網(wǎng)站,并用Fabric Java SDK訪問區(qū)塊鏈,所用技術易于學習和掌握,且效率較高。本文提供的方案適用于不同行業(yè)領域,特別是需要信息高度真實可信的應用,例如股票證券的交易、產(chǎn)品的溯源、銀行貸款以及信用審查等方面。

未來的研究將增加Orderer節(jié)點的數(shù)量,減少對單節(jié)點的依賴;應用Kafka的多節(jié)點模式,實現(xiàn)網(wǎng)站的高并發(fā)吞吐;另外還將在區(qū)塊鏈中存儲和維護更多的信息,比如用戶信息、商品信息等,實現(xiàn)功能更加優(yōu)化的區(qū)塊鏈系統(tǒng)。

猜你喜歡
鏈碼區(qū)塊交易
區(qū)塊鏈:一個改變未來的幽靈
科學(2020年5期)2020-11-26 08:19:12
區(qū)塊鏈:主要角色和衍生應用
科學(2020年6期)2020-02-06 08:59:56
區(qū)塊鏈+媒體業(yè)的N種可能
傳媒評論(2018年4期)2018-06-27 08:20:12
讀懂區(qū)塊鏈
一種新壓縮頂點鏈碼
計算機應用(2017年6期)2017-09-03 10:23:54
交易流轉應有新規(guī)
上海國資(2015年8期)2015-12-23 01:47:28
大宗交易
基于鏈碼特征的幾何圖形快速識別算法*
《吃飯的交易》
驚人的交易
科學啟蒙(2014年10期)2014-11-12 06:15:39
浦城县| 怀仁县| 鲁山县| 那坡县| 白朗县| 施秉县| 鄂州市| 乡宁县| 道孚县| 台州市| 巩留县| 临泉县| 龙陵县| 江山市| 海口市| 乌苏市| 靖远县| 寿宁县| 大埔县| 云梦县| 寿光市| 上饶市| 武城县| 雷波县| 正安县| 永登县| 公安县| 威海市| 陵川县| 玉溪市| 平阴县| 榆中县| 涡阳县| 开远市| 耒阳市| 姚安县| 虎林市| 白水县| 海宁市| 南丰县| 博白县|