孫嘉池
(長春理工大學(xué),吉林 長春 130000)
隨著智能手機的普及,移動網(wǎng)絡(luò)的擴(kuò)大規(guī)模增強了人與人之間的交流和互動[1]。通過移動網(wǎng)絡(luò),許多傳統(tǒng)社交活動可以得到轉(zhuǎn)變,其中,最有趣和意義深遠(yuǎn)的轉(zhuǎn)變之一是圖書交換(也稱為“圖書共享”)。然而,線下共享模式要求人們在固定位置掌握目標(biāo)圖書,導(dǎo)致流通范圍受限[2]。相比之下,網(wǎng)絡(luò)的興起為解決這一問題提供了新的機會。通過在移動網(wǎng)絡(luò)上記錄相關(guān)的共享圖書信息,人們可以方便地查找圖書的狀態(tài)和位置。
盡管如此,圖書交換仍然面臨一些挑戰(zhàn),這些挑戰(zhàn)超越了移動網(wǎng)絡(luò)的能力范圍。其中,最嚴(yán)重的問題是信任危機。另一個嚴(yán)重的障礙是圖書的管理效率不高。在當(dāng)前的移動圖書交換系統(tǒng)中,流通過程并沒有完全自動化,因為它仍然需要管理員審核大部分用戶的請求,導(dǎo)致圖書流通率低[3]。因此,有必要通過可追溯性和高效性來豐富傳統(tǒng)的圖書共享系統(tǒng)。
本文探索了將新興的區(qū)塊鏈技術(shù)融入傳統(tǒng)的圖書交換系統(tǒng)的潛力[4]。本研究通過融合分布式共識、P2P網(wǎng)絡(luò)、基于密碼學(xué)的賬本和智能合約,結(jié)合區(qū)塊鏈的不可變性、透明性和去中心化等優(yōu)點,開發(fā)了一種基于區(qū)塊鏈的校園內(nèi)可追溯和高效圖書共享系統(tǒng)。該系統(tǒng)由3個關(guān)鍵組件組成:用于圖書交換的移動應(yīng)用程序、用于處理請求的分布式服務(wù)器和區(qū)塊鏈節(jié)點以及用于記錄數(shù)據(jù)的底層存儲設(shè)施。圖書的核心信息(如狀態(tài)和位置)被記錄在區(qū)塊鏈上。這樣,圖書的軌跡可以可靠地追溯,從而解決信任危機問題。與共享圖書相關(guān)的所有活動都通過智能合約實現(xiàn),促進(jìn)了圖書流通,提高了管理效率。
隨著互聯(lián)網(wǎng)的普及,移動圖書交換變得更加便捷,為讀者之間共享圖書提供了新途徑。在讀者在線注冊并編碼圖書后,可以跟蹤圖書的后續(xù)流通。然而,圖書交換仍然存在一些問題。圖書交換的主要問題是用戶不相信活動中的其他參與者(即信任危機),導(dǎo)致參與率低。圖書交換的另一個問題是缺乏有效的監(jiān)督和保護(hù)措施(即管理效率低)。讀者是否向所有者報告圖書的狀態(tài)完全取決于他們的誠信,這很容易導(dǎo)致圖書的丟失。在讀者閱讀共享圖書時,他們常常忽略對圖書的保護(hù),導(dǎo)致歸還的圖書出現(xiàn)缺頁和涂鴉等問題。
通過對阻礙傳統(tǒng)圖書交換系統(tǒng)發(fā)展的關(guān)鍵問題進(jìn)行上述分析,發(fā)現(xiàn)到區(qū)塊鏈可以解決圖書交換中的問題。在本節(jié)中,詳細(xì)介紹了融合區(qū)塊鏈技術(shù)的新型校園圖書共享系統(tǒng)。
基于大學(xué)生的閱讀需求,本文設(shè)計了圖書交換系統(tǒng),有4個基本目標(biāo):(1)大學(xué)生可以輕松地共享圖書,讓閑置圖書得到充分利用;(2)大學(xué)生可以直接借閱圖書,無需任何中介,以實現(xiàn)圖書高效的流通;(3)使圖書流通信息透明,建立可信賴的圖書交換;(4)流通信息的存儲需要高度的可追溯性,以最小化圖書丟失的可能性。
圖書交換系統(tǒng)的架構(gòu)如圖1所示。應(yīng)用層包括為終端用戶設(shè)計的應(yīng)用程序,便于用戶操作系統(tǒng)。信任服務(wù)層提供圖書交換的核心功能(如借閱圖書),并連接其他2層。存儲層安全地存儲數(shù)據(jù)。系統(tǒng)的設(shè)計遵循自上而下的方法,按照應(yīng)用層、信任服務(wù)層和存儲層的順序進(jìn)行。本研究為開發(fā)人員設(shè)計了用戶友好的中間件平臺,以便輕松地操作區(qū)塊鏈。該平臺不僅為用戶提供查看區(qū)塊鏈狀態(tài)的網(wǎng)頁,還以Restful風(fēng)格封裝了許多API接口,使得去中心化應(yīng)用的開發(fā)更加方便。
圖1 基于區(qū)塊鏈的校園內(nèi)可追溯和高效圖書共享系統(tǒng)框架
本研究在系統(tǒng)中的每個學(xué)校部署了一個圖書共享系統(tǒng)的完整節(jié)點。學(xué)校服務(wù)器將聚合學(xué)生和教職員工的請求,并代表其在區(qū)塊鏈上發(fā)送交易。
圖書共享系統(tǒng)采用數(shù)據(jù)庫作為系統(tǒng)的輔助存儲。圖書的狀態(tài)存儲在區(qū)塊鏈上,而圖書的固有信息記錄在數(shù)據(jù)庫中以加快搜索速度。此外,本研究不僅使用數(shù)據(jù)庫作為緩存,以存儲智能合約中的數(shù)據(jù);還引入了一個分詞器,可以從單詞中提取詞干,以擴(kuò)大搜索結(jié)果的范圍。
應(yīng)用層位于圖書交換系統(tǒng)的最上層,旨在為用戶提供友好的界面參與圖書交流。系統(tǒng)中有2類用戶,因此分別設(shè)計了兩種應(yīng)用。Android應(yīng)用程序是為希望參與圖書交流的用戶設(shè)計的,而網(wǎng)站則專門為學(xué)校管理員維護(hù)系統(tǒng)中的圖書。系統(tǒng)還設(shè)計了一個中間件平臺,為用戶或開發(fā)人員提供靈活的工具,以監(jiān)控區(qū)塊鏈的狀態(tài)。
2.2.1 Android應(yīng)用程序
通過圖形用戶界面,用戶可以詳細(xì)查看書籍的信息,包括圖像和簡要介紹。此外,用戶可以通過掃描書籍上的QR碼借閱任何可用的書籍,并通過個人圖書管理功能歸還書籍。該應(yīng)用程序還提供收藏功能,讓用戶可以將自己喜歡的書籍加入列表,并隨時追蹤書籍的狀態(tài)。
2.2.2 網(wǎng)站
網(wǎng)站是為每個學(xué)校的管理員設(shè)計的,用于管理圖書。一旦用戶將一本書捐贈給學(xué)校,管理員將登錄網(wǎng)站并輸入該書的信息,生成包含唯一ID的QR碼。管理員在網(wǎng)頁上維護(hù)圖書,包括在書籍信息發(fā)生變化時進(jìn)行更新。
2.2.3 中間件平臺
在傳統(tǒng)的區(qū)塊鏈應(yīng)用程序開發(fā)過程中,開發(fā)人員需要通過命令行反復(fù)調(diào)用函數(shù)來觀察智能合約的運行狀態(tài),這會顯著降低開發(fā)效率。為了緩解這一問題,系統(tǒng)設(shè)計了一個中間件平臺,使開發(fā)人員可以更友好地操作區(qū)塊鏈。該平臺封裝了Restful風(fēng)格的API接口,使Android應(yīng)用程序開發(fā)更加便利。通過該接口,可以對交易數(shù)據(jù)進(jìn)行編碼和解碼,并在多種設(shè)備上(包括網(wǎng)頁、移動終端等)顯示區(qū)塊鏈上的數(shù)據(jù)細(xì)節(jié)。
信任服務(wù)層是該系統(tǒng)的核心模塊,包括區(qū)塊鏈網(wǎng)絡(luò)和服務(wù)器。該層連接其他2層,為用戶提供完整的服務(wù)。該層有3個主要組件:Web服務(wù)器、智能合約和區(qū)塊鏈網(wǎng)絡(luò)。
2.3.1 Web服務(wù)器
Web服務(wù)器能夠解析HTTP協(xié)議。當(dāng)接收到來自Android應(yīng)用程序或網(wǎng)站的HTTP請求時,Web服務(wù)器會處理這些請求并返回HTTP響應(yīng),如發(fā)送HTML頁面或JSON(JavaScript對象表示)數(shù)據(jù)。服務(wù)器將遠(yuǎn)程調(diào)用智能合約,為用戶提供圖書交流服務(wù)。此外,Web服務(wù)器還提供系統(tǒng)的基本功能,包括用戶注冊和登錄,檢查借閱圖書是否到期。為了實現(xiàn)大量用戶的負(fù)載均衡,將Web服務(wù)器分配給每個學(xué)校,并將用戶的請求發(fā)送到相應(yīng)學(xué)校的服務(wù)器。
2.3.2 智能合約
智能合約不需要人為干預(yù),只要滿足條件就能實現(xiàn)完全自動化。智能合約可以節(jié)省時間,降低成本。因此,本系統(tǒng)使用智能合約替代圖書館等中心化機構(gòu)的角色,實現(xiàn)去中心化的圖書分享。本研究所提議的智能合約提供許多功能,如會員注冊、借書和還書。這些功能在區(qū)塊鏈上是公開可用的,因此所有Web服務(wù)器都可以調(diào)用相應(yīng)的函數(shù)來處理請求。
2.3.3 區(qū)塊鏈網(wǎng)絡(luò)
大學(xué)是一個相對封閉的環(huán)境,因此本研究傾向于采用聯(lián)盟區(qū)塊鏈,并使用實用拜占庭容錯算法作為共識算法。然而,讓每個學(xué)生在其智能手機上運行一個區(qū)塊鏈全節(jié)點是不現(xiàn)實的。一方面,智能手機的計算能力遠(yuǎn)不及專用服務(wù)器,將全節(jié)點運行在智能手機上可能會占用大部分資源,導(dǎo)致其他正常功能無法運行。另一方面,實用拜占庭容錯算法的時間復(fù)雜度隨著參與者數(shù)量的增加,時間復(fù)雜度會顯著增長。為了克服這些問題,系統(tǒng)利用每個學(xué)校維護(hù)一個全節(jié)點,作為其學(xué)生和教職員工的代表,向區(qū)塊鏈網(wǎng)絡(luò)發(fā)送交易。學(xué)校之間的節(jié)點可以就這些交易達(dá)成共識,實現(xiàn)圖書交流。
存儲層包括2個模塊:區(qū)塊鏈和數(shù)據(jù)庫。通過存儲層提供的接口,服務(wù)層可以輕松地檢索和更新其中的數(shù)據(jù)。
2.4.1 區(qū)塊鏈
本研究使用區(qū)塊鏈來存儲系統(tǒng)中的重要信息,如圖書狀態(tài)和用戶聯(lián)系信息。這些數(shù)據(jù)指示了書籍的位置以及如何與所有者聯(lián)系。通過區(qū)塊鏈技術(shù),這些數(shù)據(jù)由所在學(xué)校維護(hù),每個學(xué)校都有一份副本,避免了單點故障。這些數(shù)據(jù)在學(xué)校之間通過共識協(xié)議保持一致。一旦數(shù)據(jù)記錄在區(qū)塊鏈上,它就是不可變的。這使得用戶可以在系統(tǒng)中彼此信任,無需像圖書館那樣依賴第三方。
2.4.2 數(shù)據(jù)庫
區(qū)塊鏈的本質(zhì)是一種分布式賬本技術(shù),可以利用它來存儲系統(tǒng)中的圖書數(shù)據(jù)。然而,由于頻繁檢索數(shù)據(jù)(如標(biāo)題、圖片)時區(qū)塊鏈的性能較差,這成為系統(tǒng)的瓶頸。為了加速性能,系統(tǒng)使用了關(guān)系型數(shù)據(jù)庫來存儲圖書的基本信息和部分用戶信息。使用數(shù)據(jù)庫的另一個原因是區(qū)塊鏈上存儲的開銷較大,存儲的信息越多,智能合約的消耗也會越多。從安全性的角度來看,圖書的基本信息是其固有屬性,對其進(jìn)行篡改是沒有意義的,因此不需要將這些數(shù)據(jù)存儲在安全環(huán)境中。
使用Apache Tomcat作為Web服務(wù)器,用于接收來自應(yīng)用程序級別(即Android應(yīng)用程序和網(wǎng)站)的HTTP請求。當(dāng)用戶通過Android應(yīng)用程序掃描圖書上的二維碼后,Android應(yīng)用程序?qū)⑾蛳鄳?yīng)的Web服務(wù)器發(fā)送查詢請求。Web服務(wù)器將通過DAO(用于訪問數(shù)據(jù)庫的接口)從數(shù)據(jù)庫獲取圖書的基本數(shù)據(jù),再通過調(diào)用智能合約從FISCO BCOS區(qū)塊鏈中獲取位置信息。如果圖書可用,用戶在Web服務(wù)器更新相關(guān)信息后可以借閱圖書并在區(qū)塊鏈網(wǎng)絡(luò)上達(dá)成共識。
分詞器廣泛用于搜索引擎和信息檢索系統(tǒng),用于從單詞中提取詞干,從而擴(kuò)大搜索術(shù)語的范圍以獲得更多的搜索結(jié)果?;谝?guī)則的傳統(tǒng)分詞器可以優(yōu)雅地處理常見單詞,且誤差可以忽略不計。然而,大學(xué)生的閑置圖書大多是專業(yè)的,基于規(guī)則的分詞器無法處理專業(yè)詞匯和特殊符號(如C++和C#)。為了克服這個缺點,本研究基于Porter Stemming算法實現(xiàn)了一種新的圖書搜索分詞器。
智能合約負(fù)責(zé)記錄和更新學(xué)生和圖書的信息,并為用戶提供借閱和歸還圖書的功能。當(dāng)Web服務(wù)器接收到圖書交換的請求時,它將調(diào)用合約來添加或更新學(xué)生和圖書的信息,如用戶注冊或借閱圖書。
系統(tǒng)中有3個角色,即超級管理員、學(xué)校和學(xué)生。
3.4.1 超級管理員
超級管理員由大多數(shù)節(jié)點或可能擁有悠久聲譽的組織(如學(xué)校的部門)選舉產(chǎn)生。超級管理員擁有所有權(quán)限,如驗證組織的身份并向不同組織授予權(quán)限。他們還需要維護(hù)和升級系統(tǒng)以正常運行。
3.4.2 學(xué)校
學(xué)校負(fù)責(zé)調(diào)用并執(zhí)行智能合約,將圖書或用戶信息存儲在區(qū)塊鏈上。當(dāng)一本圖書從一個學(xué)生轉(zhuǎn)移到另一個學(xué)生時,學(xué)校需要調(diào)用合約來更新區(qū)塊鏈上的圖書信息。
3.4.3 學(xué)生
學(xué)生是圖書交換活動的主要參與者。然而,他們不能直接訪問和更新區(qū)塊鏈中的數(shù)據(jù),需要通過Android應(yīng)用程序向?qū)?yīng)的Web服務(wù)器發(fā)送請求。Web服務(wù)器將以學(xué)校的身份代表學(xué)生在區(qū)塊鏈上發(fā)送交易。
本文介紹了一個基于區(qū)塊鏈的校園內(nèi)圖書可追溯和高效共享系統(tǒng),即圖書交換系統(tǒng)。該系統(tǒng)旨在解決傳統(tǒng)圖書交換系統(tǒng)中的信任危機和管理效率低的問題。研究結(jié)果表明,通過區(qū)塊鏈技術(shù)和智能合約的融合,圖書交換系統(tǒng)實現(xiàn)了圖書的去中心化管理和可追溯性。每本圖書的信息都被記錄在區(qū)塊鏈上,保證了數(shù)據(jù)的不可篡改性和透明性。同時,智能合約使得圖書的借閱和歸還過程自動化,提高了圖書交換的效率。系統(tǒng)中的權(quán)限管理確保了合理的權(quán)限劃分,保護(hù)了用戶的隱私和數(shù)據(jù)安全。
為了進(jìn)一步完善圖書交換系統(tǒng),后續(xù)需要對系統(tǒng)進(jìn)行更多的實地測試和用戶反饋收集,以了解用戶的真實需求和反饋。同時,探索更先進(jìn)的區(qū)塊鏈技術(shù)和共識算法,以提高系統(tǒng)的性能和可擴(kuò)展性。此外,將圖書交換系統(tǒng)與其他教育資源共享平臺和圖書館系統(tǒng)進(jìn)行整合,實現(xiàn)更廣泛的資源共享和利用,將是未來的發(fā)展方向。