CN114625767A - 一种数据查询方法、装置、设备及可读介质 - Google Patents
一种数据查询方法、装置、设备及可读介质 Download PDFInfo
- Publication number
- CN114625767A CN114625767A CN202210247877.5A CN202210247877A CN114625767A CN 114625767 A CN114625767 A CN 114625767A CN 202210247877 A CN202210247877 A CN 202210247877A CN 114625767 A CN114625767 A CN 114625767A
- Authority
- CN
- China
- Prior art keywords
- data
- query result
- query
- node
- queried
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 239000003999 initiator Substances 0.000 claims abstract description 11
- 238000012795 verification Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例公开了一种数据查询方法、装置、设备及可读介质,方案包括:业务服务器获取包含待查询数据的数据标识的第一查询请求;向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;根据所述节点签名信息,验证所述查询结果数据是否为有效数据;若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
Description
技术领域
本申请涉及数据查询技术领域,尤其涉及一种数据查询方法、装置、设备及可读介质。
背景技术
随着计算机技术的发展,越来越多的用户采用网络进行数据存储,可有效节省用户的存储空间,且便于管理。例如,区块链系统作为一种去中心化的数据库,由于其具有不可篡改性、可追溯性等特点,受到越来越多用户的青睐,用户可以将数据上传至区块链系统中进行保存,相应的,用户还可以查询区块链系统中存储的数据。通常情况下,区块链系统可供多个用户存储以及查询数据,区块链中海量的存储数据每天可能面临着大量的查询请求。
因此,如何提高查询速度,提高用户体验是目前亟待解决的问题。
发明内容
本说明书实施例提供一种数据查询方法、装置、设备及可读介质,用于提高数据查询的速度,提高用户体验。
为达到上述目的,本说明书实施例是这样实现的:
本说明书实施例提供的一种数据查询方法,包括:
业务服务器获取包含待查询数据的数据标识的第一查询请求;
向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
本说明书实施例提供的一种数据查询装置,包括:
请求获取模块,用于获取包含待查询数据的数据标识的第一查询请求;
请求发送模块,用于向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
结果获取模块,用于获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
结果验证模块,用于根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
结果反馈模块,用于若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
本说明书实施例提供的一种数据查询设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取包含待查询数据的数据标识的第一查询请求;
向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述的数据查询方法。
本说明书一个实施例实现了能够达到以下有益效果:
本说明书实施例中业务服务器可以基于用户的数据查询请求从缓存服务器中获取数据,其中,缓存服务器中的数据可以是从区块链系统获取的数据,进而当用户需要从区块链系统查询数据时,可以从缓存服务器中获取,提高数据查询的效率,并且为保证获取到的缓存服务器中的数据是有效的,还可以基于区块链节点的签名对数据进行验证,进而在提高数据查询效率的同时也可保证数据的有效性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中一种数据查询方法的应用场景示意图;
图2为本说明书实施例提供的一种数据查询方法的流程示意图;
图3为本说明书实施例提供的一种验证有效数据的流程示意图;
图4为本说明书实施例提供的一种验证有效数据的流程示意图;
图5为本说明书实施例提供的对应于图2的一种数据查询装置的结构示意图;
图6为本说明书实施例提供的对应于图2的一种数据查询设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
现有技术中,区块链系统的区块链节点在存储数据时,通常是将数据存储在硬盘存储空间,当用户从区块链节点获取数据时,需要读取节点的硬盘数据,所需时间较长,尤其是在区块链系统中存储有海量数据,且查询量较大时,节点读取数据的时间会明显加长,影响用户查询数据的效率。
为了解决现有技术中的缺陷,本方案给出了以下实施例:
图1为本说明书实施例中一种数据查询方法的应用场景示意图。如图1所示,该场景中主要包括业务服务器1、缓存服务器2以及区块链系统3。业务服务器1可以根据用户的数据查询需求向缓存服务器2发送数据查询请求,缓存服务器2可以将该请求对应的缓存存储的数据反馈给业务服务器1,当缓存服务器2中的数据不能满足用户需求时,业务服务器1可以向区块链系统3的区块链节点发送数据查询请求,从区块链系统3的至少一个区块链节点中获取用户所需数据。本说明书实施例中可以利用缓存服务器2为用户提供查询数据,可以减少对区块链系统的访问,提高数据查询效率。
考虑到缓存服务器2的缓存服务通常为中心化服务,可能存在造假风险,为确保从缓存服务器2获取的数据是有效的,业务服务器可以根据数据中包含的区块链节点的签名信息对数据进行验证,将验证通过的数据提供给用户,从而确保用户可以获得有效数据。
实际应用中,区块链系统3中可以预先存储有查询数据,例如,个人或企事业单位将需要存证的数据上传到区块链系统3中进行存证,当需要该数据时,业务服务器1可以从区块链系统3中获取。缓存服务器2中可以缓存存储有业务服务器1查询过的至少部分历史查询结果,也可以存储有至少部分由缓存服务器2上传至区块链系统3的数据,当缓存服务器2中包含有用户所需数据时,可以将自身缓存存储的数据反馈给业务服务器1。
接下来,将针对说明书实施例提供的一种数据查询方法结合附图进行具体说明:
图2为本说明书实施例提供的一种数据查询方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于应用服务器的程序或应用客户端。
如图2所示,该流程可以包括以下步骤:
步骤202:业务服务器获取包含待查询数据的数据标识的第一查询请求。
实际应用中,人们可以将需要保存的数据上传至区块链系统,利用区块链系统的可靠性和不可篡改保证数据的有效性。例如,公检法等部门可以利用区块链系统对证据存证。
业务服务器可以是为用户提供数据查询业务的服务器,例如,提供数据查询服务的客户端的服务器,用户可以通过该客户端查询上链数据。用户可以在客户端输入待查询数据的数据标识,向业务服务器发起查询请求,业务服务器可以根据该数据标识查询相应的数据反馈给用户。实际应用中,数据标识可以是在将数据上链的过程中生成的与数据对应的标识,根据该数据标识可以查找相应的数据,例如,该数据标识可以是例如,姓名、证件号、档案编号等可以区分不同数据的标识。
本说明书实施例中数据还可以以键值对的形式存在。键值对是一种数据存在形式,具体可以表示为“key-value(键-值)”形式,其中,key(键)可以是数据对应的哈希值;value(值)可以是数据本身;又如,key也可以是用户id,value是用户的某些配置数据。实际应用中,key(键)可以作为数据标识,根据key-value的对应关系查找相应的value数据。
步骤204:向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求。
缓存服务器可以是主要基于内存缓存、提供数据查询的服务器,本说明书实施例中缓存服务器可以缓存有业务服务器从区块链系统近期查询到的数据,例如,当用户通过客户端向业务服务器发起数据查询请求后,业务服务器可以从区块链系统中获取数据,该数据可以经过缓存服务器发送给业务服务器,或者区块链系统将该数据发送给业务服务器时,也将该数据发送给业务服务器,从而缓存服务器中可以缓存有业务服务器从区块链系统近期查询到的数据。
实际应用中,在将数据上链时,提供上链服务的业务服务器可以将待上链数据发送给缓存服务器,再由缓存服务器将数据发送给区块链系统,进而,缓存服务器中还可以缓存待上链数据。
步骤206:获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息。
本说明书实例中业务服务器可以向缓存服务器发起数据查询请求,请求从缓存服务器的缓存中获取查询数据,若缓存服务器的缓存中包含要查询的数据,则可响应业务服务器的请求将查询结果反馈给业务服务器。
在数据上链后,区块链节点可以将该数据签名后存储,业务服务器和/或缓存服务器从区块链节点获取到的数据可以是包含区块链节点签名的数据。
步骤208:根据所述节点签名信息,验证所述查询结果数据是否为有效数据。
业务服务器可以根据查询结果中包含的节点签名信息对从缓存服务器中获取的查询结果数据进行验证,判断缓存服务器中缓存的该查询结果数据是否被篡改,若没有被篡改则该数据与区块链系统中的数据一致,则该数据为有效数据。
步骤210:若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
应当理解,本说明书一个或多个实施例所述的方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。
图2中的方法,业务服务器可以基于用户的数据查询请求从缓存服务器中获取数据,提高数据查询的效率,并且为保证获取到的缓存服务器中的数据是有效的,还可以基于区块链节点的签名对数据进行验证,进而在提高数据查询效率的同时也可保证数据的有效性。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
可选的,所述节点签名信息为将所述查询结果数据发送至所述缓存服务器的一个区块链节点的签名信息,步骤208中验证所述查询结果数据是否为有效数据,具体可以包括:
判断所述一个区块链节点是否为安全节点,得到第一判断结果;
若所述第一判断结果表示所述一个区块链节点为安全节点,则采用所述节点签名信息验证所述查询结果数据是否未被篡改;
若所述查询结果数据通过验证,确定所述查询结果数据为有效数据。
其中,安全节点可以理解为未遭受过攻击的节点,其存储的数据是未被篡改的,是可信的。
实际应用中,将数据上传到区块链系统过程中,若数据经过区块链节点的共识机制后,区块链节点可以将数据中添加自身的节点签名信息,保存签名后的数据,还可以将该签名和/或签名后的数据广播给其他区块链节点。
本说明书实施例中缓存服务器中缓存存储的数据可以包含数据本身、节点安全信息以及节点签名信息,其中可以根据节点安全信息确定发送该数据的目标节点是否为安全节点,根据节点签名信息判断该数据是否由目标节点发送的,且数据是否被篡改过。
签名信息可以是只有数据信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对数据信息的发送者发送数据真实性的一个有效证明,由该签名信息可以确定该数据是由区块链系统中的哪个区块链节点发送的,并且还可以验证该数据是否被篡改。
实际应用中,每个区块链节点都可以拥有自身的一对公钥和私钥,假设节点接收到了数据A,可以通过哈希运算得到数据A的摘要B,将摘要B利用私钥进行签名,得到节点签名信息C,最后可以将节点签名信息C和数据A一起保存在节点中。
当业务服务器接收到查询数据A的第一查询请求,基于该请求,业务服务器向缓存服务器发送查询数据A的第二查询请求,假设该业务服务器或者其他业务服务器之前从区块链节点M中获取过数据A,区块链节点M也将数据A和节点签名信息C发送给了缓存服务器。
图3为本说明书实施例提供的一种验证有效数据的流程示意图,如图3所示,缓存服务器310可以基于第二查询请求将自身缓存的数据A和区块链节点M的节点签名信息C发送给业务服务器320;其中,数据A和节点签名信息C是由区块链系统330中的区块链节点M发送给缓存服务器310的;业务服务器320将数据A经过哈希运算得到数据摘要B’,将节点签名信息C利用区块链节点M的公钥进行验签,其中若可以利用该公钥可以得到摘要B,则说明数据A是由区块链节点M发送的,假设区块链节点M为安全节点,可以进一步判断数据A是否被篡改;其中,若B’和B一致,则说明业务服务器320接收到的缓存服务器310发送的数据A是未被篡改的,是真实有效的,业务服务器可以将该数据A反馈给查询请求的发起方。
作为另一种实施方式,本说明书实施例中缓存服务器中的数据还可以包含数据本身、区块链系统中各个区块链节点的节点签名信息,根据各个区块链节点的节点签名信息验证数据是否有效,具体的,本说明书实施例中节点签名信息还可以为存储所述查询结果数据的区块链系统中的各个区块链节点的签名信息,所述验证所述查询结果数据是否为有效数据,具体可以包括:
分别采用所述各个区块链节点的签名信息验证所述查询结果数据是否未被篡改;
若所述查询结果数据通过验证,确定所述查询结果数据为有效数据。
图4为本说明书实施例提供的一种验证有效数据的流程示意图,如图4所示,假设区块链系统430包括5个区块链节点M1,M2,M3,M4和M5,数据A上链时,区块链节点分别对数据A进行哈希运算得到数据摘要B1,B2,B3,B4及B5,然后利用各自的私钥对摘要进行签名,得到各自节点的节点签名信息C1,C2,C3,C4及C5,每个节点都可以将各自得到的签名信息广播给其他节点,即每个节点中可包含各个节点的签名信息。假设业务服务器420或者其他业务服务器之前从区块链节点M1中获取过数据A,区块链节点M1也将数据A和自身的节点签名信息C1以及其他节点的节点签名信息C2,C3,C4及C5发送给了缓存服务器410;缓存服务器410中可以包含数据A以及各个节点的节点签名信息C1~C5,缓存服务器可以基于第二查询请求将自身缓存的数据A和各个节点签名信息发送给业务服务器;业务服务器420将数据A经过第一哈希运算得到数据摘要B1’,将节点签名信息C1利用节点M1的公钥进行验签,若可以利用该公钥可以得到摘要B1,且B1和B1’一致,则说明业务服务器420获取到的数据A是节点M1中存储的数据A;同理,业务服务器420还可以将数据A经过第二哈希运算得到数据摘要B2’,将节点签名信息C2利用节点M2的公钥进行验签,若可以利用该公钥可以得到摘要B2,且B2和B2’一致,则说明业务服务器获取到的数据A与节点M2中存储的数据A是一致的,以此类推,业务服务器420可以将数据A经过第五哈希运算得到数据摘要B5’,将节点签名信息C5利用节点M5的公钥进行验签,若可以利用该公钥可以得到摘要B5,且B5和B5’一致,则说明业务服务器获取到的数据A与节点M5中存储的数据A是一致的,进而可以根据各个节点的签名信息验证数据A是否与各个节点中存储的数据A是否一致,若验证结果表示业务服务器得到的数据A与区块链中各个数据节点中存储的数据A都一致,则说明业务服务器得到的数据A是可信的,未被篡改的,为有效数据。
可以理解的是上述第一哈希运算、第二哈希运算以及第五哈希运算,仅是为了说明对不同节点的相关数据可以利用相对应的哈希运算,实际应用中各哈希运算可以是相同的哈希运算也可以是不同的,这里不作具体限定,只要能够实现对数据的验证即可。
实际应用中,业务服务器还可以将近期查询的历史查询结果缓存在自己的本地缓存中,为提高数据查询效率,本说明书实施例中步骤204中所述向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求之前,还可以包括:
在所述业务服务器的本地缓存查询所述数据标识对应的数据,得到第二查询结果;
所述向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求,具体可以包括:
若所述第二查询结果表示查询失败,向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求。
其中,当业务服务器的本地缓存中存在用户所需的查询数据时,可以将本地缓存存储的数据反馈给用户,无需再向缓存服务器和/或区块链系统询问数据;当业务服务器的本地缓存中没有用户所需数据时,再向缓存服务器和/或区块链系统询问数据,可提高数据查询的效率,并且可减少对缓存服务器和/或区块链系统的访问,节约资源。
本说明书实施例中可以基于统计的方法确定节点的安全性,例如,当从区块链系统的一个节点获取数据后,发现该数据有被篡改过的记录,可以认为该节点是不安全的,可以将该节点标记为不安全节点;又如,非法用户可能对某个或某些区块链节点进行重放攻击,当该节点受到多次非正常访问时,可以认为该节点是受到攻击的节点,也可以将该节点标记为不安全节点。当发现节点异常时,可以将该节点进行相应的标记,也可以人工录入节点的安全信息,上述步骤中判断所述一个区块链节点是否为安全节点,具体可以包括:
获取人工录入的节点安全信息;
根据所述节点安全信息,判断所述一个区块链节点是否为安全节点。
当确定区块链节点为安全节点时,可以进一步确定缓存服务器中缓存的数据是否为有效的。
作为另一种实施方式,本说明书实施例中业务服务器还可以定期或者不定期的从区块链系统的区块链节点中获取数据,利用获取的数据验证区块链节点是否安全。上述步骤中判断所述一个区块链节点是否为安全节点,具体可以包括:
获取预先对所述一个区块链节点的安全性验证结果;
所述验证所述查询结果数据是否为有效数据之前,还包括:
获取所述一个区块链节点存储的区块数据;
获取所述区块数据中的原始存证数据对应的哈希值;所述哈希值由将所述原始存证数据上传至区块链系统的业务服务器生成;
根据所述哈希值验证所述原始存证数据是否未被篡改,得到所述安全性验证结果。
实际应用中,区块链系统中可以存储有多个业务服务器上传的数据,也可以为多个业务服务器提供数据查询服务,业务服务器在上传数据时,可以将多个数据以数据队列的形式上链,其中,业务服务器可以获取待上链的多个数据,确定各个数据在该多个数据构成的数据队列中的队列标识,然后根据该队列标识,以及各个数据的值,生成各个数据对应的队列哈希值,还可以将各数据的队列标识以及对应的队列哈希值发送给其他业务服务器,以便该业务服务器以及其他业务服务器可以根据数据的队列标识以及队列哈希值从区块链系统中查找数据。
本说明书实施例中业务服务器验证区块链节点的安全性时,可以获取待验证区块链节点中存储的区块数据,计算该区块数据中存证数据对应的哈希值,业务服务器中还可以获取将该存证数据上传至区块链系统的业务服务器生成的该存证数据的哈希值,然后,判断从区块链节点获取的数据的哈希值是否与从上传数据的业务服务器中获取的哈希值一致,若一致,则说明区块链节点中的数据是未被篡改的,该区块链节点为安全节点。
其中,上述所述获取所述区块数据中的原始存证数据对应的哈希值,具体包括获取另外的业务服务器广播的所述原始存证数据对应的哈希值;
将所述原始存证数据上传至区块链系统的业务服务器生成所述哈希值,具体可以包括:
所述另外的业务服务器确定所述原始存证数据在待上传至区块链系统的数据队列中的顺序;
基于所述顺序,若所述原始存证数据为所述数据队列中的首个数据,对所述原始存证数据进行哈希运算,得到所述原始存证数据在所述数据队列中的哈希值;
若所述原始存证数据为所述数据队列中除首个数据的任意一个数据,基于所述原始存证数据的值,以及所述数据队列中所述原始存证数据的前一个数据在所述数据队列中的哈希值进行求和,对求和结果进行哈希运算,得到所述原始存证数据在所述数据队列中的哈希值。
本说明书实施例中若业务服务器从区块链节点获取的用于验证的数据是队列数据的首个数据,可以计算该数据的哈希值,比较其与从上传该数据的业务服务器处获得的该数据的哈希值是否一致,确定区块链节点中的数据是否被篡改;
若业务服务器从区块链节点获取的用于验证的数据是队列数据的非首个数据,业务服务器还需要从区块链节点中获取数据队列中该数据之前的所有数据,然后计算第一个数据的哈希值,根据第一个数据的哈希值与第二个数据求和得到第二个数据的哈希值,以此类推,根据当前数据的值,以及数据队列中该当前数据的前一个数据的队列哈希值进行求和,对求和结果进行哈希运算,得到该当前数据的队列哈希值,直到计算得到用于验证的数据的哈希值;然后比较其与从上传该数据的业务服务器处获得的该数据的哈希值是否一致,确定区块链节点中的数据是否被篡改。
假设数据队列中包含10个数据,按照从1到10的顺序排列,第一个数据为A1,进行哈希运算得到对应的队列哈希值B1,第二个数据为A2,进行哈希运算得到队列哈希值B2,其中,B2=hash(B1+A2),以此类推,第十个数据为A10对应的队列哈希值B10=hash(B9+A10)。
其中,当业务服务器从区块链节点获取的用于验证的数据是正常数据,但获取的在数据队列中处于该数据之前的任意数据是被篡改的时,计算得到的该数据的哈希值与从上传该数据的业务服务器处获得的该数据的哈希值也会不一致,进而可以确定区块链节点中的数据队列中的某数据是被篡改的,也可以说明该区块链节点是不安全的,从而可以更全面的验证区块链节点的安全性。
在实际应用中,为减少数据传输量以及数据的存储量,上传数据的业务服务器可能仅将数据队列中首个数据对应的第一队列哈希值,以及数据队列中最后一个数据对应的第二队列哈希值,发送给其他业务服务器。此时业务服务器可以从区块链节点获取整个数据队列的数据,基于数据在数据队列中的顺序,对于数据队列中的首个数据,对首个数据进行队列哈希运算,得到首个数据对应的队列哈希值;对于数据队列中除首个数据的任意一个数据,基于该任意一个数据的值,以及数据队列中该任意一个数据的前一个数据的队列哈希值进行求和,对求和结果进行哈希运算,得到该任意一个数据的队列哈希值,进而可以得到数据队列中最后一个数据的哈希值。从而可以判断计算得到的首个数据和/或最后一个数据对应的哈希值与从上传数据的业务服务器中获取的第一队列哈希值和/或第二队列哈希值是否一致,来确定区块链节点的安全性。
实际应用中,用户可能对相同的数据进行重复的查询,为提高业务服务器反馈查询数据的效率,本说明书实施例中的方法还可以包括:
若所述查询结果数据为有效数据,将所述查询结果数据缓存在所述业务服务器的本地缓存。
当用户查询数据时业务服务器可以先查看自己本地缓存中是否存在用户所需数据,若存在,可将本地缓存数据反馈给用户;并且,业务服务器的本地缓存中可仅保存有效数据,提高本地缓存利用率。
考虑到缓存是一种暂时性的、易失性的存储方式,本说明书实施例中还可以在预设时间点,将缓存在所述业务服务器的本地缓存的所述查询结果数据同步存储至所述业务服务器的非易失性存储器。
其中,预设时间点可以是根据实际需要设定的时间点,例如,可以是业务服务器工作量较小的时间点,如凌晨2点至4点,本说明书实施例中对具体的时间不作限定,只要能够满足需求即可。
实际应用中,由于缓存服务器的缓存服务通常是中心化的存储服务器,其中的数据可能被篡改,当区块链节点受到攻击,其存储的数据也可能被篡改,篡改后的数据可以称为非有效数据,为减少非有效数据对缓存服务器的缓存空间的占用,业务服务器可以向缓存服务器发送删除非有效数据的指令,缓存服务器可以基于该指令删除对应的非有效数据,具体的,本说明书实施例提供的数据查询方法,还可以包括:
若所述查询结果数据为非有效数据,向所述缓存服务器发送指令,所述指令用于指示所述缓存服务器删除存储在所述缓存服务器的所述查询结果数据。
实际应用中,当缓存服务器为查询到用户所需数据时,还可以将表示为查询到数据的信息反馈给业务服务器,以便业务服务器将表示未查询到数据的结果反馈给用户,具体的,本说明书实施例提供的数据查询方法,还可以包括:
获取所述缓存服务器反馈的针对所述数据标识的第二查询结果;所述第二查询结果表示未查询到所述待查询数据。
为避免一些无意义的查询,减少业务服务器、缓存服务器以及区块链系统的工作量,例如,对非有效数据的查询、对未存储数据的查询等,本说明书实施例中,还可以对执行过查询但未查询结果的数据标识进行标记,当再次查询的数据对应有该标记时,可不再执行查询步骤,直接将表示未查询到结果的信息反馈给用户。具体的,具体的,本说明书实施例提供的数据查询方法,还可以包括:
所述缓存服务器从所述缓存服务器存储的数据中查找到所述数据标识对应的标记,所述标记表示在区块链系统中查询过且未查询到所述数据标识对应的数据;
所述缓存服务器基于所述标记,生成所述第二查询结果。
例如,当缓存服务器中缓存的数据是非有效数据时或者从区块链节点中获取的数据为非有效数据时,业务服务器可以将该数据的数据标识对应的打上标记,当用户再次查询该数据时,可以根据该标记反馈未查询到的结果;当用户查询的数据为区块链系统中未存储的数据时,缓存服务器可以记录该查询数据的数据标识,并在数据标识对应的打上标记,当用户再次查询该数据时,也可以根据该标记反馈未查询到的结果。
实际应用中,当确定从区块链节点获取的数据为非有效数据时,可以认为该节点为非安全节点,还可以将该节点标记为非安全节点,之后不再从该节点获取数据。
实际应用中,当缓存空间中存储的数据过多时,可能会影响服务器的性能,为减少缓存数据对服务器的影响,本说明书实施例中可以对服务器中的缓存数据进行预设条件的删除,合理释放服务器的缓存空间。
具体的,本说明书实施例中的方法还可以包括:
所述业务服务器记录所述业务服务器本地缓存的历史查询结果数据的被查询频次;
当所述业务服务器本地缓存的历史查询结果数据的数据量超过设定阈值,将所述被查询频次低于设定频次的历史查询结果数据确定为待删除历史查询结果数据,或者,按照所述被查询频次的数值从大到小的顺序排列后,将序列中的后n个被查询频次对应的历史查询结果数据确定为待删除历史查询结果数据;
删除所述待删除历史查询结果数据。
本说明书实施例中可以将被查询频次低于设定频次的历史查询结果删除,而当查询频次不低于设定频次,但业务服务器本地缓存的历史查询结果数据的数据量仍超过设定阈值时,还可以按照被查询频次的数值从大到小的顺序排列后,将序列中的后n个被查询频次对应的历史查询结果数据删除,可防止业务服务器的本地缓存中缓存存储过多的历史查询结果数据。
作为另一种实施方法,本说明书实施例中还可以根据时间条件删除缓存数据,其中,本说明书实施例中的方法还可以包括:
所述业务服务器记录所述业务服务器本地缓存的历史查询结果数据的被查询时间;
当所述业务服务器本地缓存的历史查询结果数据的数据量超过设定阈值,将所述被查询时间距离当前时刻大于设定时长的历史查询结果数据确定为待删除历史查询结果数据,或者,按照所述被查询时间距离当前时刻的时长从大到小的顺序排列后,将序列中的前n个被查询时间对应的历史查询结果数据确定为待删除历史查询结果数据;
删除所述待删除历史查询结果数据。
可以理解的是,在实际应用中,还可以根据需要设置其他的预设条件,合理释放服务器的缓存空间,本说明书实施例中在此不作具体限定,只要能够满足需求即可。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图5为本说明书实施例提供的对应于图2的一种数据查询装置的结构示意图。如图5所示,该装置可以包括:
请求获取模块502,用于获取包含待查询数据的数据标识的第一查询请求;
请求发送模块504,用于向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
结果获取模块506,用于获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
结果验证模块508,用于根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
结果反馈模块510,用于若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
基于图5的装置,本说明书实施例还提供了该装置的一些具体实施方案,下面进行说明。
可选的,所述节点签名信息为将所述查询结果数据发送至所述缓存服务器的一个区块链节点的签名信息,所述结果验证模块,具体可以用于:
判断所述一个区块链节点是否为安全节点,得到第一判断结果;
若所述第一判断结果表示所述一个区块链节点为安全节点,则采用所述节点签名信息验证所述查询结果数据是否未被篡改;
若所述查询结果数据通过验证,确定所述查询结果数据为有效数据。
可选的,所述节点签名信息为存储所述查询结果数据的区块链系统中的各个区块链节点的签名信息,所述结果验证模块,具体可以用于:
分别采用所述各个区块链节点的签名信息验证所述查询结果数据是否未被篡改;
若所述查询结果数据通过验证,确定所述查询结果数据为有效数据。
可选的,本说明书实施例中提供的数据查询装置,还可以包括:
本地查询模块,用于在业务服务器的本地缓存查询所述数据标识对应的数据,得到第二查询结果;
所述请求发送模块,具体可以用于:
若所述第二查询结果表示查询失败,向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图6为本说明书实施例提供的对应于图2的一种数据查询设备的结构示意图。如图6所示,设备600可以包括:
至少一个处理器610;以及,
与所述至少一个处理器通信连接的存储器630;其中,
所述存储器630存储有可被所述至少一个处理器610执行的指令620,所述指令被所述至少一个处理器610执行,以使所述至少一个处理器610能够:
获取包含待查询数据的数据标识的第一查询请求;
向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
基于同样的思路,本说明书实施例还提供了上述方法对应的计算机可读介质。计算机可读介质上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述数据查询方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图4所示的设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字符助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字符多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (20)
1.一种数据查询方法,包括:
获取包含待查询数据的数据标识的第一查询请求;
向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
2.根据权利要求1所述的方法,所述节点签名信息为将所述查询结果数据发送至所述缓存服务器的一个区块链节点的签名信息,所述验证所述查询结果数据是否为有效数据,具体包括:
判断所述一个区块链节点是否为安全节点,得到第一判断结果;
若所述第一判断结果表示所述一个区块链节点为安全节点,则采用所述节点签名信息验证所述查询结果数据是否未被篡改;
若所述查询结果数据通过验证,确定所述查询结果数据为有效数据。
3.根据权利要求1所述的方法,所述节点签名信息为存储所述查询结果数据的区块链系统中的各个区块链节点的签名信息,所述验证所述查询结果数据是否为有效数据,具体包括:
分别采用所述各个区块链节点的签名信息验证所述查询结果数据是否未被篡改;
若所述查询结果数据通过验证,确定所述查询结果数据为有效数据。
4.根据权利要求1所述的方法,所述向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求之前,还包括:
在业务服务器的本地缓存查询所述数据标识对应的数据,得到第二查询结果;
所述向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求,具体包括:
若所述第二查询结果表示查询失败,向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求。
5.根据权利要求2所述的方法,所述判断所述一个区块链节点是否为安全节点,具体包括:
获取人工录入的节点安全信息;
根据所述节点安全信息,判断所述一个区块链节点是否为安全节点。
6.根据权利要求2所述的方法,所述判断所述一个区块链节点是否为安全节点,具体包括:
获取预先对所述一个区块链节点的安全性验证结果;
所述验证所述查询结果数据是否为有效数据之前,还包括:
获取所述一个区块链节点存储的区块数据;
获取所述区块数据中的原始存证数据对应的哈希值;所述哈希值由将所述原始存证数据上传至区块链系统的业务服务器生成;
根据所述哈希值验证所述原始存证数据是否未被篡改,得到所述安全性验证结果。
7.根据权利要求6所述的方法,所述获取所述区块数据中的原始存证数据对应的哈希值,具体包括:
获取另外的业务服务器广播的所述原始存证数据对应的哈希值;
将所述原始存证数据上传至区块链系统的业务服务器生成所述哈希值,具体包括:
所述另外的业务服务器确定所述原始存证数据在待上传至区块链系统的数据队列中的顺序;
基于所述顺序,若所述原始存证数据为所述数据队列中的首个数据,对所述原始存证数据进行哈希运算,得到所述原始存证数据在所述数据队列中的哈希值;
若所述原始存证数据为所述数据队列中除首个数据的任意一个数据,基于所述原始存证数据的值,以及所述数据队列中所述原始存证数据的前一个数据在所述数据队列中的哈希值进行求和,对求和结果进行哈希运算,得到所述原始存证数据在所述数据队列中的哈希值。
8.根据权利要求1所述的方法,还包括:
若所述查询结果数据为有效数据,将所述查询结果数据缓存在业务服务器的本地缓存。
9.根据权利要求8所述的方法,还包括:
在预设时间点,将缓存在所述业务服务器的本地缓存的所述查询结果数据同步存储至所述业务服务器的非易失性存储器。
10.根据权利要求1所述的方法,还包括:
若所述查询结果数据为非有效数据,向所述缓存服务器发送指令,所述指令用于指示所述缓存服务器删除存储在所述缓存服务器的所述查询结果数据。
11.根据权利要求1所述的方法,还包括:
获取所述缓存服务器反馈的针对所述数据标识的第二查询结果;所述第二查询结果表示未查询到所述待查询数据。
12.根据权利要求11所述的方法,还包括:
所述缓存服务器从所述缓存服务器存储的数据中查找到所述数据标识对应的标记,所述标记表示在区块链系统中查询过且未查询到所述数据标识对应的数据;
所述缓存服务器基于所述标记,生成所述第二查询结果。
13.根据权利要求1所述的方法,还包括:
记录所述业务服务器本地缓存的历史查询结果数据的被查询频次;
当业务服务器本地缓存的历史查询结果数据的数据量超过设定阈值,将所述被查询频次低于设定频次的历史查询结果数据确定为待删除历史查询结果数据,或者,按照所述被查询频次的数值从大到小的顺序排列后,将序列中的后n个被查询频次对应的历史查询结果数据确定为待删除历史查询结果数据;
删除所述待删除历史查询结果数据。
14.根据权利要求1所述的方法,还包括:
记录所述业务服务器本地缓存的历史查询结果数据的被查询时间;
当业务服务器本地缓存的历史查询结果数据的数据量超过设定阈值,将所述被查询时间距离当前时刻大于设定时长的历史查询结果数据确定为待删除历史查询结果数据,或者,按照所述被查询时间距离当前时刻的时长从大到小的顺序排列后,将序列中的前n个被查询时间对应的历史查询结果数据确定为待删除历史查询结果数据;
删除所述待删除历史查询结果数据。
15.根据权利要求1所述的方法,所述缓存服务器中缓存有所述业务服务器从区块链系统中查询过的至少部分历史查询结果;
和/或,所述缓存服务器中缓存有至少部分由所述缓存服务器上传至区块链系统的数据。
16.一种数据查询装置,包括:
请求获取模块,用于获取包含待查询数据的数据标识的第一查询请求;
请求发送模块,用于向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
结果获取模块,用于获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
结果验证模块,用于根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
结果反馈模块,用于若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
17.根据权利要求16所述的装置,所述节点签名信息为存储所述查询结果数据的区块链系统中的各个区块链节点的签名信息,所述结果验证模块,具体用于:
分别采用所述各个区块链节点的签名信息验证所述查询结果数据是否未被篡改;
若所述查询结果数据通过验证,确定所述查询结果数据为有效数据。
18.根据权利要求16所述的装置,还包括:
本地查询模块,用于在业务服务器的本地缓存查询所述数据标识对应的数据,得到第二查询结果;
所述请求发送模块,具体用于:
若所述第二查询结果表示查询失败,向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求。
19.一种数据查询设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取包含待查询数据的数据标识的第一查询请求;
向缓存服务器发送包含所述待查询数据的数据标识的第二查询请求;
获取所述缓存服务器反馈的针对所述数据标识的第一查询结果;所述第一查询结果中至少包括查询结果数据以及存储所述查询结果数据的区块链节点的节点签名信息;
根据所述节点签名信息,验证所述查询结果数据是否为有效数据;
若所述查询结果数据为有效数据,将所述查询结果数据反馈至所述第一查询请求的发起方。
20.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现权利要求1至15中任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210247877.5A CN114625767B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法、装置、设备及可读介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210247877.5A CN114625767B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法、装置、设备及可读介质 |
CN202011249195.5A CN112214519B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法、装置、设备及可读介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011249195.5A Division CN112214519B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法、装置、设备及可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114625767A true CN114625767A (zh) | 2022-06-14 |
CN114625767B CN114625767B (zh) | 2024-09-03 |
Family
ID=74056983
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210247877.5A Active CN114625767B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法、装置、设备及可读介质 |
CN202011249195.5A Active CN112214519B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法、装置、设备及可读介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011249195.5A Active CN112214519B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法、装置、设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114625767B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116975097A (zh) * | 2023-04-04 | 2023-10-31 | 上海卡方信息科技有限公司 | 一种数据查询的方法、装置、存储介质及电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112818405A (zh) * | 2021-03-01 | 2021-05-18 | 北京苏博云科可信空间数据技术有限公司 | 一种区块链的数据处理方法及装置、可读存储介质 |
CN113221164A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数据核验方法及装置、电子设备 |
CN113672660B (zh) * | 2021-08-02 | 2024-05-14 | 支付宝(杭州)信息技术有限公司 | 一种数据查询方法、装置及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110753084A (zh) * | 2019-09-06 | 2020-02-04 | 平安普惠企业管理有限公司 | 上链数据读取方法、缓存服务器及计算机可读存储介质 |
CN110990456A (zh) * | 2019-11-29 | 2020-04-10 | 山东爱城市网信息技术有限公司 | 一种基于区块链的信息读取转化方法及设备、介质 |
CN111104429A (zh) * | 2019-12-19 | 2020-05-05 | 中思博安科技(北京)有限公司 | 一种数据访问方法及装置 |
CN111242620A (zh) * | 2020-01-15 | 2020-06-05 | 阳光易购(湖南)科技有限公司 | 区块链交易系统的数据缓存及查询方法、终端及存储介质 |
CN111698345A (zh) * | 2020-06-10 | 2020-09-22 | 山东伏羲智库互联网研究院 | 域名查询方法、递归服务器和存储介质 |
CN111737724A (zh) * | 2020-08-26 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、智能设备及存储介质 |
CN111797138A (zh) * | 2020-06-29 | 2020-10-20 | 北京荷月科技有限公司 | 一种可信前置链上数据查询方法和系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642814B2 (en) * | 2015-10-14 | 2020-05-05 | Paxata, Inc. | Signature-based cache optimization for data preparation |
CN107391649A (zh) * | 2017-07-14 | 2017-11-24 | 浙商银行股份有限公司 | 一种提升区块链查询效率的系统及方法 |
CN109213791A (zh) * | 2018-08-22 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 数据处理方法、区块链节点、系统和计算机可读存储介质 |
CN109492019B (zh) * | 2018-10-16 | 2024-03-08 | 平安科技(深圳)有限公司 | 业务请求响应方法、装置、计算机设备和存储介质 |
CN109522462B (zh) * | 2018-10-18 | 2021-06-04 | 上海达家迎信息科技有限公司 | 一种基于区块链的云查询方法、装置、设备及存储介质 |
CN109635585B (zh) * | 2018-12-07 | 2021-06-08 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、代理节点和介质 |
CN111382458A (zh) * | 2018-12-28 | 2020-07-07 | 富泰华工业(深圳)有限公司 | 数据分批封存方法、装置及计算机存储介质 |
CN110232143A (zh) * | 2019-06-18 | 2019-09-13 | 北京艾摩瑞策科技有限公司 | 通过区块链的问答数据查询方法及其设备 |
CN110704428A (zh) * | 2019-09-06 | 2020-01-17 | 深圳壹账通智能科技有限公司 | 区块链的数据索引方法、装置、计算机设备和存储介质 |
CN111769958B (zh) * | 2020-09-02 | 2021-01-01 | 百度在线网络技术(北京)有限公司 | 区块链跨链处理方法、装置、设备和存储介质 |
-
2020
- 2020-11-10 CN CN202210247877.5A patent/CN114625767B/zh active Active
- 2020-11-10 CN CN202011249195.5A patent/CN112214519B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110753084A (zh) * | 2019-09-06 | 2020-02-04 | 平安普惠企业管理有限公司 | 上链数据读取方法、缓存服务器及计算机可读存储介质 |
CN110990456A (zh) * | 2019-11-29 | 2020-04-10 | 山东爱城市网信息技术有限公司 | 一种基于区块链的信息读取转化方法及设备、介质 |
CN111104429A (zh) * | 2019-12-19 | 2020-05-05 | 中思博安科技(北京)有限公司 | 一种数据访问方法及装置 |
CN111242620A (zh) * | 2020-01-15 | 2020-06-05 | 阳光易购(湖南)科技有限公司 | 区块链交易系统的数据缓存及查询方法、终端及存储介质 |
CN111698345A (zh) * | 2020-06-10 | 2020-09-22 | 山东伏羲智库互联网研究院 | 域名查询方法、递归服务器和存储介质 |
CN111797138A (zh) * | 2020-06-29 | 2020-10-20 | 北京荷月科技有限公司 | 一种可信前置链上数据查询方法和系统 |
CN111737724A (zh) * | 2020-08-26 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、智能设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116975097A (zh) * | 2023-04-04 | 2023-10-31 | 上海卡方信息科技有限公司 | 一种数据查询的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112214519B (zh) | 2022-03-04 |
CN114625767B (zh) | 2024-09-03 |
CN112214519A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214519B (zh) | 一种数据查询方法、装置、设备及可读介质 | |
CN110826111B (zh) | 测试监管方法、装置、设备及存储介质 | |
US10785033B2 (en) | Method for storing an object on a plurality of storage nodes | |
US11200260B2 (en) | Database asset fulfillment chaincode deployment | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
US11070379B2 (en) | Signature verification for a blockchain ledger | |
US10783277B2 (en) | Blockchain-type data storage | |
US11645268B2 (en) | Database world state performance improvement | |
CN111190974B (zh) | 可验证声明的转发、获取方法、装置及设备 | |
CN112087530B (zh) | 一种将数据上传至区块链系统的方法、装置、设备及介质 | |
CN113312326B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US20160335259A1 (en) | Storing structured information | |
CN115129728A (zh) | 一种文件校验的方法及装置 | |
CN111245897A (zh) | 数据处理方法、装置、系统、存储介质及处理器 | |
CN112100689B (zh) | 一种可信数据处理方法、装置及设备 | |
US20200401561A1 (en) | Method, device, and computer program product for managing data object | |
US20210089497A1 (en) | Method, device, and computer program product for managing data object | |
CN111460436A (zh) | 一种基于区块链的非结构化数据操作方法和系统 | |
CN114077587A (zh) | 基于规则引擎的业务处理方法、规则引擎、介质和设备 | |
CN112732789A (zh) | 基于区块链的可搜索加密方法和电子设备 | |
CN113935019A (zh) | 一种客户端接入、建立客户端数字身份的方法及设备 | |
US11537559B2 (en) | Client generated aggregated indices | |
CN115733613B (zh) | 文件校验方法、设备和存储介质 | |
CN114268540B (zh) | 规则引擎的优化方法、装置及设备 | |
EP4411562A1 (en) | Data processing method and apparatus, electronic device, computer storage medium and computer program product |
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 |