数据验证方法、装置、终端设备以及存储介质与流程

未命名 07-12 阅读:90 评论:0


1.本技术涉及数据验证技术领域,尤其涉及一种数据验证方法、装置、终端设备以及存储介质。


背景技术:

2.随着网络技术的快速发展以及政府或企业对数据安全的重视,区块链网络得到了极大的重视和应用。
3.随着区块链网络中的区块下的交易越来越多,区块链节点上数据量规模一般超过上百gb,甚至类似以太坊的公链节点存储数据也超过1tb。
4.但是,现有的轻节点方案难以对获取的交易数据的真实性进行自验证。若区块链网络中存在作恶行为,则导致轻节点无法确定获取的交易数据的真实性,进而无法保证交易的合法性。


技术实现要素:

5.本技术的主要目的在于提供一种数据验证方法、装置、终端设备以及存储介质,旨在有效实现轻节点对链上交易数据的校验,提升交易数据的真实性,使得交易的合法性提升。
6.为实现上述目的,本技术提供一种数据验证方法,所述数据验证方法应用于轻节点,所述轻节点与全量节点交互,所述数据验证方法包括以下步骤:
7.接收交易查询请求,并发送所述交易查询请求至所述全量节点;
8.接收所述全量节点发送的交易查询结果;
9.基于预设的本地区块头,对所述交易查询结果进行简单支付验证。
10.可选地,所述发送所述交易查询请求至所述全量节点的步骤包括:
11.在所述交易查询请求中添加节点标识,得到修改后的交易查询请求;
12.向所述全量节点发送所述修改后的交易查询请求,以供所述全量节点根据所述节点标识,对所述轻节点进行身份认证。
13.可选地,所述基于预设的本地区块头,对所述交易查询结果进行简单支付验证的步骤之前,还包括:
14.针对预设区块进行数据同步,得到所述本地区块头。
15.可选地,所述针对预设区块进行数据同步,得到所述本地区块头的步骤包括:
16.向所述全量节点发送同步区块头请求;
17.接收所述全量节点发送的所述区块中的区块头信息;
18.校验并存储所述区块头信息,得到所述本地区块头。
19.可选地,所述基于预设的本地区块头,对所述交易查询结果进行简单支付验证的步骤包括:
20.检测所述交易查询结果与所述本地区块头是否通过所述简单支付验证;
21.若所述交易查询结果与所述本地区块头通过所述简单支付验证,则表示查询成功;
22.若所述交易查询结果与所述本地区块头未通过所述简单支付验证,则表示查询失败。
23.可选地,所述发送所述交易查询请求至所述全量节点的步骤包括:
24.通过预设透传方式,发送所述交易查询请求至所述全量节点。
25.可选地,所述基于预设的本地区块头,对所述交易查询结果进行简单支付验证的步骤之后,还包括:
26.根据预设存储逻辑,存储所述交易查询结果。
27.本技术实施例还提出一种数据验证装置,所述数据验证装置包括:
28.交易查询模块,用于接收交易查询请求,并发送所述交易查询请求至预设全量节点;
29.数据接收模块,用于接收所述全量节点发送的交易查询结果;
30.数据验证模块,用于基于预设的本地区块头,对所述交易查询结果进行简单支付验证。
31.本技术实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据验证程序,所述数据验证程序被所述处理器执行时实现如上所述的数据验证方法的步骤。
32.本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据验证程序,所述数据验证程序被处理器执行时实现如上所述的数据验证方法的步骤。
33.本技术实施例提出的数据验证方法、装置、终端设备以及存储介质,通过接收交易查询请求,并发送所述交易查询请求至所述全量节点;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证。即在轻节点中对交易查询结果进行简单支付验证,进而实现在轻节点中对交易的验证,有效实现轻节点对链上交易数据的校验,从而提升交易数据的真实性,使得交易的合法性提升。基于本技术方案,从真实世界中数据存在的虚假规律出发,构建一种基于联盟链的区块链轻节点架构,并在该轻节点架构上验证了本技术提出的数据验证方法的有效性,最后经过本技术方法校验的交易数据真实性得到明显提升。
附图说明
34.图1为本技术数据验证装置所属终端设备的功能模块示意图;
35.图2为本技术数据验证方法第一示例性实施例的流程示意图;
36.图3为本技术数据验证方法的轻节点架构示意图;
37.图4为本技术数据验证方法第二示例性实施例的流程示意图;
38.图5为本技术数据验证方法的轻节点同步数据流程图;
39.图6为本技术数据验证方法第三示例性实施例的流程示意图;
40.图7为本技术数据验证方法的轻节点交易查询交互流程图;
41.图8为本技术数据验证方法第四示例性实施例的流程示意图;
42.图9为本技术数据验证方法全量节点与轻节点的数据示意图;
43.图10为本技术数据验证方法第五示例性实施例的流程示意图。
44.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
45.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
46.本技术实施例的主要解决方案是:接收交易查询请求,并发送所述交易查询请求至所述全量节点;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证。即在轻节点中对交易查询结果进行简单支付验证,进而实现在轻节点中对交易的验证,有效实现轻节点对链上交易数据的校验,从而提升交易数据的真实性,使得交易的合法性提升。基于本技术方案,从真实世界中数据存在的虚假规律出发,构建一种基于联盟链的区块链轻节点架构,并在该轻节点架构上验证了本技术提出的数据验证方法的有效性,最后经过本技术方法校验的交易数据真实性得到明显提升。
47.本技术实施例涉及的技术术语:
48.区块链:区块链包括全量节点以及轻节点,其中,全量节点拥有全量数据,参与记账共识;轻节点主要进行业务执行,不参与记账共识,而是通过身份认证的方式从共识网络中获得区块头数据和部分授权可见的区块数据。
49.联盟链:只针对特定某个群体的成员和有限的第三方,内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,其他第三方可以通过该区块链开放的api进行限定查询。为了获得更好的性能,联盟链对于共识或验证节点的配置和网络环境有一定要求。有了准入机制,可以使得交易性能更容易提高,避免由参次不齐的参与者产生的一些问题。
50.json-rpc,是一个无状态且轻量级的远程过程调用(rpc)传送协议,其传递内容透过json为主。相较于一般的rest透过网址(如get/user)调用远程服务器,json-rpc直接在内容中定义了需要调用的函数名称,这也令开发者不会陷于该使用put或者patch的问题之中。本规范主要定义了一些数据结构及其相关的处理规则。它允许运行在基于socket、http等诸多不同消息传输环境的同一进程中。其使用json(rfc4627)作为数据格式。
51.kv数据库是指key-value数据库,是一种以键值对存储数据的一种数据库,类似java中的map。可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值。key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
52.如果辅以实时搜索引擎进行复杂条件检索、全文检索,就可以替代并发性能较低的mysql等关系型数据库,达到高并发、高性能,节省几十倍服务器数量的目的。以memcachedb、tokyo tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。
53.p2p,peer-to-peer。这种方式的特点是,资源一开始并不集中存储在某些设备上,而是分散地存储在多台设备上,这些设备我们称为peer。
54.在下载一个文件时,只要得到那些已经存在了文件的peer地址,并和这些peer建立点对点的连接,就可以就近下载文件,而不需要到中心服务器上。一旦下载了文件,你的
设备也就称为这个网络的一个peer,你旁边的那些机器也可能会选择从你这里下载文件。通过这种方式解决上面c/s结构单一服务器带宽压力问题。如果使用过p2p2软件,例如bittorrent,用户就会看到自己网络不仅有下载流量,还有上传流量,也就是说用户加入了这个p2p网络,自己可以从这个网络里下载,同时别人也可以从该用户这里下载。如此可以使得下载人数越多,下载速度越快。
55.本技术实施例考虑到,现有的轻节点方案仅实现了节点上的数据量减少,难以对获取的交易数据的真实性进行自验证。若区块链网络中存在作恶行为,则导致轻节点无法确定获取的交易数据的真实性,进而无法保证交易的合法性。
56.因此,本技术实施例方案,从验证交易数据的真实性的实际问题出发,结合简单支付验证对交易数据的验证能力,设计一种基于联盟链的区块链轻节点架构,有效实现轻节点对链上交易数据的校验,提升交易数据的真实性,使得交易的合法性提升。
57.具体地,参照图1,图1为本技术数据验证装置所属终端设备的功能模块示意图。该数据验证装置可以为独立于终端设备的、能够进行交易数据验证的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
58.在本实施例中,该数据验证装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
59.存储器130中存储有操作系统以及数据验证程序,数据验证装置可以将接收的交易查询请求,并发送的交易查询请求至全量节点;接收的全量节点发送的交易查询结果;基于预设的本地区块头,对交易查询结果进行的简单支付验证等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括wifi模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
60.其中,存储器130中的数据验证程序被处理器执行时实现以下步骤:
61.进一步地,存储器130中的数据验证程序被处理器执行时还实现以下步骤:
62.接收交易查询请求,并发送所述交易查询请求至所述全量节点;
63.接收所述全量节点发送的交易查询结果;
64.基于预设的本地区块头,对所述交易查询结果进行简单支付验证。
65.进一步地,存储器130中的数据验证程序被处理器执行时还实现以下步骤:
66.在所述交易查询请求中添加节点标识,得到修改后的交易查询请求;
67.向所述全量节点发送所述修改后的交易查询请求,以供所述全量节点根据所述节点标识,对所述轻节点进行身份认证。
68.进一步地,存储器130中的数据验证程序被处理器执行时还实现以下步骤:
69.针对预设区块进行数据同步,得到所述本地区块头。
70.进一步地,存储器130中的数据验证程序被处理器执行时还实现以下步骤:
71.向所述全量节点发送同步区块头请求;
72.接收所述全量节点发送的所述区块中的区块头信息;
73.校验并存储所述区块头信息,得到所述本地区块头。
74.进一步地,存储器130中的数据验证程序被处理器执行时还实现以下步骤:
75.检测所述交易查询结果与所述本地区块头是否通过所述简单支付验证;
76.若所述交易查询结果与所述本地区块头通过所述简单支付验证,则表示查询成功;
77.若所述交易查询结果与所述本地区块头未通过所述简单支付验证,则表示查询失败。
78.进一步地,存储器130中的数据验证程序被处理器执行时还实现以下步骤:
79.通过预设透传方式,发送所述交易查询请求至所述全量节点。
80.进一步地,存储器130中的数据验证程序被处理器执行时还实现以下步骤:
81.根据预设存储逻辑,存储所述交易查询结果。
82.本实施例通过上述方案,具体接收交易查询请求,并发送所述交易查询请求至所述全量节点;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证。即在轻节点中对交易查询结果进行简单支付验证,进而实现在轻节点中对交易的验证,有效实现轻节点对链上交易数据的校验,从而提升交易数据的真实性,使得交易的合法性提升。基于本技术方案,从真实世界中数据存在的虚假规律出发,构建一种基于联盟链的区块链轻节点架构,并在该轻节点架构上验证了本技术提出的数据验证方法的有效性,最后经过本技术方法校验的交易数据真实性得到明显提升。
83.基于上述终端设备架构但不限于上述架构,提出本技术方法实施例。
84.参照图2,图2为本技术数据验证方法第一示例性实施例的流程示意图。所述数据验证方法应用于轻节点,所述轻节点与全量节点交互,所述数据验证方法包括以下步骤:
85.作为政府或企业的交易数据所依赖的区块链节点,当区块链网络运行较长时间后,区块链节点上数据量规模一般超过上百gb,若区块链网络中存在作恶行为,则导致轻节点无法确定获取的交易数据的真实性,因此需要将交易数据的真实性进行自验证。
86.步骤s210,接收交易查询请求,并发送所述交易查询请求至所述全量节点;
87.本实施例方法的执行主体可以是一种数据验证装置,也可以是一种数据验证终端设备或服务器,本实施例以数据验证装置进行举例,该数据验证装置可以集成在具有数据处理功能的智能手机、平板电脑等终端设备上。
88.本实施例方案主要实现对交易数据尤其是交易数据验证,提升交易数据的真实性,使得交易的合法性提升。
89.本实施例从验证交易数据的真实性的实际问题出发,结合简单支付验证对交易数据的验证能力,设计一种基于联盟链的区块链轻节点架构,有效实现轻节点对链上交易数据的校验,提升交易数据的真实性,使得交易的合法性提升。
90.本实施例采用基于联盟链的区块链轻节点架构来对交易数据进行自验证,参考图3,图3为本技术数据验证方法的轻节点架构示意图,该轻节点架构包括:网络组件、存储组件、代理组件、验证组件。其中,网络组件(network)用于处理所有轻节点的网络请求,包括但不限于用户的查询(query)请求,调用(invoke)请求;存储组件(storage)用于负责处理存储事物;代理组件(proxy)用于负责节点管理事物和/或消息透传;验证组件(verify)用于负责密码学验证、共识验证、交易存在性及状态正确性验证。
91.其中,网络组件支持过去开放许可链的所有json-rpc接口,使得轻节点和全量节点有着基本相同的表现,但由于轻节点本身只下载和/或保存区块头数据,当用户需要例如交易数据的时候,轻节点会起到代理的功能,将请求透传给全量节点,从全量节点获得交易
数据再发送给用户。另外,轻节点的网络端口会复用过去全量节点的p2p端口,会在原有的p2p协议之上增加轻节点的网络协议,这么做是为了实现全量节点可以区分网络上的其他全量节点和轻节点身份,同时轻节点本身也具备识别网络上的其他全量节点和轻节点身份的能力。
92.具体地,交易查询请求携带了用户所需要查询的交易信息。在用户需要对交易数据进行验证时,通过轻节点发送交易查询指令,使得轻节点中的网络组件接收到交易查询指令,将交易查询指令透传至全量节点中。
93.需要说明的是,当轻节点接收到用户的交易查询请求时,轻节点会先判断当前是否存储了该交易的相关数据,如果没有存储该交易的相关数据,则向轻节点所连接的全量节点透传该交易查询请求。
94.步骤s220,接收所述全量节点发送的交易查询结果;
95.具体地,全量节点将交易查询结果透传回轻节点,也即,通过透传方式,无需考虑区块链网络的传输情况,只负责将需要传送的交易数据传送到全量节点,同时保证传输过程中的质量,而不对传输的交易数据进行处理。
96.步骤s230,基于预设的本地区块头,对所述交易查询结果进行简单支付验证。
97.需要说明的是,区块链支付验证与区块链交易验证的区别。简单支付验证(spv)指的是区块链支付验证,而不是区块链交易验证。这两种验证方式存在很大的区别。区块链交易验证的过程比较复杂,包括账户余额验证、双重支付判断等,通常由保存区块链完整信息的区块链验证节点来完成。而支付验证的过程比较简单,只是判断该笔支付交易是否已经得到了区块链节点共识验证,并得到了多少的确认数即可。因此,在本实施例中,通过在轻节点中对交易数据执行简单支付验证,进而实现轻节点对交易的查询验证。
98.本实施例通过上述方案,具体通过接收交易查询请求,并发送所述交易查询请求至所述全量节点;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证。即在轻节点中对交易查询结果进行简单支付验证,进而实现在轻节点中对交易的验证,有效实现轻节点对链上交易数据的校验,从而提升交易数据的真实性,使得交易的合法性提升。
99.参照图4,图4为本技术数据验证方法第二示例性实施例的流程示意图。基于上述图2所示的实施例,步骤s230,基于预设的本地区块头,对所述交易查询结果进行简单支付验证之前,还包括:
100.步骤s410,针对预设区块进行数据同步,得到所述本地区块头。
101.本技术实施例以步骤s430在步骤s210之前实施进行举例,在其他实施例中,也可以是步骤s430在步骤s210与步骤s230之间实施。
102.具体地,区块头对应区块链中的区块,每一区块下可以包括多笔交易。轻节点针对每一区块进行数据同步,使得在轻节点在接收到全量节点返回的交易查询结果时,根据同步时所得到的本地区块头,对交易查询结果进行验证。
103.参考图5,图5为本技术数据验证方法的轻节点同步数据流程图。在轻节点需要同步区块时,向全量节点发起同步区块头请求,使得全量节点根据同步区块头请求验证该轻节点的身份信息;如果该轻节点的身份通过,则返回区块头信息;在轻节点接收区块头信息时,对区块头信息进行校验并存储。
104.进一步地,步骤s410,针对预设区块进行数据同步,得到所述本地区块头,包括:
105.步骤s411,向所述全量节点发送同步区块头请求;
106.步骤s412,接收所述全量节点发送的所述区块中的区块头信息;
107.步骤s413,校验并存储所述区块头信息,得到所述本地区块头。
108.具体地,轻节点正常运行过程中,同样也会接收其他节点发来的区块信息,也会的区块作一个bft共识的验证,虽然轻节点并不会重放交易,但对于区块共识正确性还是会进行一个轻节点方式的验证,验证通过后,轻节点会将区块头存储下来。如此,使得轻节点在初始化启动的时候,无需从genesis块开始同步,例如,可以同步最近区块的区块头数据,进而使得轻节点数据占用部分仅为原有全量节点数据量的10%。
109.另外,轻节点存储的数据结构与数据库和存储的kv构造与全量节点完全一致,使得轻节点和全量节点是可以共用相同的数据文件。做全量节点向轻节点转换的时候,轻节点可以复用全量节点原有的数据库;而轻节点转换成全量节点的时候,由于轻节点仅存储了部分块高的区块头数据,对于全量节点需要从genesis块开始就要重放交易来说,轻节点原有的数据对全量节点的意义不大,同时还额外增加的校验成本,因此轻节点在转为全量节点时,全量节点会重新同步所有区块,忽略轻节点已存储的那一小部分区块数据。
110.进一步地,步骤s210,接收交易查询请求,并发送所述交易查询请求至所述全量节点,包括:
111.步骤s420,接收交易查询请求,在所述交易查询请求中添加节点标识,得到修改后的交易查询请求;
112.具体地,节点标识用于轻节点向全量节点表明自身的身份。在轻节点接收用户发送的交易查询请求时,通过在交易查询请求中增加字符串字段“node_type”,也即在交易查询请求中添加节点标识的字符串字段,使得全量节点可以根据该节点标识,验证轻节点的身份。如此,可以保证新版本不会修改过去的p2p协议,不会影响过去的全量节点之间的工作,新的协议仅是用于轻节点的,同时新的网络协议也是支持透传的。
113.步骤s430,向所述全量节点发送所述修改后的交易查询请求,以供所述全量节点根据所述节点标识,对所述轻节点进行身份认证。
114.具体地,身份认证用于是鉴别通信中另一端的真实身份,防止伪造和假冒等情况发生。在本实施例中,身份认证为密码学方法,包括但不限于使用对称加密算法、公开密钥密码算法、数字签名算法等。
115.本实施例通过上述方案,具体通过向所述全量节点发送同步区块头请求;接收所述全量节点发送的所述区块中的区块头信息;校验并存储所述区块头信息,得到所述本地区块头;接收交易查询请求,在所述交易查询请求中添加节点标识,得到修改后的交易查询请求;向所述全量节点发送所述修改后的交易查询请求,以供所述全量节点根据所述节点标识,对所述轻节点进行身份认证;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证,减少区块链轻节点的存储成本、联盟链机构加入区块链的时间和存储成本。
116.参照图6,图6为本技术数据验证方法第三示例性实施例的流程示意图。基于上述图4所示的实施例,步骤s230,基于预设的本地区块头,对所述交易查询结果进行简单支付验证,包括:
117.步骤s610,检测所述交易查询结果与所述本地区块头是否通过所述简单支付验证;
118.具体地,本地区块头存储着区块的头信息,包括但不限于交易信息、上一个区块的哈希值、本区块体的哈希值、时间戳等等。在交易查询结果包括真实的交易数据,在轻节点接收到真实的交易数据时,通过本地区块头的信息,可以对交易数据做一个简单支付验证(spv),进而实现在轻节点中对交易进行验证。
119.步骤s620,若所述交易查询结果与所述本地区块头通过所述简单支付验证,则表示查询成功;
120.具体地,图7为本技术数据验证方法的轻节点交易查询交互流程图。首先,轻节点向全量节点发起交易查询请求;全量节点接收交易查询请求,并根据交易查询请求验证该轻节点的身份;如果该轻节点的身份验证通过,则根据交易查询请求,在区块链中查询对应的区块;
121.如果该交易查询请求查询区块成功,则全量节点获得查询结果;将交易的查询结果及相关证明返回至轻节点;轻节点使用预先存储的本地区块头数据对查询结果做简单支付验证(spv);如果本地区块头数据与查询结果通过简单支付验证(spv),则表明查询成功,并将成功信息返回给用户;如果本地区块头数据与查询结果未通过简单支付验证(spv),则表明查询失败,并将失败原因返回给用户;
122.如果该交易查询请求查询区块失败,则全量节点将失败信息返回给轻节点;轻节点接收失败信息,并将失败原因返回给用户。
123.步骤s630,若所述交易查询结果与所述本地区块头未通过所述简单支付验证,则表示查询失败。
124.本实施例通过上述方案,具体通过检测所述交易查询结果与所述本地区块头是否通过所述简单支付验证;若所述交易查询结果与所述本地区块头通过所述简单支付验证,则表示查询成功;若所述交易查询结果与所述本地区块头未通过所述简单支付验证,则表示查询失败。通过轻节点将本地区块头与交易查询结果做简单支付验证,可以有效实现轻节点对链上交易数据的校验,提升交易数据的真实性。
125.参照图8,图8为本技术数据验证方法第四示例性实施例的流程示意图。基于上述图2所示的实施例,步骤s210,接收交易查询请求,并发送所述交易查询请求至所述全量节点,包括:
126.步骤s810,接收交易查询请求,通过预设透传方式,发送所述交易查询请求至所述全量节点。
127.具体地,透传数据的验证:当用户的请求轻节点无法响应的时候(一切请求的数据在轻节点上无法获取到的情况),那么轻节点就需要将该请求透传给全量节点,然后将全量节点返回的响应数据交给用户;由于轻节点本身没有状态无法直接的验证全量节点提供数据是否正确,依据以太坊轻节点的方案,对不同的请求数据提供不同的验证方案,包括但不限于以下方案:
128.一、针对交易数据:交易本身不涉及状态,仅需要通过transactionroot便可以检查交易的存在性。
129.二、针对回执信息:回执信息是交易执行后的状态,但与状态数据不同的是回执信
息是与交易数据一一对应,并且不会变更,因此回执信息的检查仅需通过receiptroot便可以检查回执的正确性。
130.三、针对合约状态数据:合约状态信息会随着交易的执行不断变化,用户在请求合约状态时需要区块高度信息,如果没有默认提供最新的状态信息。而状态信息的正确性通过stateroot和merkletreeproof来证明。
131.进一步地,步骤s230,基于预设的本地区块头,对所述交易查询结果进行简单支付验证之后,还包括:
132.步骤s820,根据预设存储逻辑,存储所述交易查询结果。
133.具体地,存储逻辑包括但不限于交易数据的验证规律和/或历史查询数据。在轻节点将交易查询结果发送给用户时,根据存储逻辑、数据本身的内容,对应存储交易数据以供后续再次请求。
134.参照图9,图9为本技术数据验证方法全量节点与轻节点示意图。如图示出,全量节点包括区块数据、数据库数据,全量节点的区块数据包括区块头、交易列表、交易数据,轻节点的区块数据包括区块头,交易列表。可以将交易查询结果存储在区块头或交易列表中,降低联盟链机构加入区块链的时间成本。
135.本实施例通过上述方案,具体通过接收交易查询请求,通过预设透传方式,发送所述交易查询请求至所述全量节点;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证;根据预设存储逻辑,存储所述交易查询结果。通过将轻节点以透传方式将交易查询请求发送至全量节点,可以提高数据验证的准确性;通过根据存储逻辑,存储交易查询结果,可以提升数据验证的效率。
136.参考图10,图10为本技术数据验证方法第五示例性实施例的流程示意图。如图示出,在用户需要执行合约调用时,轻节点向全量节点发起合约调用请求;全量节点接收合约调用请求,并根据合约调用请求验证该轻节点的身份;如果该轻节点的身份验证通过,则根据合约调用请求,在区块链中调用对应的合约;如果该合约调用成功,则全量节点获得请求结果;将合约的请求结果返回至轻节点;轻节点接收请求结果,并将成功信息返回给用户;如果该合约调用请求查询区块失败,则全量节点将失败信息返回给轻节点;轻节点接收失败信息,并将失败原因返回给用户。通过轻节点调用合约,可以降低联盟链机构加入区块链的存储成本。
137.此外,本技术实施例还提出一种数据验证装置,所述数据验证装置包括:
138.交易查询模块,用于接收交易查询请求,并发送所述交易查询请求至预设全量节点;
139.数据接收模块,用于接收所述全量节点发送的交易查询结果;
140.数据验证模块,用于基于预设的本地区块头,对所述交易查询结果进行简单支付验证。
141.本实施例实现数据验证的原理及实施过程,请参照上述各实施例,在此不再赘述。
142.此外,本技术实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据验证程序,所述数据验证程序被所述处理器执行时实现如上所述的数据验证方法的步骤。
143.由于本数据验证程序被处理器执行时,采用了前述所有实施例的全部技术方案,
因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
144.此外,本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据验证程序,所述数据验证程序被处理器执行时实现如上所述的数据验证方法的步骤。
145.由于本数据验证程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
146.相比现有技术,本技术实施例提出的数据验证方法、装置、终端设备以及存储介质,通过接收交易查询请求,并发送所述交易查询请求至所述全量节点;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证。即在轻节点中对交易查询结果进行简单支付验证,进而实现在轻节点中对交易的验证,有效实现轻节点对链上交易数据的校验,从而提升交易数据的真实性,使得交易的合法性提升。基于本技术方案,从真实世界中数据存在的虚假规律出发,构建一种基于联盟链的区块链轻节点架构,并在该轻节点架构上验证了本技术提出的数据验证方法的有效性,最后经过本技术方法校验的交易数据真实性得到明显提升。
147.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
148.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
149.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本技术每个实施例的方法。
150.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种数据验证方法,其特征在于,所述数据验证方法应用于轻节点,所述轻节点与全量节点交互,所述数据验证方法包括以下步骤:接收交易查询请求,并发送所述交易查询请求至所述全量节点;接收所述全量节点发送的交易查询结果;基于预设的本地区块头,对所述交易查询结果进行简单支付验证。2.如权利要求1所述的数据验证方法,其特征在于,所述发送所述交易查询请求至所述全量节点的步骤包括:在所述交易查询请求中添加节点标识,得到修改后的交易查询请求;向所述全量节点发送所述修改后的交易查询请求,以供所述全量节点根据所述节点标识,对所述轻节点进行身份认证。3.如权利要求2所述的数据验证方法,其特征在于,所述基于预设的本地区块头,对所述交易查询结果进行简单支付验证的步骤之前,还包括:针对预设区块进行数据同步,得到所述本地区块头。4.如权利要求3所述的数据验证方法,其特征在于,所述针对预设区块进行数据同步,得到所述本地区块头的步骤包括:向所述全量节点发送同步区块头请求;接收所述全量节点发送的所述区块中的区块头信息;校验并存储所述区块头信息,得到所述本地区块头。5.如权利要求4所述的数据验证方法,其特征在于,所述基于预设的本地区块头,对所述交易查询结果进行简单支付验证的步骤包括:检测所述交易查询结果与所述本地区块头是否通过所述简单支付验证;若所述交易查询结果与所述本地区块头通过所述简单支付验证,则表示查询成功;若所述交易查询结果与所述本地区块头未通过所述简单支付验证,则表示查询失败。6.如权利要求1所述的数据验证方法,其特征在于,所述发送所述交易查询请求至所述全量节点的步骤包括:通过预设透传方式,发送所述交易查询请求至所述全量节点。7.如权利要求1所述的数据验证方法,其特征在于,所述基于预设的本地区块头,对所述交易查询结果进行简单支付验证的步骤之后,还包括:根据预设存储逻辑,存储所述交易查询结果。8.一种数据验证装置,其特征在于,所述数据验证装置包括:交易查询模块,用于接收交易查询请求,并发送所述交易查询请求至预设全量节点;数据接收模块,用于接收所述全量节点发送的交易查询结果;数据验证模块,用于基于预设的本地区块头,对所述交易查询结果进行简单支付验证。9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据验证程序,所述数据验证程序被所述处理器执行时实现如权利要求1-7中任一项所述的数据验证方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据验证程序,所述数据验证程序被处理器执行时实现如权利要求1-7中任一项所述的数据验证方法的步骤。

技术总结
本申请公开了一种数据验证方法、装置、终端设备以及存储介质,其数据验证方法包括:通过接收交易查询请求,并发送交易查询请求至全量节点;接收全量节点发送的交易查询结果;基于预设的本地区块头,对交易查询结果进行简单支付验证。即在轻节点中对交易查询结果进行简单支付验证,进而实现在轻节点中对交易的验证,有效实现轻节点对链上交易数据的校验,从而提升交易数据的真实性,使得交易的合法性提升。升。升。


技术研发人员:董冰
受保护的技术使用者:招商银行股份有限公司
技术研发日:2023.02.10
技术公布日:2023/7/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