[发明专利]数据存储方法及系统、设备和存储介质有效
申请号: | 201810884035.4 | 申请日: | 2018-08-06 |
公开(公告)号: | CN109359222B | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 王志文;吴思进 | 申请(专利权)人: | 杭州复杂美科技有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903;G06Q40/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 存储 方法 系统 设备 介质 | ||
本发明提供一种数据存储方法及系统、设备和存储介质,该方法包括:在区块链网络的各节点本地存储对应于每个区块的默克尔树的全局索引表,以及每个区块的默克尔树。其中,版本的版本号为区块高度,全局索引表用于根据区块高度进行数据查询。本发明通过为默克尔树配置相对应的、以区块高度为版本号的全局索引表,为系统提供了可以直接通过区块高度查询全局索引表、通过一次读操作即可完成查询的数据查询途径,从而大幅提升了系统的数据读取性能;并进一步优化了系统在发生交易拥堵或节点崩溃时的健壮性。
技术领域
本申请涉及区块链技术领域,具体涉及一种数据存储方法及系统、设备和存储介质。
背景技术
当前区块链系统的数据读写的解决方案中,通常会采用默克尔树(Merkle Tree)的结构,例如比特币的系统中通过默克尔树进行spv验证、以太坊的系统中通过默克尔前缀树(Merkle Patricia Tree,简称MPT)进行数据的读写,等等。
当前利用默克尔树的结构进行数据存储的方案的缺陷在于:
所存储的数据限制了系统的读取性能,查询一笔交易的数据需要通过多次读操作来完成。例如,对于一颗20层的默克尔树,查询一个叶子节点的数据需要进行20次读操作来完成,导致数据查询的效率仅为普通数据库的查询效率的1/20,对于每秒能完成10万次读操作的系统,每秒仅能读取5000笔交易的数据。
更进一步地,现有方案需要在节点本地数据库中写完默克尔树的数据后才能进行区块的共识,导致在交易数量剧增时容易发生交易拥堵。
此外,现有方案在节点本地数据库中写默克尔树的数据时若发生崩溃,会导致无法生成区块。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种通过优化所存储的数据结构提升系统读取性能的数据存储方法及系统、设备和存储介质,并进一步期望优化系统在发生交易拥堵或节点崩溃时的健壮性。
第一方面,本发明提供一种数据存储方法,包括:
在区块链网络的各节点本地存储对应于每个区块的默克尔树的全局索引表,以及每个区块的默克尔树。
其中,该全局索引表以区块高度为版本号,用于根据区块高度进行数据查询。
第二方面,本发明提供一种数据存储系统,配置在区块链网络的节点中,包括第一存储单元和第二存储单元。
第一存储单元配置用于在节点本地存储对应于每个区块的默克尔树的全局索引表;
第二存储单元配置用于在节点本地存储每个区块的默克尔树。
其中,该全局索引表以区块高度为版本号,用于根据区块高度进行数据查询。
第三方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的数据存储方法。
第四方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的数据存储方法。
本发明诸多实施例提供的数据存储方法及系统、设备和存储介质通过为默克尔树配置相对应的、以区块高度为版本号的全局索引表,为系统提供了可以直接通过区块高度查询全局索引表、通过一次读操作即可完成查询的数据查询途径,从而大幅提升了系统的数据读取性能;
本发明一些实施例提供的数据存储方法及系统、设备和存储介质进一步通过在存储完全局索引表的数据后即打包区块共识,并异步存储对应的默克尔树的数据,从而可以大幅缓解交易数量剧增时的区块拥堵问题,同时还降低了存储数据时发生节点崩溃导致无法生成区块的风险;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州复杂美科技有限公司,未经杭州复杂美科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810884035.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置