[发明专利]一种本地数据库重构方法、设备和存储介质有效
申请号: | 201910157804.5 | 申请日: | 2019-03-02 |
公开(公告)号: | CN109857727B | 公开(公告)日: | 2021-05-11 |
发明(设计)人: | 马登极;王志文;吴思进 | 申请(专利权)人: | 杭州复杂美科技有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/23 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市西湖*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 本地 数据库 方法 设备 存储 介质 | ||
本发明提供一种本地数据库重构方法、设备和存储介质,该方法包括:检测本地数据库的版本是否更新:是,则以区块高度为序重新执行第一区块链上的所有区块的交易以重新构建本地数据库。本发明通过为本地数据库配置版本号,检测数据库版本号是否有更新,如果有更新,则按照区块高度从低到高的顺序重新执行区块中的交易以重构本地数据库,从而保证本地数据库中均为当前区块链版本的实际结果同时大大提高了重新构建数据库的效率。
技术领域
本申请涉及区块链技术领域,具体涉及一种本地数据库重构方法、设备和存储介质。
背景技术
随着区块链版本的迭代,本地数据库和状态数据库也应该不断有更新,然而区块链节点分布众多,版本往往不会及时更新,然而本地数据库不进行共识,如果版本更新不及时也不会影响数据存入,然而在升级版本后,本地数据库会有和当前版本所记录数据结构不一致的情况,现有更新本地数据库的方案为删掉本地数据库和状态数据库,重新从区块高度为0开始同步数据。现有的方案缺陷在于:由于区块高度动辄几百万高度,还会随时增长,删除数据库后重新在系统中同步数据的方法耗时很长,效率低下。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种效率高的,仅需要重构本地数据库的重构方法、设备和存储介质。
第一方面,本发明提供一种本地数据库的重构方法,包括:
检测本地数据库的版本是否更新:
是,则以区块高度为序重新执行第一区块链上的所有区块的交易以重新构建本地数据库。
进一步,重新计算第一区块链上的所有区块的交易以重新构建本地数据库包括:
删除本地数据库,并按照区块高度从低到高的顺序获取并执行各区块的交易;
将计算执行各交易后生成的若干数据信息存储在本地数据库中以重新构建本地数据库。
进一步,上述方法还包括:
若执行各交易过程中发生中断,系统重启后从中断的区块高度后继续执行后续各区块。
第二方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的本地数据库重构方法。
第三方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的本地数据库重构方法。
本发明诸多实施例提供的一种本地数据库重构方法、设备和存储介质通过为本地数据库配置版本号,检测数据库版本号是否有更新,如果有更新,则按照区块高度从低到高的顺序重新执行区块中的交易以重构本地数据库,大大提高了重构数据库的效率。进一步,本发明还可以只针对其中某一种合约更新时针对该合约存储的数据进行重新构建,对其他没有更新的合约数据则不做处理,有针对性的进行数据库更行,进一步减少了重构数据库的时间。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种本地数据库重构方法的流程图。
图2为图1所述方法的一优选实施方式的流程图。
图3为图1或图2所示方法的一优选实施方式的流程图。
图4为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州复杂美科技有限公司,未经杭州复杂美科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910157804.5/2.html,转载请声明来源钻瓜专利网。