王梦丹
(深圳技术大学图书馆 广东深圳 518118)
工信部于2016 年颁布了《中国区块链技术和应用发展的白皮书》之后,区块链技术成为备受关注的新技术[1-2]。图书馆界对如何将区块链技术运用到智慧图书馆发展进程中也进行了探索。在数字资源日渐成为主体的时代,区块链技术为解决图书馆信息收集、存储安全、信息传递、隐私保护、知识产权保护等问题提供了新的技术支持思路[3]。大多数高校图书馆已经将大数据、物联网、RFID等信息技术应用到图书馆的智慧化建设当中,基本实现了基础业务的数字化、自动化,图书馆的服务效率也有所提高,但是距离图书馆智慧化的目标还有一定的距离。高校图书馆的信息化建设还处于独立的状态,资源采购、服务器存储等仍是各图书馆购置的重点内容。然而,各个图书馆的资源不互通、同质化的现象普遍存在。除此之外,智慧图书馆的应用势必会收集读者的信息,包括个人信息以及在图书馆平台上所产生的行为数据,因此数据的安全性和隐私保护也是图书馆智慧化过程中需要考虑到的重要问题。区块链技术的去中心化、共识机制、不可篡改等特点能够打破不同信息主体之间的信息壁垒,同时能保证信息之间的安全性。区块链技术为图书馆的智慧化建设提供了新的思路,是构建智慧图书馆的一项关键技术。
图书馆的核心业务是服务读者,将区块链技术应用到服务智慧化,可以推动优势资源的共建。高校图书馆的服务处于由被动到主动再转向精准服务的过程中,将区块链理念与图书馆智慧服务结合,区块链通过去信任达成共识、通过隐私安全达成可持续发展、通过智能合约达成智慧化是改变图书馆服务的应用手段[4]。很多学者探索将区块链技术具体应用到图书馆服务业务场景中,提出可将区块链技术运用到高校图书馆服务场景之一的网络教育和学习中[5-6]。将学校师生在图书馆资源平台上的如借阅信息、检索信息、阅读习惯等行为数据作为智慧学习系统的基础数据进行收集和分析,从中发现并预测出师生读者的阅读习惯、需求,建立起读者、图书馆之间可交互分享的学习平台,使图书馆的服务迈向精准化、智慧化,从而达到人人互联、书书互联,任何时间、地点与方式均可使用的智慧图书馆的目标。
本研究将选取图书馆现有的网络学习业务为背景,利用区块链技术探究智慧学习原型系统的架构设计。通过对区块链的三种模式的分析,同时结合图书馆信息交互模式,选取适合构建图书馆智慧学习原型系统的区块链技术。
区块链技术相当于数据库,本质是数据的存储服务。在存储的基础上利用安全技术对数据进行加密保障数据安全,通过P2P方式进行传输,是分布式网络、点对点传输、加密技术的结合体[7]。区块链技术采用分布式网络架构,每一个用户都可以参与数据库的记录,去除了传统数据存储服务的中心化特征。区块链主要分为私有链、联盟链和公有链三种模式。公有链是所有人都可以参与,私有链的参与者主要是个体使用者和私有链建立机构内部使用者,联盟链的参与者主要是组成联盟内的人员,具有准入机制,安全性较高,扩展性较强[4]。私有链仍具有中心化的特征,而公有链和联盟链具有无中心的特征。联盟链相比公有链无需大量算力和存储空间,且链上数据只对联盟内成员公开,具有去中心化的特征。综合考虑,联盟链更加适合图书馆领域的信息交互。
智能合约是基于可信的不可篡改的数据,本质上就是一段用某种计算编程语言编写的程序,可以自动化地执行一些预先定义好的规则和条款。智能合约可以运行在区块链系统提供的容器中,同时这段程序也可以在某种外在、内在条件的激活下自动运行。由于智能合约的代码是存放在并且运行在区块链系统容器中,结合区块链技术所使用的密码学原理,使得智能合约天然具有防篡改和防伪造的特性。智能合约产生的结果也是存储在区块中的,这样从源头、执行过程到结果全程都在区块链中执行,保证了智能合约的发布、执行、结果记录的真实性和唯一性。图书馆可利用区块链技术设计出符合本馆规则的智能合约系统,将产生的数据按照所设计的规则交给区块链技术进行处理[7]。
超级账本(Hyperledger)是Linux基金会为推动区块链科技而组成的联盟链,是推进区块链数字技术和交易验证的开源项目。Hyperledger是包含了多个子项目的项目组,目前有九个正式项目(Hyperledger Fabric,Hyperledger Explorer,Hyperledger Iroha,Hyperledger Burrow,Hyperledger Indy,Hyperledger Sawtooth,Hyperledger Composer,Hyperledger Cello,Hyperledger Quilt)。其中Hyperledger Fabric是Hyperledger的核心项目。Hyperledger Fabric本质上是一个分布式共享账本,它采用模块化架构,组件可根据需求灵活配置并且插入即用[8]。
Fabric架构经历了从v0.6到v1.x版本的演进,架构上进行了重大改进。在Fabric v1.x中将节点进行了划分,分为Peer节点(维护state和ledger)、排序节点(Orderer Peer,负责共识或者排序账本中的交易)和背书节点(Endorser Peer,负责执行交易和链码),而在Fabric v0.6中,只有一个Peer节点来完成上述所有的功能。目前所用的为Hyperledger Fabric的 1.0.0版,其系统逻辑架构如图1所示。
图1 Hyperledger Fabric整体架构
Fabric的总体架构核心部分由成员关系服务(Membership services)、区块链服务(Blockchain services)和链码服务(Chaincode Services)三部分组成, 加上安全和加密服务(Security and Crypto Services)贯穿于其他各个组件。应用端通过接口(APIs、SDKs、Events)调用身份(Identity)、账本(Ledger)、交易(Transactions)、智能合约(Smart Contract)等信息。
节点(Peer)是区块链的通信实体,是一个逻辑概念,不同类型的多个节点可以运行在同一个物理服务器上。Hyperledger Fabric包括客户端节点(Client Peer)、证书服务节点(CA Peer)、背书节点(Endorser Peer)、记账节点(Committer Peer)、主节点(Leader Peer)、锚节点(Anchor Peer)、排序节点(Orderer Peer)等,如图2所示。
图2 Fabric运行架构图
Fabric是一个联盟链,它的网络是不公开的,只有通过授权的用户可以利用会员服务系统(Membership Service Provider,MSP)记录认证网络中的所有节点。Fabric采用多账本设计,以通道(Channel)的概念呈现出来。一个通道可以包含多个成员,这些成员共享和维护同一个账本,一个成员也可以加入多个通道。通道之外的成员无法获取本通道中的信息。一个锚节点可以属于多个通道,因此能够维护多个账本,但是任何账本数据都不能从一个通道传递到另一个通道。
图3是基于区块链技术的智慧学习原型系统,该系统由存储层、验证层、区块链层以及平台层组成。其中存储层存放师生的学习行为数据,如图书借阅数据、在线学习记录、在线讲座参与数据等,这些数据构成师生的学习基础数据。验证层对学习基础数据进行验证签名并创建区块。区块链层为只读模式,将学习基础数据形成以加密为基础的哈希链表,形成图书馆支持的区块链,建立数据库和表单集合,同时根据智慧学习平台的要求进行智能合约的设计。最后,智慧学习平台层面向师生读者,实现师生的自主化学习。
图3 基于区块链技术的智慧学习原型系统
由于平台上的数据基于区块链技术收集,在一定程度上具有不可篡改、不可逆转的特性。区块链技术的引入,使得这些学习、阅读行为数据可进行跨区域调用,实现师生的分布式学习,并且这些数据将永久保存且不可修改。通过这些数据可全面了解师生的学习行为与阅读习惯,分析其潜在需求,从而策划相关培训或信息分析活动,完成定制化精准服务,实现图书馆的智慧化网络学习。
图4为基于区块链技术的智慧学习业务场景图,该系统以智慧学习平台、图书馆、读者组成区块链网络,形成一个共同维护的账本,将师生的学习行为如借阅历史、在线学习记录、学习心得、参与讲座记录等通过区块链技术进行保存与分享。同时师生可将学习行为通过智慧学习平台进行分享。
图4 基于区块链技术的智慧学习业务场景图
根据对智慧学习场景的业务分析,设计出如图5的智慧学习系统组织架构图。本文选择读者、图书馆和智慧学习平台三方共同组成一个联盟链,将读者、图书馆以及智慧学习平台分别抽象为Fabric中的一个组织。组织是Fabric中的重要概念,是具有承担数据信用责任的区块链系统参与方[9-10]。
3.2.1 域名选择
首先需要给图书馆智慧学习系统选择一个域名。由于Fabric是一个联盟链,同时要考虑到未来图书馆业务的不断发展,可能还会引入新的组织,因此在实际系统开发中需要使用已经备案的域名。本系统使用测试域名:libzhxx.com。在以后图书馆智慧学习系统的搭建中需要选择经过备案的域名。
3.2.2 系统组织成员结构
如图5智慧学习系统组织架构图所示,在智慧学习场景中有读者、图书馆和智慧学习平台三个组织,组织成员信息如表1所示。每个组织都有一个Fabric-CA中心、一个主节点Peer0和一个备份节点Peer1。其中,Fabric-CA中心负责证书管理;主节点有提交节点(Committer Peer)、领导节点(Leader Peer)、背书节点(Endorse Peer)、锚节点(Anchor Peer)四个角色;备份节点则用来防止系统单点故障,当主节点或者背书节点出现问题时临时替代它的功能。所有的组织共用一个具有负载均衡功能的Orderer节点群。智慧学习系统组织节点对应如表2所示。
表1 智慧学习系统组织成员信息表
表2 智慧学习系统组织节点对应表
图5 智慧学习系统组织架构图
因Fabric系统初始化时需要用到域名,并且域名是很多模块进行访问的指定路径,正常情况下需要使用备案的域名,本文设置libzhxx.com作为测试用的域名。智慧学习系统组织节点架构如表3所示。
表3 智慧学习系统组织节点架构表
Fabric系统中将建立一个通道即账本,通道名称为“zhxxchannel”,通道中包含“Rea1”、“Lib2”和“Org3”三个组织,即读者组织、图书馆组织和智慧学习平台,三个组织共同维护一个账本。之后根据图书馆业务的发展,可以在通道中加入新的组织,现有组织和新加入的组织共同维护账本;也可以创建新的通道,不同组织之间维护不同的账本。在进行Fabric系统部署时要注意域名、配置文件的路径、组织ID等信息的前后对应,如果信息前后对应不一致,会导致Fabric系统启动失败。
本文选取图书馆现有的网络学习业务为背景,利用区块链技术探究智慧学习原型系统的架构设计。通过对区块链的三种模式的分析,同时结合图书馆信息交互模式,选取超级账本联盟链的形式来构建图书馆智慧学习原型系统。从智慧学习业务场景中抽象出读者群体、智慧学习平台以及图书馆作为超级账本联盟链的三个主要组织,并根据Fabric的架构设计出基于区块链的智慧学习原型系统架构。随着区块链技术的引入,可将读者产生的行为数据进行跨区域调用,实现师生的分布式学习,并且这些数据将永久保存且不可修改。通过这些数据可全面了解师生的学习行为与阅读习惯,分析其潜在需求,从而策划相关培训或信息分析活动,完成定制化精准服务,最终实现图书馆的智慧化网络学习。
在研究本项目的过程中,笔者发现区块链技术作为当前一项信息科学技术,将其运用到图书馆智慧化的发展中也存在一定的问题。首先,大多数的馆员是文科背景,他们对图书馆的业务流程熟悉,但是在技术层面相对欠缺,因此图书馆的技术研发力量不足。其次,图书馆的资源建设内容是图书馆的核心工作,区块链技术的引进,去中心化的特点会导致许多图书馆的地位弱化。同时,将来在建成图书馆互联的情况下,各个图书馆的资源数据、读者的个人信息安全保障也是一个重要的问题。这些问题在图书馆智慧化进程中可以得到逐步解决,而区块链技术在图书馆智慧化建设中可以发挥出更大的作用。