区块链查询技术优化
《区块链查询技术优化》由会员分享,可在线阅读,更多相关《区块链查询技术优化(10页珍藏版)》请在装配图网上搜索。
1、区块链查询技术优化作者:李楠来源:电脑知识与技术2021年第11期创世区块前区块I.WTJBlfHSi豹亦1H肚口;曲趣调出需顽啦世尢小审同數后区块图1区块链结构/EIFRt节gflf图2 M-IT树的结构fcilx块图3节点1-5的M-1T树的区块存储结构*前区块创世区块图4基于M-IT树的区块链结构图5查询方法流程图图实验部署图O200o o O806040 倉典丘一)巨上卩.-_=图7数据查询时间(瓷叫注巨,.-a一创图J5利用区块号查询时间摘要:对区块链上数据查询功能单一且查询效率低等问题,提出一种查询技术的优化方案,该方案对区塊链的Merkle树进行了修改,结合了 B+树的结构,不仅
2、能够快速验证(基于 M-B+树根hash),还可以利用B+树的结构快速查找特定记录。并将交易的关键信息和对应的 区块号等数据存入到关系数据库MySQL中,从而支持关系查询。实验结果表明,基于M-B+ 树的区块链系统不仅查询速度效率提升而且具有丰富的查询手段。关键词:区块链;超级账本;关系查询;B+树中图分类号: TP3 文献标识码: A文章编号: 1009-3044(2021) 11-0213-031 引言区块链技术主要是解决在分布式、不可信的场景下进行安全、可靠、不可更改的交易问 题。目前研究内容涉及:系统性能分析、安全性能和共识算法研究、技术应用探索等方面,查 询技术和底层数据管理研究不多
3、,由于区块链采用链式结构,在查询的业务场景中,查询效率 低、方法有限,且时间复杂度高,使区块链技术应用价值被削弱。在查询领域的研究主要有两大方向:第一种,对结点进行区分,并且对查询的路径进行优 化,来提升查询效率,但是这种方法还是在区块链原有的查询方式上进行优化,对原有的区块 链查询功能没有提升;第二种,将区块链和现有的数据库连接,借助数据库丰富的查询功能, 但是这种方法存在数据库数据安全问题。第一种方法只是对现有的节点进行优化,在区块链原有的查询方式上进行优化,却没有从 区块链本身进行相应的提升改进,对原有的区块链查询功能应用场景和查询手段的改进不大; 第二种,将区块链和现有的数据库连接,使
4、用数据库丰富的查询功能,但是存在数据库数据的 安全问题,而且会使区块链系统的复杂性变大,使系统的运行效率变低。为了解决区块链查询效率低,丰富查询功能。本文提出一种新的区块链查询方法:结合 B+树和Merkle树的各自特点,建立基于M-B+树的区块存储结构,并将区块号同步到数据 库,在进行查询时先在数据库中查找到相应区块号后,然后到对应区块查询数据,因为数据库 只保留了区块号,数据都在链上,这样解决了数据库数据被篡改的风险。2 相关工作针对区块链查询,目前的研究如下:贾大宇等在ElasticChain模型基础上,提出一种新的高效查询方法:ElasticQM。该框架 主要在数据层建立B-M树的区块
5、链存储结构,提高局部查询效率。Trent等提出了 BigchainDB2区块链数据库,具有高吞吐量、低延迟、大容量、丰富的查 询功能和去中心化、不可篡改和能够进行数字资产创建、传输的特性。北京众享比特科技有限公司提出ChainSQL技术,该技术是将数据库的操作记录各个节 点共识之后记录到区块链上,如果共识执行失败或不通过,数据库执行回滚操作,这样就实现 了兼顾区块链和传统数据库的优点。余涛等提出FabricSQL方法,该方法将链上的有效交易同步至SQL数据库中,借助数 据库管理系统对区块链数据关系查询。本文所提出一种区块链数据关系查询解决方案,对区块链区块结构修改,结合Merkle树 和B+树
6、的特点,建立M-B+区块结构,并设计相关模块结合数据库,实现高效、安全的数据 查询。3 区块链结构设计3.1 现有的区块链区块结构在现有的区块链系统中,区块主要包含区块头、区块体两大部分。区块头包含:版本号、 时间戳、难度系数、随机数、前区块hash、Merkle树根hash;区块体包含:魔法数、区块大 小、交易数量、交易详情大小。如图1 所示。区块结构说明。在区块头中,版本号是用来标记当前区块对应的系统版本,大小为4 byte; 时间戳是记录区块创建的时间,大小为4 byte;难度系数是记录区块链工作量证明的难度目标, 储存格式为难度系数的hash;随机数是记录区块链工作量的计算参数,大小为
7、4 byte,存储格式 为hash;前区块头的hash是当前区块的前一区块的区块头的hash,大小为32 byte;Merkle树 根hash是当前区块打包所有的交易记录都是以Merkle树的方式记录的,记录的是交易树根的 hash,当有新的信息存入时,该字段会重新计算更新。在区块体中,魔法数是客户端解析区块数据时的识别码,大小为4 byte,是不变常量;区块 大小为4 byte;交易数量,记录上一个区块创建之后到本区块创建完成之间所有的交易笔数交 易详情,记录所有交易详情,包括收支地址、比特币收支数量、Merkle节点值和数字签名等, 采用的数据结构是Merkle树。区块号,是区块的编号,也
8、称区块高度,从0开始计算,下一个区块的为1,区块号和区 块一一对应,可以根据区块号快速查询区块的信息。3.2物流信息平台中区块结构设计1) M-B+树的区块存储结构Merkle树的结构设计可以保证了数据安全不被篡改,还能快速验证数据的hash是否存在 于区块上,查找具体的信息时,根据区块号找到相应的区块,遍历区块查找相应的信息。随着 区块链上的数据变多,查询相关数据的效率越来越低。本节提出一种M-B+树的区块存储结 构,这种结构不仅结合了现有的Merkle树的特点,又提高了查询效率。基于B+树和Merkle树的优点,设计了 M-B+树的区块存储结构。节点结构如图2。数据结构如下:NodeNod
9、e left;Value value;Hash hash;Node right;节点1-5的M-B+树的区块存储结构如下:2)基于M-B+树的区块链结构基于M-B+樹的区块结构,利用该结构搭建的区块链,形成一种新的区块链。如图所示,每一个区块都存储着M-B+树根hash和M-B+树根,树的其余部分放在了区块 体中。在验证相关数据是否存在于该区块时只需要验证是否和M-B+树根hash相等就能快速得 到结果。4 区块链查询技术下面将开始分析传统的区块链查询方法,然后提出一种基于M-B+树结构的区块链查询方 法。4.1 现有的区块链查询方法在区块链中,除了创世区块,其他区块都记录了前一个区块的has
10、h,形成按时间顺序组成 的链在查找数据时,从区块号或区块哈希来确定所在的区块,然后找到相应的区块后,在交易 信息中找到想要的交易记录。在交易过程中,查询流程如下:一个SPV节点查询交易地址,节点间的通信链接上建立 起bloom过滤器,以Merkleblock消息的形式发送该区块。Merkleblock消息包含区块头和一条 连接目标交易与Merkle根的Merkle路径,验证交易的真实性。4.2基于M-B+树的区块链结构查询方法针对区块链查询方面的不足,本节会将基于M-B+树的区块链和关系型数据库MySQL结 合,将新生成的区块的区块号、M-B+树哈希、M-B+路径、交易信息同步到关系型数据库
11、MySQL 中。在关系型数据库MySQL中,会将同步过来的区块链的区块号、M-B+树哈希、M-B+路 径、交易信息进行判断、同步、提取后,处理成MySQL数据库要求的数据格式存储。查询方法主要分为三个主要部分:数据处理和同步模块、外部数据库、查询接口。在基于 M-B+树的区块链运行过程中,数据判断和提出模块会通过区块链的数据接口,将新生成的区 块的区块号、M-B+树哈希、M-B+路径、交易信息同步到关系型数据库MySQL中。5 实验与分析本章主要是对基于M-B+树的区块链结构查询方法进行试验并和传统的区块链系统进行比 较,并通过试验结果证明方案可行性。5.1 实验环境本文采用Hyperledg
12、er Fabric开源框架,基于M-B+树的区块结构搭建区块链系统。实验的 硬件配置为:Intel Core I5-7300HQ 2.50 GHZ CPU和 16GB 内存的 PC,操作系统为 WindowslO 专业版。使用 VMware Workstation 12.5 建立虚拟机,在虚拟机上模拟实验的真实节点,节点 的内存为1GB,硬盘为25GB的Ubuntu16.04系统。数据来自脱敏的电子交易数据集和账户数 据集。图6所示的实验部署图,为了构成P2P网络,首先选择一个普通结点作为初始节点,然后 选择一个超级节点和初始节点进行链接。普通节点只同步区块头,超级节点同步整个区块的整 体信息
13、。当普通用户获取不在本节点的信息时,可以在超级节点上同步信息,减少普通用户本 地存储。5.2 实验分析实验 1:在两个系统中分别录入相同的原始数据,然后进行一笔交易信息的查询,利用区 块链上的查询的接口,控制变量,进行多组对照实验。观察两个系统的查询时间。查询时间如图所示,由于单个查询时间较短,采用1000笔重复查询实验然后取平均值。 图中的横坐标是上链的数据量规模,分别是300M, 600M和900M,纵坐标是时间值,通过实 验结果可以看出,基于M-B+树的区块链系统的查询时间较传统的区块链系统查询响应时间有 着明显的提升。实验2 :在两个系统中分别录入相同的原始数据,然后利用外接数据库My
14、SQL提供的查 询接口,根据相同的区块号进行信息查询,取区块号10、100、150、200、250、300进行查 询,观察查询时间。如图所示,利用外接数据库提供的查询接口,利用区块号进行查询实验,通过对实验结果 进行分析,外接数据库查询时间相较于传统查询时间缩短。有些数据会缓存在服务器上,所以 整体查询时间比直接利用区块链的查询接口要快。6 结束语本文研究当前的区块链系统的查询技术,发现查询功能不完善,效率低,对区块链查询方 法进行了研究和改善。传统Fabric区块链系统的查询功能是通过文件系统和Key-value数据库实现的,随着区块 链技术的普及和广泛应用在各行各业,系统对存储数据的访问方
15、法支持不足,而且查询功能单 、效率不高。本文针对在物流中区块链查询方面的不足,提出一种解决方案:基于M-B+树 的区块链系统,该方案对区块链的Merkle树进行了修改,结合了 B+树的结构,能够使区块链 系统在进行交易查询时不仅能够快速验证(基于M-B+树根hash),而且可以利用B+树的结 构快速查找特定记录。而且基于M-B+树的区块链系统外接了 MySQL数据库,将新生成的区 块的区块号、M-B+树hash、M-B+路径、交易信息同步到关系型数据库MySQL中。利用 MySQL数据库丰富的查询功能,能够快速验证和得到需要查询的信息的区块号,然后到区块 链中查找特定信息。参考文献:1 贾大宇
16、,信俊昌,王之琼,等存储容量可扩展区块链系统的高效查询模型J.软件学 报, 2019, 30(9): 2655-2670.2 McConaghy T, Marques R, Muller A, et al. BigchainDB : a scalable blockchaindatabaseJ. white paper, BigChainDB,2016.3 Beijing PeerSafe Technology Limited Company. White paper for blockchain database application platform EB/OL. 2017-01-22. http:/4 余涛,牛保宁,樊星.FabricSQL:区块链数据的关系查询J.计算机工程与设计, 2020, 41(10): 2988-2995.【通联编辑:代影】
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级科学下册《食物包装上的信息》教科版课件
- 加强官德修养-做有德领导教学课件
- 医院药物临床试验机构资料管理员专项培训教材课件
- 北京中小学学生电子学籍管理系统一年级信息录入培训课件
- 医疗服务全面质量管理-课件
- 加强处方点评促进合理用药课件
- 加强学科建设打造品牌医院提升三级医院综合服务能力培训课件
- 化工设备检修安全技术概述课件
- 四年级下册英语Unit2WhattimeisitPartA课时课件
- 化工设备常用零部件图样及结构选用概述课件
- 加强学习履行职责做一名称职的党务干部支部书记培训课件2
- 医务人员艾滋病病毒职业暴露的预防及处理课件
- 四年级上第四单元三位数乘两位数解决问题课件
- 四年级数学上册计算工具的认识及计算课件免
- 四年级期末家长会(语文)课件