黃立波 王偉 徐彥軍 陳旭剛
摘要:在當(dāng)下的教育環(huán)境中,線上教育缺乏可信的結(jié)業(yè)憑證;學(xué)員在教育平臺學(xué)習(xí)相關(guān)課程后,無法得到具有公信力的結(jié)業(yè)證書;極少數(shù)教育平臺給出的結(jié)業(yè)憑證,由于其中心化的存儲,也不能被社會所認(rèn)可.這些弊端嚴(yán)重限制了線上教育的發(fā)展.為了解決這個問題,利用區(qū)塊鏈去中心化、不可篡改的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了基于區(qū)塊鏈的線上教育結(jié)業(yè)證書管理系統(tǒng),將電子結(jié)業(yè)證書以數(shù)字資產(chǎn)的形式記錄在區(qū)塊鏈中,并將學(xué)員學(xué)習(xí)記錄數(shù)據(jù)保存在結(jié)業(yè)證書中,保證了結(jié)業(yè)證書的真實(shí)性和可靠性.在此基礎(chǔ)上,基于超級賬本,實(shí)現(xiàn)了證書生成和發(fā)放等的智能合約,保證了無須第三方參與的智能化運(yùn)行;同時,提供了豐富的查詢接口,如結(jié)業(yè)證書的歷史追溯,提高了在線教育平臺學(xué)習(xí)成果驗(yàn)證的效率;另外,由于線上教育的課程以發(fā)布者資產(chǎn)的形式記錄于區(qū)塊鏈,故加強(qiáng)了線上教育領(lǐng)域的版權(quán)保護(hù).實(shí)驗(yàn)結(jié)果表明,所提出的方法能夠滿足上述教育場景中的性能需求.
關(guān)鍵詞:區(qū)塊鏈;線上教育;超級賬本;智能合約
中圖分類號:TP311
文獻(xiàn)標(biāo)志碼:A
文章編號:1000-5641(2020)06-0072-10
0引言
隨著近些年互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,將信息技術(shù)應(yīng)用于教育領(lǐng)域,大規(guī)模建設(shè)教育信息化已成為趨勢.2016年,工信部頒布了《中國區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書(2016)》,白皮書明確指出,區(qū)塊鏈系統(tǒng)的公開透明和數(shù)據(jù)不可篡改等特點(diǎn),在高等教育的資質(zhì)證明、征信管理、學(xué)員學(xué)術(shù)管理方面有較大的發(fā)展優(yōu)勢.在“互聯(lián)網(wǎng)+教育”的背景下,將區(qū)塊鏈技術(shù)與教育相結(jié)合,對線上教育的發(fā)展意義重大.
在現(xiàn)有的國內(nèi)外知名MOOC(Massive Open Online Courses)平臺中,Coursera是線上教育結(jié)業(yè)證書發(fā)放的先行者.為了保證結(jié)業(yè)證書的可靠性,電子證書往往由提供課程的高校進(jìn)行背書,并采用傳統(tǒng)的集中式數(shù)據(jù)存儲模式.這種方式會增加證書發(fā)放的復(fù)雜性,降低效率;且集中式數(shù)據(jù)存儲的方式會導(dǎo)致數(shù)據(jù)的安全難以得到保障;同時,由于缺乏可靠的查詢接口,導(dǎo)致線上教育結(jié)業(yè)證書的真實(shí)性無法得到驗(yàn)證.
區(qū)塊鏈技術(shù)的出現(xiàn),為線上教育結(jié)業(yè)證書所面臨的問題提供了解決方案.本文設(shè)計(jì)并實(shí)現(xiàn)了基于區(qū)塊鏈的線上教育結(jié)業(yè)證書管理系統(tǒng),構(gòu)建了去中心化的線上教育結(jié)業(yè)證書平臺,降低了線上教育結(jié)業(yè)證書的管理成本和復(fù)雜性.本文系統(tǒng)主要能為線上教育帶來以下改進(jìn).
(1)利用區(qū)塊鏈數(shù)據(jù)可追溯、不可更改的特點(diǎn),可以為線上教育提供可靠、安全且經(jīng)濟(jì)的證書系統(tǒng).在信息化的時代,MOOC已成為大眾接受高等教育的重要方式之一,但由于MOOC平臺中的學(xué)習(xí)成果認(rèn)定較難,不同高校對MOOC中獲得的學(xué)分的轉(zhuǎn)換標(biāo)準(zhǔn)不統(tǒng)一,導(dǎo)致MOOC的發(fā)展與推廣受到了阻礙.因此,為了保證線上教育能夠更好地得到推廣,本文將線上教育中的結(jié)業(yè)證書作為突破點(diǎn),利用區(qū)塊鏈技術(shù)改善線上教育結(jié)業(yè)證書認(rèn)證效率,以提高電子結(jié)業(yè)證書的認(rèn)可度;另外,使用區(qū)塊鏈技術(shù)中智能合約的自動化運(yùn)行,可降低證書的認(rèn)證成本,為線上教育的推廣提供有力的支持.在學(xué)習(xí)行為數(shù)據(jù)管理方面,系統(tǒng)記錄學(xué)員在教育平臺中的所有學(xué)習(xí)活動,并將學(xué)習(xí)信息全部記錄于電子證書之中.這樣不僅可以提高結(jié)業(yè)證書的可靠性和真實(shí)性,更可將區(qū)塊鏈在溯源學(xué)員學(xué)習(xí)信息記錄中的優(yōu)勢突現(xiàn)出來.
(2)區(qū)塊鏈也可以作為版權(quán)保護(hù)的工具運(yùn)用到線上教育中.在現(xiàn)階段的線上教育環(huán)境下,課程資源、學(xué)術(shù)成果的版權(quán)保護(hù)是一個難題,高等教育院校的內(nèi)部課程資源、學(xué)術(shù)成果,以及線上教育貢獻(xiàn)者分享的優(yōu)質(zhì)內(nèi)容,往往在網(wǎng)絡(luò)中被肆意轉(zhuǎn)載.在信息化時代,除了要提高學(xué)習(xí)人員的資源利用率,資源發(fā)布者的版權(quán)保護(hù)也尤為重要.本文利用區(qū)塊鏈數(shù)據(jù)不可篡改和可追溯的特點(diǎn),將資源發(fā)布者發(fā)布的資源以數(shù)字資產(chǎn)的形式記錄于區(qū)塊鏈中,任何涉嫌抄襲的行為,都可在區(qū)塊鏈中找到充足的證據(jù).
本文的主要工作與創(chuàng)新點(diǎn):①將區(qū)塊鏈技術(shù)應(yīng)用到數(shù)字結(jié)業(yè)證書的發(fā)放管理中,實(shí)現(xiàn)了證書的真實(shí)性與可靠性;②基于超級賬本,實(shí)現(xiàn)了證書生成和發(fā)放的智能合約,保證了無須第三方參與就能實(shí)現(xiàn)結(jié)業(yè)證書的歷史追溯,提高了在線教育平臺學(xué)習(xí)成果驗(yàn)證的效率;③通過實(shí)驗(yàn)手段驗(yàn)證了本文所提方法性能的有效性.
本文首先介紹了區(qū)塊鏈技術(shù)并對其在線上教育中的應(yīng)用進(jìn)行了可行性分析,之后設(shè)計(jì)并實(shí)現(xiàn)了基于Hyperledger Fabric的線上教育結(jié)業(yè)證書管理系統(tǒng).該系統(tǒng)在節(jié)點(diǎn)管理、智能合約管理和賬本管理的基礎(chǔ)上,實(shí)現(xiàn)了結(jié)業(yè)證書的元數(shù)據(jù)管理和發(fā)放歷史追溯,可為線上教育學(xué)員提供真實(shí)、可靠的電子結(jié)業(yè)證書.
1區(qū)塊鏈技術(shù)及可行性分析
1.1區(qū)塊鏈技術(shù)
區(qū)塊鏈的結(jié)構(gòu)主要由3部分組成,分別是交易(Transaction)、區(qū)塊(Block)、區(qū)塊鏈(Blockchain).區(qū)塊鏈?zhǔn)且粋€分布式賬本,區(qū)塊鏈系統(tǒng)中的各個節(jié)點(diǎn)將同一時間段內(nèi)的所有交易信息打包成區(qū)塊,并打上時間戳,區(qū)塊是構(gòu)成區(qū)塊鏈的基本單位;隨后,將生成的區(qū)塊按時序通過哈希(Hash)加密的方式連接起來,其中區(qū)塊頭會記錄前一個區(qū)塊的哈希值,這樣就形成了區(qū)塊鏈.由此可以看出,任何一個區(qū)塊的變更,都會影響到該區(qū)塊后續(xù)的所有區(qū)塊,而后續(xù)區(qū)塊的修改需要耗費(fèi)巨大的計(jì)算資源,這也就保證了區(qū)塊鏈中的數(shù)據(jù)是不可篡改的.在區(qū)塊鏈生成的過程中,會出現(xiàn)在同一時間生成兩個或者多個區(qū)塊的情況,在這種情況下,就會使區(qū)塊鏈產(chǎn)生分支,這時,共識機(jī)制會確定區(qū)塊鏈的主鏈和分支.目前主流的共識機(jī)制有工作量證明(Proof of Work,POW)、權(quán)益證明(Proof of Stake,POS)等.區(qū)塊鏈的基本結(jié)構(gòu)如圖1所示.
1.2區(qū)塊鏈技術(shù)特點(diǎn)及應(yīng)用的可行性分析
區(qū)塊鏈通過分布式共識機(jī)制和數(shù)據(jù)加密等技術(shù),使去中心化、防篡改、去信任化的數(shù)據(jù)共享成為現(xiàn)實(shí).區(qū)塊鏈技術(shù)的特點(diǎn)主要體現(xiàn)在以下幾個方面.
(1)信息公開:區(qū)塊鏈網(wǎng)絡(luò)中的交易都是公開透明的,所有用戶都有查看的權(quán)限.
(2)數(shù)據(jù)不可篡改、可追溯:區(qū)塊通過哈希加密聯(lián)系在一起,保障了數(shù)據(jù)不可篡改性和可追溯性.這一特性也保證了電子結(jié)業(yè)證書是真實(shí)可靠、不可修改的.
(3)去中心化:區(qū)塊鏈實(shí)質(zhì)上是一種基于P2P(Peer-to-Peer)的分布式數(shù)據(jù)庫,所有節(jié)點(diǎn)都擁有自主權(quán),不存在中心化的節(jié)點(diǎn).
(4)分布式共識機(jī)制:區(qū)塊鏈網(wǎng)絡(luò)中的各個節(jié)點(diǎn)都可單獨(dú)為應(yīng)用提供服務(wù),防止單節(jié)點(diǎn)故障影響整個系統(tǒng)的正常運(yùn)行,共識機(jī)制也保證了區(qū)塊鏈主鏈的唯一性.
(5)非對稱性加密:通過非對稱性加密技術(shù)對數(shù)據(jù)進(jìn)行加密處理,有效防止電子結(jié)業(yè)證書中的個人信息泄露.
(6)可編程性:主流區(qū)塊鏈如以太坊、超級賬本、EOS(Enterprise Operation System)等都提供圖靈完備的智能合約編寫語言,能夠?qū)崿F(xiàn)豐富的功能.
基于以上6個方面的主要特點(diǎn),將區(qū)塊鏈技術(shù)應(yīng)用到線上教育結(jié)業(yè)證書管理系統(tǒng)中是切實(shí)可行的.
2基于區(qū)塊鏈的線上教育結(jié)業(yè)證書管理系統(tǒng)的設(shè)計(jì)
2.1系統(tǒng)設(shè)計(jì)目標(biāo)
在現(xiàn)階段的線上教育發(fā)展?fàn)顩r下,線上教育的模式已經(jīng)不僅僅是學(xué)員學(xué)習(xí)教師講授的課程,其參與者更涉及學(xué)員、教師、高校和企業(yè).學(xué)員在選修課程后,希望能獲得有公信力的結(jié)業(yè)證書;教師作為內(nèi)容發(fā)布者,希望其內(nèi)容版權(quán)得到保護(hù);高校作為線上教育的支持者,希望其課程能更多地在線上發(fā)布;企業(yè)則希望能夠有更方便、高效的方式,去考核應(yīng)聘人員通過在線上教育平臺所獲得的技能的真實(shí)性.因此,在線上教育結(jié)業(yè)證書管理系統(tǒng)中,數(shù)據(jù)共享尤為重要;數(shù)據(jù)共享的同時,還要保證數(shù)據(jù)的安全性、完整性與可靠性
針對線上教育參與者的實(shí)際需求,本文提出以下幾個設(shè)計(jì)目標(biāo).
(1)為系統(tǒng)各方的使用者提供友好支持,共同維護(hù)同一個記錄學(xué)員學(xué)習(xí)行為數(shù)據(jù)的分布式賬本.
(2)提供良好的性能,保證低延遲響應(yīng),確保系統(tǒng)的穩(wěn)定性.
(3)使用非對稱加密技術(shù),保證電子結(jié)業(yè)證書數(shù)據(jù)的安全性和用戶的隱私.
(4)提供穩(wěn)定高效的查詢接口,為企業(yè)、高校等多方用戶查詢結(jié)業(yè)證書的真實(shí)性提供支持.
2.2系統(tǒng)技術(shù)選型與邏輯設(shè)計(jì)
本文提出的結(jié)業(yè)證書管理系統(tǒng)是在Hyperledger Fabric 1.0的基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)的.Hyperledger Fabric是由IBM公司主導(dǎo)開發(fā)的一個面向企業(yè)級客戶的開源項(xiàng)目.與比特幣和以太坊、EOS等這類公有鏈不同的是,Hyperledger Fabric網(wǎng)絡(luò)中的節(jié)點(diǎn)必須經(jīng)過授權(quán)認(rèn)證后才能加入.這樣的準(zhǔn)入機(jī)制避免了由POW所帶來的計(jì)算資源開銷,從而大幅提高了交易處理效率,滿足了企業(yè)級應(yīng)用對處理性能的訴求.Hyperledger Fabric憑借其靈活的信任機(jī)制和擴(kuò)展性,是目前最主流的聯(lián)盟鏈開發(fā)框架.因此,在開發(fā)系統(tǒng)時,本文選擇了Hyperledger Fabric架構(gòu).
本文設(shè)計(jì)實(shí)現(xiàn)的結(jié)業(yè)證書管理系統(tǒng)是由不同的線上教育參與部門共同連接成的一個教育聯(lián)盟鏈網(wǎng)絡(luò),在聯(lián)盟鏈中每一個節(jié)點(diǎn)都對應(yīng)著一份節(jié)點(diǎn)總賬,節(jié)點(diǎn)中的所有交易信息都會在賬本中備份;在整個教育聯(lián)盟鏈中,用戶可以通過任一節(jié)點(diǎn)查詢和下載賬本中的數(shù)據(jù);當(dāng)某個節(jié)點(diǎn)被黑客攻擊或數(shù)據(jù)遭到篡改時,平臺會將該節(jié)點(diǎn)從聯(lián)盟鏈中刪除,然后,平臺會提交新增數(shù)據(jù)節(jié)點(diǎn)的指令;在系統(tǒng)節(jié)點(diǎn)驗(yàn)證通過后,通過Fabric中的Order節(jié)點(diǎn),把交易共識連接到其他節(jié)點(diǎn)上,整個平臺中的節(jié)點(diǎn)將恢復(fù)正常.本文系統(tǒng)的邏輯結(jié)構(gòu)如圖2所示.
除此之外,本文系統(tǒng)還涉及了區(qū)塊鏈的管理功能,主要包括節(jié)點(diǎn)的展示、智能合約的管理和賬本信息的查看等基本功能.管理功能使區(qū)塊鏈的管理更為便捷,方便了開發(fā)者在系統(tǒng)故障時及時進(jìn)行維護(hù).
2.3系統(tǒng)流程
業(yè)務(wù)流程如圖3所示:內(nèi)容發(fā)布者發(fā)布課程,經(jīng)由平臺審核通過后記錄于區(qū)塊鏈中;學(xué)員選擇課程后,由智能合約管理自動生成待發(fā)放的證書,學(xué)員在線學(xué)習(xí)的數(shù)據(jù)將同步到電子證書中;當(dāng)學(xué)員結(jié)束課程學(xué)習(xí)后,可申請結(jié)業(yè),請求申請通過后,結(jié)業(yè)證書將發(fā)放到對應(yīng)學(xué)員賬戶下;企業(yè)可以通過證書的編號,在區(qū)塊鏈中查詢證書的真實(shí)性.
2.4系統(tǒng)架構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)的業(yè)務(wù)需求和區(qū)塊鏈的管理要求,本文提出了可視化的管理操作系統(tǒng),其架構(gòu)如圖4所示.結(jié)業(yè)證書管理系統(tǒng)主要分為區(qū)塊鏈管理、結(jié)業(yè)證書管理和平臺管理3個部分,其中區(qū)塊鏈管理部分負(fù)責(zé)系統(tǒng)中區(qū)塊鏈節(jié)點(diǎn)之間的信息交互;結(jié)業(yè)證書管理負(fù)責(zé)電子證書的生成和學(xué)員學(xué)習(xí)記錄的寫入,以及結(jié)業(yè)證書的查詢;平臺管理部分負(fù)責(zé)用戶管理和系統(tǒng)監(jiān)控.區(qū)塊鏈節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲和智能合約的執(zhí)行,多節(jié)點(diǎn)參與共同維護(hù)公共賬本,保證賬本數(shù)據(jù)的唯一性和準(zhǔn)確性.業(yè)務(wù)處理機(jī)提供上層應(yīng)用接口,為多方應(yīng)用查詢結(jié)業(yè)證書、課程版權(quán)提供支持.
2.5功能模塊設(shè)計(jì)
本系統(tǒng)設(shè)計(jì)了賬本查看模塊、結(jié)業(yè)證書生成與查詢模塊、智能合約管理模塊、元數(shù)據(jù)管理模塊.本節(jié)重點(diǎn)介紹結(jié)業(yè)證書生成與查詢模塊.
2.5.1結(jié)業(yè)證書生成模塊
在本文提出的線上教育結(jié)業(yè)證書管理系統(tǒng)中,對結(jié)業(yè)證書的操作主要有證書的生成、學(xué)習(xí)行為數(shù)據(jù)寫入、證書的發(fā)放這3個過程.為此,本文設(shè)計(jì)了結(jié)業(yè)證書的數(shù)據(jù)結(jié)構(gòu),如表1所示.
當(dāng)學(xué)員選擇課程后,調(diào)用Certificate Enroll智能合約,生成一個空白的未發(fā)放的結(jié)業(yè)證書;結(jié)業(yè)證書以數(shù)字資產(chǎn)的形式記錄于區(qū)塊鏈,當(dāng)結(jié)業(yè)證書被創(chuàng)建后,存于教師賬戶名下;學(xué)員在平臺學(xué)習(xí)時,系統(tǒng)將產(chǎn)生的學(xué)習(xí)行為數(shù)據(jù)轉(zhuǎn)化為String格式,調(diào)用Certificate Data接口,把學(xué)習(xí)行為數(shù)據(jù)以數(shù)組的形式存于結(jié)業(yè)證書中;學(xué)員課程學(xué)習(xí)結(jié)束后申請結(jié)業(yè),若審核通過,則調(diào)用Certificate Exchange智能合約,將結(jié)業(yè)證書由課程教師名下轉(zhuǎn)移到學(xué)員名下,完成結(jié)業(yè)證書的發(fā)放.
2.5.2結(jié)業(yè)證書查詢模塊
本文設(shè)計(jì)的線上教育結(jié)業(yè)證書管理平臺實(shí)現(xiàn)了對電子結(jié)業(yè)證書的查詢操作.根據(jù)查詢的依據(jù)不同,將查詢方法分為根據(jù)用戶ID認(rèn)證查詢和使用證書ID直接查詢兩種方式.前者由具有相關(guān)權(quán)限的用戶登錄系統(tǒng)輸入用戶ID進(jìn)行查詢,在符合要求的條件下,返回對應(yīng)用戶ID下所有的證書.一般狀況下,按學(xué)員ID查詢顯示該學(xué)員獲得的所有證書,按教師ID查詢顯示該教師管理的所有證書.使用證書ID直接查詢,則返回證書的詳細(xì)信息,包括課程名稱、授課教師、學(xué)員信息、學(xué)習(xí)行為記錄等.
為了保障用戶的隱私不泄露,在進(jìn)行查詢操作時,無論是根據(jù)用戶ID查詢還是根據(jù)證書ID查詢,都需要先驗(yàn)證進(jìn)行查詢操作的用戶是否具有平臺公鑰,且返回的結(jié)果是由公鑰加密的數(shù)據(jù),進(jìn)行查詢操作的用戶用自己的私鑰解密后,才可以查看明文數(shù)據(jù).查詢操作的流程如圖5所示.
3基于區(qū)塊鏈的線上教育結(jié)業(yè)證書管理系統(tǒng)的實(shí)現(xiàn)
3.1證書ID查詢實(shí)現(xiàn)
在根據(jù)證書ID查詢模塊中,用戶首先登錄賬號或者使用教育部門的認(rèn)證信息,系統(tǒng)判斷登錄信息有效后,進(jìn)行后續(xù)操作.查詢時,系統(tǒng)通過Hyperledger Fabric自帶的Get-State(key)方法定位查詢信息中對應(yīng)證書信息的位置,然后對加密的電子結(jié)業(yè)證書進(jìn)行解密處理,并將處理結(jié)果存儲在本地的臨時文件中.
在根據(jù)證書ID查詢過程中,若登錄信息驗(yàn)證通過,則首先調(diào)用QueryCertificate智能合約,該智能合約首先驗(yàn)證參數(shù)個數(shù)和參數(shù)正確性,若證書不存在,則返回錯誤信息;若證書存在,則返回證書的詳細(xì)數(shù)據(jù).電子結(jié)業(yè)證書具體實(shí)現(xiàn)的邏輯代碼如圖6所示.
3.2基于Fabric-SDK-go的微服務(wù)的實(shí)現(xiàn)
本文基于Fabric-SDK-go項(xiàng)目中所提供的應(yīng)用程序接口(Application Programming Interface,API),向應(yīng)用層提供了豐富的表征狀態(tài)轉(zhuǎn)移(Representational State Transfer,REST)API.Fabric-SDK-中的SDK主要分為Json數(shù)據(jù)模塊、Request解析模塊、Task執(zhí)行模塊.
(1)Json數(shù)據(jù)模塊主要負(fù)責(zé)將數(shù)據(jù)封裝成Json數(shù)據(jù),采用統(tǒng)一的數(shù)據(jù)格式,方便了應(yīng)用層和數(shù)據(jù)層交互時數(shù)據(jù)格式的解析.
(2)Request解析模塊主要負(fù)責(zé)接收來自應(yīng)用層的業(yè)務(wù)請求,解析請求和接收數(shù)據(jù),生成執(zhí)行任務(wù)給Task模塊.Request模塊采用REST架構(gòu)設(shè)計(jì),將業(yè)務(wù)進(jìn)行了分離,針對不同業(yè)務(wù)類型進(jìn)行路由轉(zhuǎn)發(fā):①/users路由的Post方法通往用戶的ID注冊功能;②/users路由的Delete方法通往用戶的銷戶功能;③/users/:id路由通往用戶的查詢功能;④/certificates/get/:id路由對應(yīng)到證書的查詢功能;⑤/certificates/enroll路由對應(yīng)到證書的創(chuàng)建功能;⑥/certificates/exchange路由對應(yīng)到結(jié)業(yè)證書的簽授功能;⑦/certificates/exchange/history路由匹配到證書交易歷史的查詢功能.路由轉(zhuǎn)發(fā)讓業(yè)務(wù)邏輯變得清晰,也讓系統(tǒng)有良好的可拓展性.
(3)Task執(zhí)行模塊是Request模塊和區(qū)塊鏈系統(tǒng)的中間模塊,主要功能是接收Request模塊發(fā)來的任務(wù)請求,與數(shù)據(jù)層區(qū)塊鏈節(jié)點(diǎn)進(jìn)行交互.該模塊采用gRPC(google Remote Procedure Call Protocol)與區(qū)塊鏈節(jié)點(diǎn)進(jìn)行通信.
本文系統(tǒng)具體的REST API如表2所示.
3.3系統(tǒng)演示
本文所提系統(tǒng)為在線教育平臺kfcoding.com提供了區(qū)塊鏈服務(wù),在Android客戶端實(shí)現(xiàn)了課程選課、申請結(jié)業(yè)、證書發(fā)放的線上教育全過程.圖7為教師登錄后,查看學(xué)員申請結(jié)業(yè)請求和審核是否同意學(xué)員結(jié)業(yè)的界面.由圖7可知,教師可以看到所有學(xué)員提交的申請結(jié)業(yè)請求,該頁面調(diào)用了基于教師ID查詢證書的接口.在審核頁面,教師若同意結(jié)業(yè),則調(diào)用結(jié)業(yè)證書發(fā)放智能合約,將教師名下的電子證書轉(zhuǎn)移到學(xué)員名下,并把教師頒發(fā)結(jié)業(yè)證書的過程記錄在該結(jié)業(yè)證書中.
4系統(tǒng)性能測試
(1)硬件環(huán)境:1臺Mac主機(jī).其具體配置為:①操作系統(tǒng),Mac OSmojave 10.14.5;②CPU,4核2.7GHz;③內(nèi)存,16GB DDR3;④硬盤,順序讀取2.5GB/s,順序?qū)?.2GB/s;⑤網(wǎng)卡,125MB/s.
(2)開發(fā)環(huán)境:Golang 1.11.5,Goland.
(3)測試方法:TPS(Transaction Per Second)=并發(fā)數(shù)/平均響應(yīng)時間.
(4)測試程序:采用多線程編程,每個線程模擬一個客戶端(Client)與區(qū)塊鏈系統(tǒng)交互,不斷在系統(tǒng)中增加記錄.共進(jìn)行多組測試,Client每組依次遞增5個.記錄下請求次數(shù)、響應(yīng)時間等實(shí)驗(yàn)數(shù)據(jù),計(jì)算不同負(fù)載下系統(tǒng)的吞吐量,同時監(jiān)控服務(wù)器CPU、內(nèi)存、磁盤I/O、網(wǎng)絡(luò)等資源使用狀況.直到TPS數(shù)據(jù)不再升高,停止測試.
實(shí)驗(yàn)結(jié)果如圖8所示:Client數(shù)量在5-25之間,系統(tǒng)未達(dá)到硬件瓶頸,TPS穩(wěn)定提升;當(dāng)Client數(shù)量在25之后繼續(xù)提升,TPS趨于穩(wěn)定,但到達(dá)35時并有略微下降,此時系統(tǒng)所有硬件資源的使用情況均未達(dá)到峰值,猜測Fabric本身的框架缺陷造成了系統(tǒng)瓶頸.通過實(shí)驗(yàn)結(jié)果,可以得出本文系統(tǒng)的TPS約為209,因?yàn)榫€上教育電子結(jié)業(yè)證書管理系統(tǒng)并不需要長時間,多次數(shù)的信息交互,基本能夠滿足該業(yè)務(wù)場景的需求.
另外,本文提出的系統(tǒng)在Andriod和Web端都有應(yīng)用.當(dāng)在線用戶較多、處理數(shù)據(jù)量較大時,保障系統(tǒng)的低延遲對用戶體驗(yàn)尤為重要.為此,本文設(shè)計(jì)并實(shí)現(xiàn)了一個簡單的Web服務(wù)器BDN(Blockchain Delivery Node).其主要目的是加快鏈中和鏈外存儲內(nèi)容的交付.BDN負(fù)責(zé)偵聽區(qū)塊鏈系統(tǒng)在正常工作流中引發(fā)的所有事件,且所有事件都添加了索引并收集;當(dāng)系統(tǒng)處理的數(shù)據(jù)量較多時,BDN可對平臺事件進(jìn)行聚合并緩存,從而保證了系統(tǒng)的流暢性,提高了用戶體驗(yàn).
BDN的應(yīng)用與普通Fabric應(yīng)用程序在數(shù)據(jù)處理方面的比較如圖9所示.由圖9可知,即便當(dāng)處理的數(shù)據(jù)數(shù)量達(dá)到10000條時,本文系統(tǒng)仍能保障低延遲的用戶體驗(yàn).
5總結(jié)與展望
本文基于區(qū)塊鏈系統(tǒng)Hyperledger Fabric設(shè)計(jì)并實(shí)現(xiàn)了線上教育結(jié)業(yè)證書發(fā)放系統(tǒng):將學(xué)員的選課、學(xué)員申請結(jié)業(yè)、結(jié)業(yè)證書的發(fā)放等內(nèi)容存儲于區(qū)塊鏈中,利用區(qū)塊鏈不可篡改的特點(diǎn),提高了線上教育結(jié)業(yè)證書的公信力,促進(jìn)了線上教育的規(guī)?;l(fā)展.同時,提供的豐富查詢接口,為與教育相關(guān)的多方部門的加入提供了高效支持.
本文的研究還不夠成熟,還需要進(jìn)一步的研究和探討,針對目前系統(tǒng)中存在的一些問題,還有很多后續(xù)的工作需要進(jìn)行,主要有以下幾點(diǎn).
(1)本文系統(tǒng)的吞吐率較低,這是由Fabric中的共識耗時較長的原因?qū)е碌?,后續(xù)需要考慮如何提高共識效率以應(yīng)對更大規(guī)模化的線上教育.
(2)從課程版權(quán)保護(hù)的角度看,單純地記錄課程名稱、創(chuàng)建者等信息難以做到真正意義上的版權(quán)保護(hù),需要考慮如何將課程的完整內(nèi)容映射到區(qū)塊鏈中.
(3)當(dāng)系統(tǒng)中的某個節(jié)點(diǎn)宕機(jī)時,平臺恢復(fù)正常運(yùn)行的時間較長,下一步工作需考慮如何快速進(jìn)行故障后的數(shù)據(jù)同步.
(4)線上發(fā)放的結(jié)業(yè)證書需要權(quán)威機(jī)構(gòu)進(jìn)行信用背書,后續(xù)的工作將探索系統(tǒng)與權(quán)威機(jī)構(gòu)的協(xié)作模式,進(jìn)一步提高證書的可信度.