基于区块链的校园内可追溯和高效图书共享系统研究

2023-12-30 02:01孙嘉池
无线互联科技 2023年20期
关键词:合约应用程序区块

孙嘉池

(长春理工大学,吉林 长春 130000)

0 引言

随着智能手机的普及,移动网络的扩大规模增强了人与人之间的交流和互动[1]。通过移动网络,许多传统社交活动可以得到转变,其中,最有趣和意义深远的转变之一是图书交换(也称为“图书共享”)。然而,线下共享模式要求人们在固定位置掌握目标图书,导致流通范围受限[2]。相比之下,网络的兴起为解决这一问题提供了新的机会。通过在移动网络上记录相关的共享图书信息,人们可以方便地查找图书的状态和位置。

尽管如此,图书交换仍然面临一些挑战,这些挑战超越了移动网络的能力范围。其中,最严重的问题是信任危机。另一个严重的障碍是图书的管理效率不高。在当前的移动图书交换系统中,流通过程并没有完全自动化,因为它仍然需要管理员审核大部分用户的请求,导致图书流通率低[3]。因此,有必要通过可追溯性和高效性来丰富传统的图书共享系统。

本文探索了将新兴的区块链技术融入传统的图书交换系统的潜力[4]。本研究通过融合分布式共识、P2P网络、基于密码学的账本和智能合约,结合区块链的不可变性、透明性和去中心化等优点,开发了一种基于区块链的校园内可追溯和高效图书共享系统。该系统由3个关键组件组成:用于图书交换的移动应用程序、用于处理请求的分布式服务器和区块链节点以及用于记录数据的底层存储设施。图书的核心信息(如状态和位置)被记录在区块链上。这样,图书的轨迹可以可靠地追溯,从而解决信任危机问题。与共享图书相关的所有活动都通过智能合约实现,促进了图书流通,提高了管理效率。

1 图书交换中的问题

随着互联网的普及,移动图书交换变得更加便捷,为读者之间共享图书提供了新途径。在读者在线注册并编码图书后,可以跟踪图书的后续流通。然而,图书交换仍然存在一些问题。图书交换的主要问题是用户不相信活动中的其他参与者(即信任危机),导致参与率低。图书交换的另一个问题是缺乏有效的监督和保护措施(即管理效率低)。读者是否向所有者报告图书的状态完全取决于他们的诚信,这很容易导致图书的丢失。在读者阅读共享图书时,他们常常忽略对图书的保护,导致归还的图书出现缺页和涂鸦等问题。

2 图书共享系统总体设计

通过对阻碍传统图书交换系统发展的关键问题进行上述分析,发现到区块链可以解决图书交换中的问题。在本节中,详细介绍了融合区块链技术的新型校园图书共享系统。

2.1 概述

基于大学生的阅读需求,本文设计了图书交换系统,有4个基本目标:(1)大学生可以轻松地共享图书,让闲置图书得到充分利用;(2)大学生可以直接借阅图书,无需任何中介,以实现图书高效的流通;(3)使图书流通信息透明,建立可信赖的图书交换;(4)流通信息的存储需要高度的可追溯性,以最小化图书丢失的可能性。

图书交换系统的架构如图1所示。应用层包括为终端用户设计的应用程序,便于用户操作系统。信任服务层提供图书交换的核心功能(如借阅图书),并连接其他2层。存储层安全地存储数据。系统的设计遵循自上而下的方法,按照应用层、信任服务层和存储层的顺序进行。本研究为开发人员设计了用户友好的中间件平台,以便轻松地操作区块链。该平台不仅为用户提供查看区块链状态的网页,还以Restful风格封装了许多API接口,使得去中心化应用的开发更加方便。

图1 基于区块链的校园内可追溯和高效图书共享系统框架

本研究在系统中的每个学校部署了一个图书共享系统的完整节点。学校服务器将聚合学生和教职员工的请求,并代表其在区块链上发送交易。

