CN112667675B - 数据查验方法、电子装置和存储介质 - Google Patents

数据查验方法、电子装置和存储介质 Download PDF

Info

Publication number
CN112667675B
CN112667675B CN202110286844.7A CN202110286844A CN112667675B CN 112667675 B CN112667675 B CN 112667675B CN 202110286844 A CN202110286844 A CN 202110286844A CN 112667675 B CN112667675 B CN 112667675B
Authority
CN
China
Prior art keywords
interval
data
target
hash value
inspected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110286844.7A
Other languages
English (en)
Other versions
CN112667675A (zh
Inventor
匡立中
张帅
李伟
邱炜伟
曾磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202110286844.7A priority Critical patent/CN112667675B/zh
Publication of CN112667675A publication Critical patent/CN112667675A/zh
Application granted granted Critical
Publication of CN112667675B publication Critical patent/CN112667675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据查验方法、电子装置和存储介质,该数据查验方法包括:获取第一数据库中的多项待查验数据和第二数据库中相对应的目标数据的编号;确定多项目标数据按照编号顺序合并之后得到的至少一个目标区间;获取对应于各目标区间的父区间的哈希值和兄弟区间的哈希值,并将各父区间的哈希值减去对应兄弟区间的哈希值,得到对应目标区间的哈希值;获取多项待查验数据按照存储顺序合并之后得到的且和目标区间对应的待查验区间,并计算各待查验区间的哈希值;将各目标区间的哈希值和对应待查验区间的哈希值进行对比,根据对比结果确定待查验数据是否可信。本申请解决了两个数据库之间存在数据查验效率低的问题,提升了查验效率。

Description

数据查验方法、电子装置和存储介质
技术领域
本申请涉及数据处理领域,特别是涉及数据查验方法、电子装置和存储介质。
背景技术
相关技术为了解决区块链存证臃肿问题,把原文件和哈希值进行分离存储,链上只存储数据哈希值,链下存储原文件,只要对比链上和链下的数据哈希值,就能确定该数据是否被存证过,即该链下数据是否可信。区块链由于自身存储结构问题,对引入的关系型数据在检索查询上会有性能问题,但是如果不对链下数据进行查验,直接引入链外的关系型数据库,会存在关系型数据库篡改的风险。
假设链下数据下标为1号、2号、3号、6号、9号需要被验证是否已被存证,则相关技术在基于区块链的链上数据对链下数据进行查验时,计算各项链下数据的哈希值,读取链上对应各项数据的哈希值,将链下计算得到的哈希值和链上的对应指定数据的哈希值进行一一对比。无论是全量对比数据哈希值还是部分对比数据哈希值,在区块链中都会涉及和数据哈希值对比项数相当的多次数据读取操作,验证效率低。
目前针对相关技术中,两个数据库之间存在数据查验效率低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据查验方法、电子装置和存储介质,以至少解决相关技术中两个数据库之间存在数据查验效率低的问题。
第一方面,本申请实施例提供了一种数据查验方法,包括:
获取第一数据库中的多项待查验数据,以及获取各项待查验数据映射至第二数据库之后相对应的目标数据的编号,其中,各所述目标数据依照所述编号顺序存储;
确定所述多项目标数据按照所述编号顺序合并之后得到的至少一个目标区间,其中,各所述目标区间为连续区间;
获取对应于各所述目标区间的父区间的哈希值和兄弟区间的哈希值,并将各所述父区间的哈希值减去对应兄弟区间的哈希值,得到对应目标区间的哈希值,其中,各所述目标区间所包含的数据项为对应父区间所包含的数据项减去对应兄弟区间所包含的数据项;
获取所述多项待查验数据按照存储顺序合并之后得到的且和所述目标区间对应的待查验区间,并计算各所述待查验区间的哈希值;
将各所述目标区间的哈希值和对应待查验区间的哈希值进行对比,根据对比结果确定所述待查验数据是否可信。
在其中一些实施例中,所述目标区间满足第一预设条件,所述第一预设条件包括:
在同一目标区间的所述目标数据中,依序排列的每两个目标数据之间的编号的差值不大于第一预设阈值,在不同目标区间中,第一目标区间的右端点值和第二目标区间的左端点值的差值大于所述第一预设阈值。
在其中一些实施例中,在确定所述多项目标数据按照所述编号顺序合并之后得到的至少一个目标区间之后,所述方法还包括:
判断是否存在两个相近的目标区间,其中,所述两个相近的目标区间满足第二预设条件,所述第二预设条件包括:所述第一目标区间的右端点值和所述第二目标区间的左端点值的差值小于第二预设阈值,且所述第一目标区间和所述第二目标区间的长度不大于第三预设阈值;
在判断到存在两个相近的目标区间的情况下,将所述两个相近的目标区间进行顺序合并。
在其中一些实施例中,获取对应于各所述目标区间的父区间的哈希值和兄弟区间的哈希值包括:
根据各所述目标区间中末项目标数据的编号,确定对应于各所述目标区间的父区间,并获取预先存储的所述父区间的哈希值;
根据各所述目标区间中首项目标数据的编号,确定对应于各所述目标区间的兄弟区间,并获取预先存储的所述兄弟区间的哈希值。
在其中一些实施例中,在获取各所述目标区间的父区间和兄弟区间的哈希值之前,所述方法还包括:
确定所述第二数据库中新增数据按照顺序存储而生成的编号,并将所述新增数据的编号写入所述第二数据库中;
根据所述新增数据的编号,确定新增区间和与所述新增区间相差一个数据单位的历史区间,并获取所述历史区间的哈希值,其中,所述新增区间和所述历史区间中首项数据的编号均为所述第二数据库中存储的数据的起始编号,所述新增区间的末项数据的编号为所述新增数据的编号,所述历史区间的末项数据的编号为在所述新增数据之前相间隔一个数据单位的数据的编号;
根据预设哈希函数计算所述新增数据的哈希值,并根据所述新增数据的哈希值和所述历史区间的哈希值,确定以及存储所述新增区间的哈希值。
在其中一些实施例中,根据所述新增数据的哈希值和所述历史区间的哈希值,确定以及存储所述新增区间的哈希值包括:
将所述新增数据的哈希值和所述历史区间的哈希值相加,得到哈希值之和,采用预设取模参数对所述哈希值之和进行取模处理,得到所述新增区间的哈希值;
或者,采用预设取模参数对所述新增数据的哈希值进行取模处理得到第一取模结果,采用所述预设取模参数对所述历史区间的哈希值进行取模处理得到第二取模结果,采用所述预设取模参数对所述第一取模结果和所述第二取模结果之和进行取模处理,得到所述新增区间的哈希值。
在其中一些实施例中,获取所述多项待查验数据按照存储顺序合并之后得到的且和所述目标区间对应的待查验区间,并计算各所述待查验区间的哈希值包括:
根据预设哈希函数对各所述待查验数据进行计算,得到多项待查验哈希值;
将所述多项待查验哈希值按照存储顺序合并,得到对应于所述目标区间的待查验区间;
将同一待查验区间的所述待查验哈希值相加,得到该待查验区间的哈希值。
在其中一些实施例中,获取所述多项待查验数据按照存储顺序合并之后得到的且和所述目标区间对应的待查验区间,并计算各所述待查验区间的哈希值包括:
将所述多项待查验数据按照存储顺序合并,得到对应于所述目标区间的待查验区间,其中,各所述待查验区间为连续区间,且各所述待查验区间的左端点值不大于右端点值;
获取对应于各所述待查验区间的父区间的哈希值和兄弟区间的哈希值,并将各所述父区间的哈希值减去对应兄弟区间的哈希值,得到对应待查验区间的哈希值,其中,各所述待查验区间所包含的数据项为对应父区间所包含的数据项减去对应兄弟区间所包含的数据项。
在其中一些实施例中,在将各所述目标区间的哈希值和对应待查验区间的哈希值进行对比之前,所述方法还包括:
将各所述待查验区间中待查验数据的哈希值相加,采用预设取模参数对各所述待查验数据的哈希值之和进行取模处理,得到各所述待查验区间的哈希值;
或者,采用预设取模参数对同一待查验区间的各所述待查验数据的哈希值进行取模处理,得到取模结果,采用所述预设取模参数对同一待查验区间的各所述取模结果之和进行取模处理,得到所述待查验区间的哈希值。
第二方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述第一方面所述的数据查验方法。
第三方面,本申请实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述第一方面所述的数据查验方法。
相比于相关技术,本申请实施例提供的数据查验方法、电子装置和存储介质,解决了两个数据库之间存在数据查验效率低的问题,提升了查验效率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据查验方法的流程图;
图2是本申请实施例的数据查验方法的终端的硬件结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种数据查验方法,图1是根据本申请实施例的数据查验方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取第一数据库中的多项待查验数据,以及获取各项待查验数据映射至第二数据库之后相对应的目标数据的编号,其中,各目标数据依照编号顺序存储。
第一数据库和第二数据库关联,第一数据库和第二数据库协同工作,第一数据库包括关系型数据库,第二数据库包括区块链。在关系型数据库没有经人为篡改的情况下,待查验数据和目标数据应当是一致的,一旦经人为篡改,则将导致两边的数据不一致。
第一数据库和第二数据库中的数据存在映射关系,即待查验数据和目标数据是一一对应的,因此,各项待查验数据之间的顺序关系和各项目标数据之间的顺序关系一致,只要确定各项待查验数据的存储顺序,便能确定第二数据库中对应目标数据的编号。
不妨用
Figure 729138DEST_PATH_IMAGE001
表示待查验数据,用
Figure 177436DEST_PATH_IMAGE002
表示目标数据,其中i和k均为编号,i和k均取自然数。假设各项待查验数据分别为
Figure 753911DEST_PATH_IMAGE003
Figure 680279DEST_PATH_IMAGE004
Figure 25810DEST_PATH_IMAGE005
Figure 645010DEST_PATH_IMAGE006
Figure 944666DEST_PATH_IMAGE007
,则对应于待查验数据的目标数据分别为
Figure 674725DEST_PATH_IMAGE008
Figure 874762DEST_PATH_IMAGE009
Figure 664864DEST_PATH_IMAGE010
Figure 950352DEST_PATH_IMAGE011
Figure 218522DEST_PATH_IMAGE012
需要说明的是,i和k可以相同也可以不同,只要满足各项待查验数据之间的顺序关系和各项目标数据之间的顺序关系一致即可。
步骤S102,确定多项目标数据按照编号顺序合并之后得到的至少一个目标区间,其中,各目标区间为连续区间。
连续区间是指区间内的数据的编号是依次连续的,且目标区间内的数据项数可以是单项也可以是多项。目标区间可以是单个也可以是多个,但是目标区间个数总是不大于目标数据项数。
Figure 538645DEST_PATH_IMAGE008
Figure 998183DEST_PATH_IMAGE009
Figure 770967DEST_PATH_IMAGE010
Figure 577249DEST_PATH_IMAGE011
Figure 17457DEST_PATH_IMAGE012
为例,合并多项目标数据的方式有多种。
可以是将多项目标数据全部顺序合并至单个目标区间,得到的目标区间为[1,9],则[1,9]所包含的数据项为第二数据库中编号1至编号9的数据。
也可以是将多项目标数据顺序合并至两个目标区间,得到的目标区间分别为[1,3]、[6,9],则[1,3]所包含的数据项为第二数据库中编号1至编号3的数据,[6,9] 所包含的数据项为第二数据库中编号6至编号9的数据。
还可以将多项目标数据顺序合并至三个目标区间,得到的目标区间分别为[1,3]、[6,6]、[9,9]。
本实施例并不限定合并多项目标数据的方式。需要说明的是,本实施例并不是读取多项目标数据,将目标数据在物理空间中进行顺序合并,而仅仅是根据多项目标数据的编号确定目标区间。
步骤S103,获取对应于各目标区间的父区间的哈希值和兄弟区间的哈希值,并将各父区间的哈希值减去对应兄弟区间的哈希值,得到对应目标区间的哈希值,其中,各目标区间所包含的数据项为对应父区间所包含的数据项减去对应兄弟区间所包含的数据项。
父区间的哈希值和兄弟区间的哈希值是预先存储在第二数据库中的,以[1,3]为例,则[1,3]的父区间可以为[0,3],兄弟区间为[0,0],[1,3]所包含的数据项为[0,3]所包含的数据项减去[0,0]所包含的数据项,三个区间满足区间可加性原则。
以下将对区间可加性原则进行介绍。
设F(start,end)为区间函数,F包括两个输入参数,分别为区间的左端点值和右端点值,其中,start代表区间中首项数据的编号,end代表区间中末项数据的编号,F函数具有区间可加性。
Figure 883782DEST_PATH_IMAGE013
其中F(0,0)代表编号为0的数据,即
Figure 143862DEST_PATH_IMAGE014
步骤S104,获取多项待查验数据按照存储顺序合并之后得到的且和目标区间对应的待查验区间,并计算各待查验区间的哈希值。
假设目标区间分别为[1,3]、[6,6]、[9,9],则将
Figure 753835DEST_PATH_IMAGE015
Figure 782971DEST_PATH_IMAGE016
Figure 852820DEST_PATH_IMAGE017
Figure 334617DEST_PATH_IMAGE018
Figure 13860DEST_PATH_IMAGE019
按照存储顺序合并之后得到的待查验区间分别为[1,3]、[6,6]、[9,9]。
各待查验区间的哈希值的计算方法有多种,以下将以其中一种为例进行说明。先根据第二数据库采用的哈希算法对各待查验数据进行计算,得到多项待查验哈希值,将[1,3]中的待查验哈希值相加,得到[1,3]的哈希值,将[6,6]中的待查验哈希值相加,得到[6,6]的哈希值,将[9,9]中的待查验哈希值相加,得到[9,9]的哈希值。
步骤S105,将各目标区间的哈希值和对应待查验区间的哈希值进行对比,根据对比结果确定待查验数据是否可信。
例如,将目标区间[1,3]的哈希值和待查验区间[1,3]的哈希值进行对比,将目标区间[6,6]的哈希值和待查验区间[6,6]的哈希值进行对比,将目标区间[9,9]的哈希值和待查验区间[9,9]的哈希值进行对比,如果各目标区间的哈希值和对应待查验区间的哈希值相同,则确定待查验数据可信,否则,确定待查验数据不可信。
在本实施例中,在确定目标区间的过程中,不需要读取目标数据,能够省略对目标数据的读取操作,节省在数据读取方面的时间,节省计算机资源开销。对于区块链而言,由于区块链本身是可信且不可变的,所以目标区间的哈希值也为真实可信的,无需再次读取各项目标数据来重新计算哈希值,因此,能够将单项数据哈希值的逐项对比转化为区间哈希值的对比,而区间哈希值的对比减少了数据哈希值的读取次数,从而减少了计算机的资源开销,把对数据库的无序遍历转变为对数据库的顺序遍历,提升了遍历速度。
通过上述步骤,解决了两个数据库之间存在数据查验效率低的问题,提升了查验效率。
在上述实施例中,在一些情况下,目标数据合并之后得到的目标区间越少,则查验效率会越高,但是,在有些情况下,目标数据之间间隔较远,若将所有目标数据合并为一个目标区间,则会降低查验的准确度。例如,目标数据分别为
Figure 897503DEST_PATH_IMAGE008
Figure 371209DEST_PATH_IMAGE009
Figure 340302DEST_PATH_IMAGE010
Figure 56192DEST_PATH_IMAGE011
Figure 59920DEST_PATH_IMAGE020
,待查验数据分别为
Figure 970107DEST_PATH_IMAGE003
Figure 160917DEST_PATH_IMAGE004
Figure 181963DEST_PATH_IMAGE005
Figure 774618DEST_PATH_IMAGE006
Figure 590128DEST_PATH_IMAGE007
,如果两边分别均合并成至单个区间,即得到目标区间[1,9]和待查验区间[1,9],则会引入非目标数据
Figure 300857DEST_PATH_IMAGE021
Figure 860014DEST_PATH_IMAGE022
Figure 572755DEST_PATH_IMAGE023
Figure 559166DEST_PATH_IMAGE024
和非待查验数据
Figure 990147DEST_PATH_IMAGE025
Figure 87416DEST_PATH_IMAGE026
Figure 920243DEST_PATH_IMAGE027
Figure 811976DEST_PATH_IMAGE028
,而非待查验数据会干扰原始待查验数据的查验结果。
为解决该问题,在其中一些实施例中,目标区间满足第一预设条件,第一预设条件包括:
在同一目标区间的目标数据中,依序排列的每两个目标数据之间的编号的差值不大于第一预设阈值,在不同目标区间中,第一目标区间的右端点值和第二目标区间的左端点值的差值大于第一预设阈值。
第一预设阈值取正整数,本实施例通过设置第一预设条件,限制了同一目标区间内目标数据之间的最大间隔,以及限制了不同目标区间的最小区间间隔,使得目标区间的长度合适,避免影响查验的准确程度。第一预设阈值可以根据实际需求确定,第一预设阈值越小,引入的非待查验数据的干扰会越少,反之,则相反。
假设第一预设阈值取1,则合并
Figure 494367DEST_PATH_IMAGE008
Figure 395327DEST_PATH_IMAGE009
Figure 817081DEST_PATH_IMAGE010
Figure 410874DEST_PATH_IMAGE011
Figure 816447DEST_PATH_IMAGE020
之后得到的目标区间分别为[1,3]、[6,6]、[9,9],其中,
Figure 521098DEST_PATH_IMAGE008
Figure 564403DEST_PATH_IMAGE009
Figure 516047DEST_PATH_IMAGE029
属于同一目标区间[1,3],
Figure 641873DEST_PATH_IMAGE008
Figure 884635DEST_PATH_IMAGE009
Figure 280981DEST_PATH_IMAGE010
中依序排列的每两个目标数据之间的编号的差值均不大于1,同理,[6,6]、[9,9]中依序排列的每两个目标数据之间的编号的差值也均不大于1。[1,3]的右端点值为3,[6,6]的左端点值为6,[1,3]的右端点值和[6,6]的左端点值的差值大于1,同理,[1,3]的右端点值和[9,9]的左端点值的差值大于1,[6,6]的右端点值和[9,9]的左端点值的差值大于1。
为了进一步优化目标数据的合并机制,在其中一些实施例中,在确定多项目标数据按照编号顺序合并之后得到的至少一个目标区间之后,方法还包括:
判断是否存在两个相近的目标区间,其中,两个相近的目标区间满足第二预设条件,第二预设条件包括:第一目标区间的右端点值和第二目标区间的左端点值的差值小于第二预设阈值,且第一目标区间和第二目标区间的长度不大于第三预设阈值;
在判断到存在两个相近的目标区间的情况下,将两个相近的目标区间进行顺序合并。
如此设置,能够在合理控制目标区间的长度的前提下,减少目标区间的个数,提升计算速度。
假设第二预设阈值为3,第三预设阈值为1。则在上述的目标区间[1,3]、[6,6]、[9,9]中,[6,6]和[9,9]能够合并为[6,9]。需要注意的是,[6,9]是连续区间,包含了
Figure 216576DEST_PATH_IMAGE011
Figure 331163DEST_PATH_IMAGE023
Figure 112037DEST_PATH_IMAGE024
Figure 628469DEST_PATH_IMAGE030
。相应的,待查验区间[6,9]包含了
Figure 236430DEST_PATH_IMAGE006
Figure 838313DEST_PATH_IMAGE027
Figure 422878DEST_PATH_IMAGE028
Figure 793817DEST_PATH_IMAGE007
,其中,
Figure 71214DEST_PATH_IMAGE027
Figure 894814DEST_PATH_IMAGE028
为非待查验数据,虽然引入了非待查验数据的干扰,但是减少了区间个数,提升了计算速度。
第一预设条件和第二预设条件可以根据实际需求确定。
在其中一些实施例中,获取对应于各目标区间的父区间的哈希值和兄弟区间的哈希值包括:
根据各目标区间中末项目标数据的编号,确定对应于各目标区间的父区间,并获取预先存储的父区间的哈希值;
根据各目标区间中首项目标数据的编号,确定对应于各目标区间的兄弟区间,并获取预先存储的兄弟区间的哈希值。
以目标区间[1,3]为例,末项目标数据的编号为3,则对应于[1,3]的父区间是[0,3],获取预先存储在第二数据库中的[0,3]的哈希值;首项目标数据的编号为1,则对应于[1,3]的兄弟区间是[0,0],获取预先存储在第二数据库中的[0,0]的哈希值。
本实施例可通过区间函数F计算得到目标区间的哈希值,即
Figure 283070DEST_PATH_IMAGE031
其中,
Figure 272629DEST_PATH_IMAGE032
代表父区间的哈希值,
Figure 455349DEST_PATH_IMAGE033
代表兄弟区间的哈希值。
以下将介绍在第二数据库中存储区间哈希值的实施例。
在其中一些实施例中,在获取各目标区间的父区间和兄弟区间的哈希值之前,方法还包括:
确定第二数据库中新增数据按照顺序存储而生成的编号,并将新增数据的编号写入第二数据库中;
根据新增数据的编号,确定新增区间和与新增区间相差一个数据单位的历史区间,并获取历史区间的哈希值,其中,新增区间和历史区间中首项数据的编号均为第二数据库中存储的数据的起始编号,新增区间的末项数据的编号为新增数据的编号,历史区间的末项数据的编号为在新增数据之前相间隔一个数据单位的数据的编号;
根据预设哈希函数计算新增数据的哈希值,并根据新增数据的哈希值和历史区间的哈希值,确定以及存储新增区间的哈希值。
在当前有新增数据要插入第二数据库时,第二数据库通过全局自增的方式顺序存储该新增数据,假设新增数据为
Figure 31823DEST_PATH_IMAGE002
,则将编号i写入第二数据库中。根据编号i确定新增区间[0,i]和历史区间[0,i-1],其中,[0,i-1]的哈希值在
Figure 958191DEST_PATH_IMAGE034
存储至第二数据库后得到计算并存储,计算方式同
Figure 38143DEST_PATH_IMAGE002
预设哈希函数为根据需求选择冲突率可以接受的哈希函数,包括但不限于MD5算法、SHA1算法、BKDRHash算法、APHash算法、DJBHash算法。合并新增数据的哈希值和历史区间的哈希值,得到新增区间的哈希值,并将新增数据的哈希值存储至第二数据库中。
为避免数据溢出,在其中一些实施例中,根据新增数据的哈希值和历史区间的哈希值,确定以及存储新增区间的哈希值包括:
将新增数据的哈希值和历史区间的哈希值相加,得到哈希值之和,采用预设取模参数对哈希值之和进行取模处理,得到新增区间的哈希值。
计算公式如下:
Figure 657343DEST_PATH_IMAGE035
其中,P代表预设取模参数,预设取模参数可以根据新增数据的哈希值确定,通过将预设取模参数对新增数据的哈希值进行取模处理,能够避免新增区间的哈希值溢出。
如果新增数据的哈希值和历史区间的哈希值直接相加后就出现溢出问题,则还可以采用以下方法计算新增区间的哈希值。
采用预设取模参数对新增数据的哈希值进行取模处理得到第一取模结果,采用预设取模参数对历史区间的哈希值进行取模处理得到第二取模结果,采用预设取模参数对第一取模结果和第二取模结果之和进行取模处理,得到新增区间的哈希值。
计算公式如下:
Figure 721114DEST_PATH_IMAGE036
先分别对新增数据的哈希值、历史区间的哈希值取模,再求和,再对第一取模结果和第二取模结果之和进行取模处理,能够得到和前一种新增区间的哈希值的计算方法相同的结果。
在其中一些实施例中,获取多项待查验数据按照存储顺序合并之后得到的且和目标区间对应的待查验区间,并计算各待查验区间的哈希值包括:
根据预设哈希函数对各待查验数据进行计算,得到多项待查验哈希值;
将多项待查验哈希值按照存储顺序合并,得到对应于目标区间的待查验区间;
将同一待查验区间的待查验哈希值相加,得到该待查验区间的哈希值。
例如,第二数据库采用的预设哈希函数为H,则
Figure 952637DEST_PATH_IMAGE003
Figure 887095DEST_PATH_IMAGE004
Figure 677197DEST_PATH_IMAGE005
的哈希值分别为H(
Figure 228264DEST_PATH_IMAGE003
)、H(
Figure 496434DEST_PATH_IMAGE004
)、H(
Figure 550978DEST_PATH_IMAGE005
),将H(
Figure 777560DEST_PATH_IMAGE003
)、H(
Figure 884816DEST_PATH_IMAGE004
)、H(
Figure 956677DEST_PATH_IMAGE005
)相加,得到待查验区间[1,3]的哈希值为
Figure 131307DEST_PATH_IMAGE037
在其中一些实施例中,获取多项待查验数据按照存储顺序合并之后得到的且和目标区间对应的待查验区间,并计算各待查验区间的哈希值包括:
将多项待查验数据按照存储顺序合并,得到对应于目标区间的待查验区间,其中,各待查验区间为连续区间,且各待查验区间的左端点值不大于右端点值;
获取对应于各待查验区间的父区间的哈希值和兄弟区间的哈希值,并将各父区间的哈希值减去对应兄弟区间的哈希值,得到对应待查验区间的哈希值,其中,各待查验区间所包含的数据项为对应父区间所包含的数据项减去对应兄弟区间所包含的数据项。
待查验区间的生成方式和目标区间的生成方式是相匹配的,基于和目标区间相近的原理,本实施例不再赘述。在本实施例中,第一数据库是一个维护顺序存储的文件或者区间缓存。或者,第一数据库为分布式数据库,待查验数据存储于分布式数据库中,分布式数据库按照自身所合并得到的待查验区间同时计算哈希值,以提升待查验区间的哈希值的计算效率。
在其中一些实施例中,在将各目标区间的哈希值和对应待查验区间的哈希值进行对比之前,方法还包括:
将各待查验区间中待查验数据的哈希值相加,采用预设取模参数对各待查验数据的哈希值之和进行取模处理,得到各待查验区间的哈希值。
假设待查验区间为[1,3],为避免数据溢出,可以按照如下公式计算:
Figure 997632DEST_PATH_IMAGE038
其中,P代表预设取模参数,预设取模参数可以根据待查验数据的哈希值确定,通过将预设取模参数对待查验数据的哈希值进行取模处理,能够避免待查验数据的哈希值溢出。
如果多项待查验数据的哈希值直接相加后就出现溢出问题,则还可以采用以下方法计算待查验区间的哈希值。
采用预设取模参数对同一待查验区间的各待查验数据的哈希值进行取模处理,得到取模结果,采用预设取模参数对同一待查验区间的各取模结果之和进行取模处理,得到待查验区间的哈希值。
假设待查验区间为[1,3],计算公式如下:
Figure 257712DEST_PATH_IMAGE039
先分别对各项待查验数据的哈希值取模,再求和,再对求得的和进行取模处理,能够得到和前一种待查验区间的哈希值的计算方法相同的结果。
下面通过优选实施例对本申请实施例进行描述和说明。
在数据新增阶段:
在区块链中对新增数据的顺序进行编号,用i表示,i为从0开始的自然数。首先在链上存储数据编号i和数据
Figure 133264DEST_PATH_IMAGE002
,并根据
Figure 162400DEST_PATH_IMAGE002
计算数据哈希值
Figure 701091DEST_PATH_IMAGE040
、交易哈希值
Figure 448467DEST_PATH_IMAGE041
和区块哈希值
Figure 127710DEST_PATH_IMAGE042
,预设哈希函数H可以根据需求选择冲突率可以接受的函数。并通过预设区间函数F计算从
Figure 11352DEST_PATH_IMAGE043
Figure 485059DEST_PATH_IMAGE002
的区间哈希值,公式如下:
Figure 454152DEST_PATH_IMAGE044
其中,P为预设取模参数。
在计算得到数据
Figure 671507DEST_PATH_IMAGE002
的区间哈希值
Figure 173770DEST_PATH_IMAGE045
之后,也将
Figure 552799DEST_PATH_IMAGE045
一并存储至区块链中。
在关系型数据库中存储数据
Figure 9188DEST_PATH_IMAGE002
,并更新数据哈希值
Figure 30233DEST_PATH_IMAGE040
、交易哈希值
Figure 888468DEST_PATH_IMAGE041
和区块哈希值
Figure 703977DEST_PATH_IMAGE046
。关系型数据库自行计算区间函数值
Figure 647662DEST_PATH_IMAGE047
并存储。
在对关系型数据库的数据进行查询查验阶段:
获取多项待查验数据,然后确定区块链中连续的目标区间,比如一个查询可能涉及区块链的编号为1,2,3,6,9,那么连续的目标区间为[1,3],[6,6],[9,9]。如果下标比较靠近,则也可以把[6,6]和[9,9]合并为[6,9],以减少区间,提升计算速度。
利用预设区间函数F计算区块链中各目标区间的哈希值:
Figure 708285DEST_PATH_IMAGE048
Figure 421026DEST_PATH_IMAGE049
计算关系型数据库中待查验区间的哈希值,其中,
Figure 407436DEST_PATH_IMAGE038
Figure 103997DEST_PATH_IMAGE050
在本实施例中,关系型数据库本身是维护一个顺序存储的文件或者区间缓存;或者,关系型数据库为分布式数据库,待查验数据存储在分布式数据库中,分布式数据库按照自身所合并得到的待查验区间同时计算哈希值,可以提升待查验区间的计算效率。
把关系型数据库计算的各个待查验区间的哈希值请求到区块链中进行查验,因为区块链本身是可信且不可变的,区块链本身只需按照预设区间函数F简单计算对比即可,所以无需再次读取各项目标数据。
将区块链中各目标区间的哈希值和关系型数据库中各项待查验区间的哈希值对比,如果都相同,则代表此次查验的数据可信,否则,代表此次查验的数据不可信。
上述优选实施例解决了基于区块链对链下数据进行查验时存在查验效率低的问题,提升了查验效率。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一数据库中的多项待查验数据,以及获取各项待查验数据映射至第二数据库之后相对应的目标数据的编号,其中,各目标数据依照编号顺序存储;
S2,确定多项目标数据按照编号顺序合并之后得到的至少一个目标区间,其中,各目标区间为连续区间;
S3,获取对应于各目标区间的父区间的哈希值和兄弟区间的哈希值,并将各父区间的哈希值减去对应兄弟区间的哈希值,得到对应目标区间的哈希值,其中,各目标区间所包含的数据项为对应父区间所包含的数据项减去对应兄弟区间所包含的数据项;
S4,获取多项待查验数据按照存储顺序合并之后得到的且和目标区间对应的待查验区间,并计算各待查验区间的哈希值;
S5,将各目标区间的哈希值和对应待查验区间的哈希值进行对比,根据对比结果确定待查验数据是否可信。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
在一些实施例中,电子装置包括但不限于终端、计算机或者类似的运算装置。以运行在终端上为例,图2是本申请实施例的数据查验方法的终端的硬件结构框图。如图2所示,终端可以包括一个或多个(图2中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器204,可选地,上述终端还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的数据查验方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端的通信供应商提供的无线网络。在一个实例中,传输设备206包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备206可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
另外,结合上述实施例中的数据查验方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种数据查验方法。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据查验方法,其特征在于,包括:
获取第一数据库中的多项待查验数据,以及获取各项待查验数据映射至第二数据库之后相对应的目标数据的编号,其中,各所述目标数据依照所述编号顺序存储;
确定所述多项目标数据按照所述编号顺序合并之后得到的至少一个目标区间,其中,各所述目标区间为连续区间;
获取对应于各所述目标区间的父区间的哈希值和兄弟区间的哈希值,并将各所述父区间的哈希值减去对应兄弟区间的哈希值,得到对应目标区间的哈希值,其中,各所述目标区间所包含的数据项为对应父区间所包含的数据项减去对应兄弟区间所包含的数据项;获取对应于各所述目标区间的父区间的哈希值和兄弟区间的哈希值包括:根据各所述目标区间中末项目标数据的编号,确定对应于各所述目标区间的父区间,并获取预先存储的所述父区间的哈希值;根据各所述目标区间中首项目标数据的编号,确定对应于各所述目标区间的兄弟区间,并获取预先存储的所述兄弟区间的哈希值;
获取所述多项待查验数据按照存储顺序合并之后得到的且和所述目标区间对应的待查验区间,并计算各所述待查验区间的哈希值;
将各所述目标区间的哈希值和对应待查验区间的哈希值进行对比,根据对比结果确定所述待查验数据是否可信。
2.根据权利要求1所述的数据查验方法,其特征在于,所述目标区间满足第一预设条件,所述第一预设条件包括:
在同一目标区间的所述目标数据中,依序排列的每两个目标数据之间的编号的差值不大于第一预设阈值,在不同目标区间中,第一目标区间的右端点值和第二目标区间的左端点值的差值大于所述第一预设阈值。
3.根据权利要求2所述的数据查验方法,其特征在于,在确定所述多项目标数据按照所述编号顺序合并之后得到的至少一个目标区间之后,所述方法还包括:
判断是否存在两个相近的目标区间,其中,所述两个相近的目标区间满足第二预设条件,所述第二预设条件包括:所述第一目标区间的右端点值和所述第二目标区间的左端点值的差值小于第二预设阈值,且所述第一目标区间和所述第二目标区间的长度不大于第三预设阈值;
在判断到存在两个相近的目标区间的情况下,将所述两个相近的目标区间进行顺序合并。
4.根据权利要求1所述的数据查验方法,其特征在于,在获取各所述目标区间的父区间和兄弟区间的哈希值之前,所述方法还包括:
确定所述第二数据库中新增数据按照顺序存储而生成的编号,并将所述新增数据的编号写入所述第二数据库中;
根据所述新增数据的编号,确定新增区间和与所述新增区间相差一个数据单位的历史区间,并获取所述历史区间的哈希值,其中,所述新增区间和所述历史区间中首项数据的编号均为所述第二数据库中存储的数据的起始编号,所述新增区间的末项数据的编号为所述新增数据的编号,所述历史区间的末项数据的编号为在所述新增数据之前相间隔一个数据单位的数据的编号;
根据预设哈希函数计算所述新增数据的哈希值,并根据所述新增数据的哈希值和所述历史区间的哈希值,确定以及存储所述新增区间的哈希值。
5.根据权利要求4所述的数据查验方法,其特征在于,根据所述新增数据的哈希值和所述历史区间的哈希值,确定以及存储所述新增区间的哈希值包括:
将所述新增数据的哈希值和所述历史区间的哈希值相加,得到哈希值之和,采用预设取模参数对所述哈希值之和进行取模处理,得到所述新增区间的哈希值;
或者,采用预设取模参数对所述新增数据的哈希值进行取模处理得到第一取模结果,采用所述预设取模参数对所述历史区间的哈希值进行取模处理得到第二取模结果,采用所述预设取模参数对所述第一取模结果和所述第二取模结果之和进行取模处理,得到所述新增区间的哈希值。
6.根据权利要求1所述的数据查验方法,其特征在于,获取所述多项待查验数据按照存储顺序合并之后得到的且和所述目标区间对应的待查验区间,并计算各所述待查验区间的哈希值包括:
根据预设哈希函数对各所述待查验数据进行计算,得到多项待查验哈希值;
将所述多项待查验哈希值按照存储顺序合并,得到对应于所述目标区间的待查验区间;
将同一待查验区间的所述待查验哈希值相加,得到该待查验区间的哈希值。
7.根据权利要求1所述的数据查验方法,其特征在于,获取所述多项待查验数据按照存储顺序合并之后得到的且和所述目标区间对应的待查验区间,并计算各所述待查验区间的哈希值包括:
将所述多项待查验数据按照存储顺序合并,得到对应于所述目标区间的待查验区间,其中,各所述待查验区间为连续区间,且各所述待查验区间的左端点值不大于右端点值;
获取对应于各所述待查验区间的父区间的哈希值和兄弟区间的哈希值,并将各所述父区间的哈希值减去对应兄弟区间的哈希值,得到对应待查验区间的哈希值,其中,各所述待查验区间所包含的数据项为对应父区间所包含的数据项减去对应兄弟区间所包含的数据项。
8.根据权利要求6或7所述的数据查验方法,其特征在于,在将各所述目标区间的哈希值和对应待查验区间的哈希值进行对比之前,所述方法还包括:
将各所述待查验区间中待查验数据的哈希值相加,采用预设取模参数对各所述待查验数据的哈希值之和进行取模处理,得到各所述待查验区间的哈希值;
或者,采用预设取模参数对同一待查验区间的各所述待查验数据的哈希值进行取模处理,得到取模结果,采用所述预设取模参数对同一待查验区间的各所述取模结果之和进行取模处理,得到所述待查验区间的哈希值。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至8中任一项所述的数据查验方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的数据查验方法。
CN202110286844.7A 2021-03-17 2021-03-17 数据查验方法、电子装置和存储介质 Active CN112667675B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110286844.7A CN112667675B (zh) 2021-03-17 2021-03-17 数据查验方法、电子装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110286844.7A CN112667675B (zh) 2021-03-17 2021-03-17 数据查验方法、电子装置和存储介质

Publications (2)

Publication Number Publication Date
CN112667675A CN112667675A (zh) 2021-04-16
CN112667675B true CN112667675B (zh) 2021-06-01

Family

ID=75399392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110286844.7A Active CN112667675B (zh) 2021-03-17 2021-03-17 数据查验方法、电子装置和存储介质

Country Status (1)

Country Link
CN (1) CN112667675B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114661771A (zh) * 2022-04-14 2022-06-24 广州经传多赢投资咨询有限公司 一种股票数据的存储与读取方法、设备以及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522369A (zh) * 2018-10-12 2019-03-26 金蝶软件(中国)有限公司 数据的搜索方法、装置、计算机设备和存储介质
CN110825846A (zh) * 2019-10-24 2020-02-21 深圳市元征科技股份有限公司 数据处理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902617B (zh) * 2012-12-28 2017-06-09 华为技术有限公司 分布式数据库同步方法和系统
US10102233B1 (en) * 2018-04-30 2018-10-16 Merck Sharp & Dohme Corp. Indexing for database privacy and anonymization
CN111209252A (zh) * 2018-11-22 2020-05-29 杭州海康威视系统技术有限公司 一种文件元数据存储方法、装置及电子设备
CN110222067B (zh) * 2019-05-31 2021-04-30 杭州时戳信息科技有限公司 区块链智能合约锚定可信任外部数据库的方法及系统
CN111064711B (zh) * 2019-11-27 2020-11-10 重庆浙大网新科技有限公司 基于区块链的数据流检测方法、装置及服务器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522369A (zh) * 2018-10-12 2019-03-26 金蝶软件(中国)有限公司 数据的搜索方法、装置、计算机设备和存储介质
CN110825846A (zh) * 2019-10-24 2020-02-21 深圳市元征科技股份有限公司 数据处理方法及装置

Also Published As

Publication number Publication date
CN112667675A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
CN108153757A (zh) 一种哈希表管理的方法和装置
WO2021223662A1 (zh) 基于扫码的页面访问
US10694217B2 (en) Efficient length limiting of compression codes
CN111221840B (zh) 数据处理方法及装置、数据缓存方法、存储介质、系统
CN109739433A (zh) 数据处理的方法及终端设备
CN112667675B (zh) 数据查验方法、电子装置和存储介质
US8819651B2 (en) Efficient software cache accessing with handle reuse
CN106685429B (zh) 整数压缩方法及装置
CN110555079A (zh) 数据处理方法、装置、设备以及存储介质
CN110659905A (zh) 交易验证方法、装置、终端设备以及存储介质
US9384131B2 (en) Systems and methods for accessing cache memory
CN111695885B (zh) 基于减小交易输入的数字凭证区块链压缩方法
Ramaprasath et al. Performance optimization of big data in mobile networks
CN107612681A (zh) 一种基于sm3算法的数据处理方法、装置及系统
CN106372267A (zh) 基于浏览器的页面加载方法及装置
CN115794677A (zh) 缓存数据验证方法、装置、电子设备和存储介质
CN113064898A (zh) 一种基于链上合约微型索引的检索方法、装置和电子设备
CN110247939A (zh) 利用多级缓存技术实现的高性能混合框架
CN115021945B (zh) 区块链交易处理方法和系统
US11886725B2 (en) Accelerating decision tree inferences
US11838034B2 (en) System and method for blockchain data compaction
CN110784479B (zh) 一种数据校验方法、装置、电子设备及存储介质
CN117291789B (zh) 点云数据存储方法、装置、设备及可读存储介质
US20220283709A1 (en) Metadata size reduction for data objects in cloud storage systems
KR102017135B1 (ko) 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40049826

Country of ref document: HK

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20210416

Assignee: Hangzhou Quanke Technology Co.,Ltd.

Assignor: HANGZHOU HYPERCHAIN TECHNOLOGIES Co.,Ltd.

Contract record no.: X2022980029948

Denomination of invention: Data verification methods, electronic devices and storage media

Granted publication date: 20210601

License type: Common License

Record date: 20230115

EE01 Entry into force of recordation of patent licensing contract