孙 凤
(淄博市图书馆 山东淄博 255000)
一直以来,公共图书馆之间由于地域发展差异和缺乏有效信息互动机制等原因存在着文化资源配置不均和共享流通不畅等问题,如北上广、江浙等发达地区的文献馆藏和文化活动量远远高于全国其他地区,并且同一地区不同级别图书馆的馆藏配置和共享渠道也不尽完善[1],这就使得大部分欠发达地区的公共图书馆向社会公众提供的文化服务层次和文献质量水平都相对落后,整体的文化创新意识也相对淡薄,从而难以满足信息化技术不断发展条件下社会公众信息需求量的日益激增和需求内容的多元、高端、核心化。
为了打破图书馆界信息孤岛现象,提高公共图书馆文化产业传播的整体活力,公共图书馆行业先后成立了以上海图书馆、首都图书馆为首的区域资源共享平台,以国家图书馆为首的国内外文献传递和馆际互借平台,以及后来由多个省级公共图书馆建立的“联合参考咨询网”等[2],使得文献资源的共享服务逐步从单个地域辐射到全国大部分地区,参与的成员馆用户通过这些平台可以免费获得相关共享资源。这样虽然在一定程度上实现了成员馆之间的资源互补,缩小了资源配置方面的差距,提高了图书馆资源收集、处理和响应的速度,但同时这些共享平台因架构体系扩展兼容性等问题,使得平台相关服务更新升级缓慢,而有些公共图书馆因为缺乏技术指导或设备配置问题难以与平台标准数据规范接口匹配。除此之外,文献资源建设和共享过程中存在的信息数据安全、知识产权纠纷和时效性、物流费用结算等问题也使其资源共享范围和效率受到限制[3]。
当下的区块链技术可以对传统资源共享中存在的问题有效地进行改进和突破。一方面现有区块链系统可以提供一键安装来方便搭链,且其分布式对等架构和共识机制可以确保参与机构上传信息和身份行为的公信力;另一方面上传资源加盖时间戳和非对称加密后可以方便知识产权认定和提高数据隐私安全,并且智能合约的设计应用可以使上传资源的使用范围、使用周期和交易结算的执行在无人为干预的情况下自动完成,从而大大提高了资源流通的效率和安全性,降低了使用运行成本。除此之外,区块链技术在节点数量、加密算法、存储结构和组件组装适配上都有较好的扩展和灵活性,方便系统的进一步优化升级。同样地,引入区块链技术的公共图书馆资源共享平台也可以先从单个区域进行联盟试点,试点过程中根据用户的使用反馈和运行测试情况来不断优化平台的架构组成,提高参与机构的资源组织管理和信息验证水平。在此基础上,区域运用实践相对成熟后再逐步推广到全国范围,让更多的社会公众可以就近、方便地享受全国范围的文化资源和服务。
现有的区块链技术可以让公共图书馆以联盟链的形式在多方面实现多种资源的建设和共享。其中联盟链是一种相对于公有链和私有链而言的注册许可型区块链,仅限联盟成员参与(需要知道节点的数量和其对应的公钥),且链上的读写权和参与记账权要按联盟规则来制定,联盟链的整个网络由成员机构共同维护,网络接入基本通过成员机构的网关节点接入,共识过程则是由预选节点控制,节点之间可以实现资源与信息的共享。目前,比较有代表性的联盟链框架平台有Hyperledger Fabric、FISCO BCOS和CITA等。Hyperledger Fabric提供的是一种独特的可伸缩、可扩展架构,结构高度模块化,使诸如共识协议和会员服务等组件可即插即用,并且支持通用编程语言编写智能合约,支持权限管理和多链结构,可以适应不同的行业使用。FISCO BCOS和CITA在智能合约上支持的是EVM和预编译合约,并分别引入群组和侧链技术,同时支持并行化交易,虽然在链间通信上仍然有可优化空间,但在节点扩展性和安全性上还是有较强优势。目前,联盟链在金融、物流、制造、公益等行业都已经有所应用,公共图书馆通过联盟链的建立也可以更好地实现多项服务,具体包括以下几个方面。
由于区块链的分布式架构和可追溯性的特点可以解决图书馆数据共享时的安全、成本等问题,且在链内各馆节点上的资源信息和用户行为都有共识机制互相监督[4],出现问题节点会进行失效处理,所以,公开、透明的体系使各馆注册节点经P2P端口网络准入后可以按照链内的管理规则上传各自拥有的数据库资源,包括本馆具有地方特色的数字资源。例如,国家图书馆拥有的各类中外文献数据库资源(知网、维普、数字博看、国图公开课、ProQuest、EBOSCO、Springer Link等)、特色馆藏数字资源(晚清及民国中外期刊、甲骨、石刻拓片影像、敦煌写卷等)都可通过与channel端口连接的控制台或客户端SDK分批分类别上链,链内各馆成员则根据自身节点权限和需求进行下载。这样一方面可以避免以往同样数字资源的重复购买,另一方面对于一些成本较高的数据库,各馆可以从分享的节点上根据智能合约线上协议支付较低的费用直接获取使用权限,不必在其他授信组织提供信用支持的条件下就可以进行,改变了传统依赖中心服务器的版权许可机制,并且数字资源加盖的时间戳和非对称加密使其对数字版权的追踪和保护也更加方便。
除此之外,公共图书馆可以利用区块链去中心化的环境和智能合约技术直接与知识产权所有人进行沟通并购买资源[5],绕过了相关中介,解决了以往“打包式”“捆绑式”销售的问题,节约了成本,并且有利于资源结构的合理化。同时,公共图书馆还可结合云计算的PAAS平台应用将各项数字资源进行整合,直接形成自身的数据库在联盟链节点内上传,这样可以形成多元化市场竞争以减少垄断。由瑞士DECENT基金会创立的DECENT GO就是运用区块链技术开发的一款开源非营利数字内容分发平台,对用户免费开放,致力于重塑在线出版业的数字内容分发[6]。而且,区块链的分布式存储模式不仅可以降低各馆数字资源的建设和维护成本,还能最大限度地避免网络攻击或意外事故造成的数字资源丢失或篡改。
目前,纸质资源依然是公共图书馆建设的主要资源,纸质图书的采购和借阅仍然有需要改进和提高的地方。一直以来,不同公共图书馆的纸质资源资源建设因各馆差异和文化倾向导致各有不同,如何更好地丰富馆藏资源、合理配置馆藏类别,一直是图书采购中需要权衡的问题。而通过图书馆联盟链的建立,各馆可以上传分享各自的馆藏采购数据,了解各馆馆藏设置情况,取长补短,分析自身馆藏建设存在的不足以及需要丰富的馆藏类别和不同专业的好书,包括一些地方特色优质文化图书,这样不仅能快速便捷地丰富馆藏,而且通过内部交流还提高了图书采购人员在不同专业书籍选择方面的知识素养,对日后图书采购质量的提升有所帮助。除此之外,供货商代表也可以加入联盟链内,定期将各出版社出版的新书进行分类推荐,方便各馆直接参考选购。
受地理条件限制,纸质图书目前只能在同城之间实现一定程度的借阅流通,而区块链技术会进一步提高一定地理范围内图书借阅的流通性。用户可用借阅证通过注册馆的端口在链内搜索同城的馆藏资源,并将自己的公钥在链内发布,处于可借状态的图书,用户可向所在馆发出申请,而处于在借状态的图书,用户可直接向在借者预约,申请通过或预约成功后,所在馆和在借者将经过数字签名的加密借阅码发给用户,该借阅码可与所借图书的RFID标签进行识别,用户解密后可用借阅码直接在网上完成借阅,在规定期限内到指定位置直接拿走图书即可。对于用户申请的审核、借阅规则实行和发送借阅码等各馆可以通过建立智能合约借阅管理系统的方式实现,在借阅过程中,除了用户借阅证外,还有私钥公钥的加密,这样既可以防止用户借阅证丢失被他人冒用,又可以追溯整个借阅、归还、超期、损坏赔偿流程,图书馆只需作好监管和后期维护工作就可以,这样在提高图书借阅流通便捷性的同时也提高了安全性。
2018年,360平台发布了基于区块链的安全共享云计划,平台将闲置的带宽资源、计算资源和磁盘空间,利用360共享云平台供给有需要的人使用。用户可以通过贡献带宽流量和内存空间获得360云钻奖励[7]。同样地,用户一直以来都是图书馆提供服务的对象,却较少参与到图书馆的共享和建设中来,而联盟链的建立可以让用户创建自己的哈希地址作为账户,通过所在图书馆节点把自己的读书心得、学习资料和方法、数据资源使用体验、服务改进建议等分门别类地上传分享出来。读书心得和数据资源使用体验可以给其他用户起到推荐引导的作用,而学习资料和方法可以为不同专业的学习者提供交流帮助,服务改进建议则有利于图书馆接受用户反馈意见不断提升服务。对于用户分享的内容,可根据其他节点的下载和浏览量进行排名,对于排名靠前的用户可给予一定的奖励,且整个共享、奖励过程都可记录上链,确保了公开透明。除此之外,用户在借阅、办证、资源使用和参加活动中形成的大量数据,可以利用数据分析工具(如Excel、PowerBI、QlikView、ChartBlocks等)进行导入整合从中得出不同群体的需求、偏好、借阅规律和时间高峰等,总结后可分享到链内供各馆参考和利用。而且区块链的匿名性和可追溯性,可以形成较好的用户共享信用系统,并保护用户的隐私和知识产权。
在区块链技术环境下,公共图书馆资源共享联盟中各类资源的共享利用主要会面临数据膨胀、节点和账户管理、数据可信存储限制以及交易审计缺失等问题。数据膨胀主要是由于资源共享和应用过程中形成的区块、交易和智能合约运行结果所占空间的增长,造成的系统交易执行效率低和运维成本增加等问题。节点和账户管理主要是指各馆节点准入配置,以及对不同账户人员各种级别功能读写操作权限的设置不健全,造成的交易管理不善和系统稳定性降低的问题。数据可信存储限制是指各类资源上传共享后难以支持多种数据库后端存储,同时存储结构的本地化限制使得业务扩展难且系统性能下降等问题。交易审计缺失是指链内由于缺乏监管和审计使各方在链上共享和流转数据时不遵守委员会制定的规章,造成链的计算资源和存储资源被某些机构滥用的情况。对于这些问题的解决需要从数据治理和链监督管理方面进行,其具体内容如下。
数据治理主要指在共识算法选择、交易并行执行、存储模式优化和数据仓库组件等方面来改善公共图书馆资源共享中数据膨胀和数据存储模式限制的问题。
共识算法是分布式协作能力的基础,从根本上限制了链上数据的交易处理和扩展能力,所以联盟链的共识算法在保证一定程度的节点可信度上,更需要执行效率和最终确定性,其中容错类算法PBFT和Raft在该方面具有较大优势。PBFT属于拜占庭类容错算法,可容忍不超过三分之一的故障节点和作恶节点,并且通过CITA-BFT算法的改进,经提议(Proposal)预处理后使准备、确认和交易处理阶段实现并行进行,这样既避免了最后一轮leader节点广播的过程,又可以采用致密区块(CompactBlock)技术来压缩共识区块的大小,减少了数据增长和存储压力,从而提高P2P网络带宽利用率,这样对于高成本大容量的数字资源的上传分享更有效率。同时PBFT允许强监督节点参与,具备权限分级能力,对于用户上传个人资料和馆际互借,以及高成本数字资源的上传都能起到较好的安全和防护作用。而Raft算法,通过选举一个leader并赋予其完全的管理记账权力来简化了记账操作流程,可容忍一半故障节点,但不容作恶节点,交易处理速度更快,更使用于节点安全系度较高的馆与馆之间采购数据共享和供货商书目荐购。通过这两种算法的插件化切换,在确保交易状态一致性的基础上可以更好地维护系统运行。
交易并行执行是指将原有的区块串行交易处理改为并行处理,这样在共享资源需求的爆发期可以提高交易响应速度和吞吐量。对于交易并行执行过程中的安全性和一致性问题,可以在Precompiled智能合约框架下根据自定义互斥变量构建DAG图进行,由于Precompiled合约实行固定地址且数据与合约分离,使得通过修改底层代码即可实现合约升级,且使用C++编写合约的底层执行性能更高,大大提高了DAG并行过程中的安全性和一致性,进一步优化了交易执行效率。
存储模式优化是指在分布式存储模式基础上,通过对数据表结构中各元素映射关系的抽象化设计,使存储模式可以对应到关系型数据库的表,又可以拆分使用KV数据库,这样易于实现存储引擎插拔化,从而可支持链内各类共享资源的LevelDB、RocksDB、MySQL等多种后端存储,且CRUD数据、区块数据默认情况下无需配置都保存在分布式模式中,使得数据在简便快速扩容的同时,计算与数据隔离,大大优化了系统存储性能,提高了资源共享空间。
除了存储模式的优化外,还可以通过低成本、低风险的数据仓库组件来解决数据激增和大量交易冷数据空间浪费问题。数据仓库组件通过解析节点的binlog日志,可以在节点外第三方数据库生成链上数据的全量备份,随后节点运维人员可对链上数据作划分裁剪,将节点上不常用数据删除,特别是上传资源存证这样关联性较弱的业务,可仅保留近期数据,从而达到节省空间、提升性能的效果。对于裁剪后缺失的冷数据,节点会通过amdb从全量备份读取。除此之外,仓库组件在读取某节点日志后,会进行对比校验和区块链校验,以防出现节点账本信息被损害、被篡改、共识系统异常等情况。
在公共图书馆联盟链的资源共享应用中,有准入许可、交易多样化、隐私安全及高稳定性的要求,因此,在应用过程中需要从节点、账户和交易审计等方面强调“权限”及“管理”的理念。
节点管理一般将节点分为共识节点和观察节点,共识节点负责共识出块和交易区块同步,观察节点只能同步和验证数据而没有打包交易的权力。为了保证链内资源共享的整体稳定性,应由系统管理员设定几个技术设施和算力较强的高级别馆来担任共识节点,且各节点在网络准入阶段要进行P2P节点连接列表添加和证书验证,并建立CA黑名单机制使各节点在资源共享时可以及时与作恶节点断开网络连接,保障系统运行安全。同时,公共图书馆最好拥有独立的节点,这样可以减少网络中的代理行为,提高节点平等自主的参与能力,有利于实现由较多主体参与的多中心和弱中心生态环境。
账户权限管理是指对各机构不同操作人员使用链上系统功能(如合约部署、合约内数据访问、系统参数管理等)和业务功能(如数据库资源管理、用户资源管理、图书借阅与推荐等)读、写(插入、更新和删除)操作权限的管理控制。链内可以通过权限表的方式来设置账户地址和对应操作权限,并将链上系统和业务功能以表的方式进行存储和管理,当账户发起请求时,节点获取交易数据,确定账户和待操作的功能以及操作方式,再根据权限表、系统和业务表执行相应操作。一般读操作不受权限控制,会正常执行返回查询数据。这样经过权限的分级可以使不同的用户只访问属于自己被授权的资源,便于协调管理和信息安全。
交易审计可以结合区块链数据、私钥管理和合约管理三者的数据,以区块链数据为基础,以私钥管理和合约管理为审核依据做出一个综合性的数据分析结果。其中私钥管理是指对新建私钥用户的管理,将私钥托管在签名服务中,通过签名服务对合约部署和合约调用进行签名。合约管理是指通过合约IDE、合约列表及合约CNS查询等进行全方面的跟踪管理。交易审计通过三方数据对用户交易总量数量、用户子类交易数量、异常交易用户、异常合约部署等指标进行监督统计,来识别链资源被滥用的情况,以此为良好的共享联盟环境形成提供依据。
区块链技术因其去中心化、低成本、可追溯等特点已经从互联网金融领域扩展到了多个行业,我国图书馆界也正在积极探索区块链技术在图书馆建设和发展方面的应用[8],希望借助该技术推动图书馆行业在互联网时代的发展变革。本文主要利用区块链技术从公共图书馆联盟链的角度对以往馆与馆之间资源共享中的技术限制进行了拓展改进,并对联盟链资源共享应用中会存在的问题进行了探索研究,以使其可以更好地适用于公共图书馆联盟链的建设和运行。总体看,图书馆的文化资源需要更加开放、安全、高效的平台来实现知识的传播,而区块链技术与大数据、物联网、人工智能等先进技术的融合是未来发展的大趋势,只有紧跟时代趋势,才能使图书馆整个行业实现不断创新和健康发展。