图书共享系统采用数据库作为系统的辅助存储。图书的状态存储在区块链上,而图书的固有信息记录在数据库中以加快搜索速度。此外,本研究不仅使用数据库作为缓存,以存储智能合约中的数据;还引入了一个分词器,可以从单词中提取词干,以扩大搜索结果的范围。

2.2 应用层

应用层位于图书交换系统的最上层,旨在为用户提供友好的界面参与图书交流。系统中有2类用户,因此分别设计了两种应用。Android应用程序是为希望参与图书交流的用户设计的,而网站则专门为学校管理员维护系统中的图书。系统还设计了一个中间件平台,为用户或开发人员提供灵活的工具,以监控区块链的状态。

2.2.1 Android应用程序

通过图形用户界面,用户可以详细查看书籍的信息,包括图像和简要介绍。此外,用户可以通过扫描书籍上的QR码借阅任何可用的书籍,并通过个人图书管理功能归还书籍。该应用程序还提供收藏功能,让用户可以将自己喜欢的书籍加入列表,并随时追踪书籍的状态。

2.2.2 网站

网站是为每个学校的管理员设计的,用于管理图书。一旦用户将一本书捐赠给学校,管理员将登录网站并输入该书的信息,生成包含唯一ID的QR码。管理员在网页上维护图书,包括在书籍信息发生变化时进行更新。

2.2.3 中间件平台

在传统的区块链应用程序开发过程中,开发人员需要通过命令行反复调用函数来观察智能合约的运行状态,这会显著降低开发效率。为了缓解这一问题,系统设计了一个中间件平台,使开发人员可以更友好地操作区块链。该平台封装了Restful风格的API接口,使Android应用程序开发更加便利。通过该接口,可以对交易数据进行编码和解码,并在多种设备上(包括网页、移动终端等)显示区块链上的数据细节。

2.3 信任服务层

信任服务层是该系统的核心模块,包括区块链网络和服务器。该层连接其他2层,为用户提供完整的服务。该层有3个主要组件:Web服务器、智能合约和区块链网络。

2.3.1 Web服务器

Web服务器能够解析HTTP协议。当接收到来自Android应用程序或网站的HTTP请求时,Web服务器会处理这些请求并返回HTTP响应,如发送HTML页面或JSON(JavaScript对象表示)数据。服务器将远程调用智能合约,为用户提供图书交流服务。此外,Web服务器还提供系统的基本功能,包括用户注册和登录,检查借阅图书是否到期。为了实现大量用户的负载均衡,将Web服务器分配给每个学校,并将用户的请求发送到相应学校的服务器。

2.3.2 智能合约

智能合约不需要人为干预,只要满足条件就能实现完全自动化。智能合约可以节省时间,降低成本。因此,本系统使用智能合约替代图书馆等中心化机构的角色,实现去中心化的图书分享。本研究所提议的智能合约提供许多功能,如会员注册、借书和还书。这些功能在区块链上是公开可用的,因此所有Web服务器都可以调用相应的函数来处理请求。

2.3.3 区块链网络

大学是一个相对封闭的环境,因此本研究倾向于采用联盟区块链,并使用实用拜占庭容错算法作为共识算法。然而,让每个学生在其智能手机上运行一个区块链全节点是不现实的。一方面,智能手机的计算能力远不及专用服务器,将全节点运行在智能手机上可能会占用大部分资源,导致其他正常功能无法运行。另一方面,实用拜占庭容错算法的时间复杂度随着参与者数量的增加,时间复杂度会显著增长。为了克服这些问题,系统利用每个学校维护一个全节点,作为其学生和教职员工的代表,向区块链网络发送交易。学校之间的节点可以就这些交易达成共识,实现图书交流。

2.4 存储层

存储层包括2个模块:区块链和数据库。通过存储层提供的接口,服务层可以轻松地检索和更新其中的数据。

2.4.1 区块链

本研究使用区块链来存储系统中的重要信息,如图书状态和用户联系信息。这些数据指示了书籍的位置以及如何与所有者联系。通过区块链技术,这些数据由所在学校维护,每个学校都有一份副本,避免了单点故障。这些数据在学校之间通过共识协议保持一致。一旦数据记录在区块链上,它就是不可变的。这使得用户可以在系统中彼此信任,无需像图书馆那样依赖第三方。

2.4.2 数据库

区块链的本质是一种分布式账本技术,可以利用它来存储系统中的图书数据。然而,由于频繁检索数据(如标题、图片)时区块链的性能较差,这成为系统的瓶颈。为了加速性能,系统使用了关系型数据库来存储图书的基本信息和部分用户信息。使用数据库的另一个原因是区块链上存储的开销较大,存储的信息越多,智能合约的消耗也会越多。从安全性的角度来看,图书的基本信息是其固有属性,对其进行篡改是没有意义的,因此不需要将这些数据存储在安全环境中。

3 图书交换系统实现

3.1 Web服务器

使用Apache Tomcat作为Web服务器,用于接收来自应用程序级别(即Android应用程序和网站)的HTTP请求。当用户通过Android应用程序扫描图书上的二维码后,Android应用程序将向相应的Web服务器发送查询请求。Web服务器将通过DAO(用于访问数据库的接口)从数据库获取图书的基本数据,再通过调用智能合约从FISCO BCOS区块链中获取位置信息。如果图书可用,用户在Web服务器更新相关信息后可以借阅图书并在区块链网络上达成共识。

3.2 分词器

分词器广泛用于搜索引擎和信息检索系统,用于从单词中提取词干,从而扩大搜索术语的范围以获得更多的搜索结果。基于规则的传统分词器可以优雅地处理常见单词,且误差可以忽略不计。然而,大学生的闲置图书大多是专业的,基于规则的分词器无法处理专业词汇和特殊符号(如C++和C#)。为了克服这个缺点,本研究基于Porter Stemming算法实现了一种新的图书搜索分词器。

3.3 智能合约

智能合约负责记录和更新学生和图书的信息,并为用户提供借阅和归还图书的功能。当Web服务器接收到图书交换的请求时,它将调用合约来添加或更新学生和图书的信息,如用户注册或借阅图书。

3.4 权限管理

系统中有3个角色,即超级管理员、学校和学生。

3.4.1 超级管理员

超级管理员由大多数节点或可能拥有悠久声誉的组织(如学校的部门)选举产生。超级管理员拥有所有权限,如验证组织的身份并向不同组织授予权限。他们还需要维护和升级系统以正常运行。

3.4.2 学校

学校负责调用并执行智能合约,将图书或用户信息存储在区块链上。当一本图书从一个学生转移到另一个学生时,学校需要调用合约来更新区块链上的图书信息。

3.4.3 学生

学生是图书交换活动的主要参与者。然而,他们不能直接访问和更新区块链中的数据,需要通过Android应用程序向对应的Web服务器发送请求。Web服务器将以学校的身份代表学生在区块链上发送交易。

4 结语

本文介绍了一个基于区块链的校园内图书可追溯和高效共享系统,即图书交换系统。该系统旨在解决传统图书交换系统中的信任危机和管理效率低的问题。研究结果表明,通过区块链技术和智能合约的融合,图书交换系统实现了图书的去中心化管理和可追溯性。每本图书的信息都被记录在区块链上,保证了数据的不可篡改性和透明性。同时,智能合约使得图书的借阅和归还过程自动化,提高了图书交换的效率。系统中的权限管理确保了合理的权限划分,保护了用户的隐私和数据安全。

为了进一步完善图书交换系统,后续需要对系统进行更多的实地测试和用户反馈收集,以了解用户的真实需求和反馈。同时,探索更先进的区块链技术和共识算法,以提高系统的性能和可扩展性。此外,将图书交换系统与其他教育资源共享平台和图书馆系统进行整合,实现更广泛的资源共享和利用,将是未来的发展方向。

猜你喜欢
合约应用程序区块
区块链:一个改变未来的幽灵
区块链:主要角色和衍生应用
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
区块链+媒体业的N种可能
读懂区块链
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序