一种交易数据处理方法、装置、计算机设备及存储介质与流程

文档序号:24742593发布日期:2021-04-20 22:11阅读:77来源:国知局
一种交易数据处理方法、装置、计算机设备及存储介质与流程

1.本申请涉及区块链技术领域,尤其涉及一种交易数据处理方法、装置、计算机设备及存储介质。


背景技术:

2.在传统区块链部署方式中,区块链网络往往为统一的点对点网络(即p2p网络),即节点对等。处于区块链网络中的区块链节点可以将执行交易业务所生成的交易数据广播至核心共识网络,以使该核心共识网络中的共识节点将该交易数据进行上链。比如,区块链节点(例如,节点a)可以将执行某一交易业务所生成的交易数据(例如,交易数据x)广播至共识节点(例如,节点b),以使节点b将包括交易数据x的目标区块写入区块链。
3.可以理解的是,这里的节点a和节点b均属于单一的区块链网络,当该区块链网络中的节点a需要请求进行同步区块时,可以向该区块链网络中的参与共识的共识节点(例如,前述节点b)发送区块同步请求。此时,节点b可以在该区块链网络的区块链中确定待同步区块(例如前述包括交易数据x的目标区块),进而可以将该目标区块发送至节点a,以完成区块同步。应当理解,节点a在请求将前述包括交易数据x的目标区块写入区块链的过程中,存在在每个共识节点之间频繁广播该交易数据x的现象,但是在将该目标区块成功写入区块链之后,以在该区块链网络中的各节点之间进行区块同步(例如,节点b向节点a进行区块同步)时,该节点b会将包括完整交易数据的交易数据x再次返回至节点a,以至于增加了同一交易数据(前述交易数据x)在整个区块链网络中的重复传递。


技术实现要素:

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.删除单元,用于基于第一关键交易数据以及结构信息,对待同步区块进行区块同步,且在完成区块同步时,在第一节点缓存中删除第一本地交易数据。
35.其中,标识符确定规则包括:第一哈希规则和第二哈希规则;第一哈希规则不同于第二哈希规则;
36.该标识转换单元包括:
37.第一哈希转换子单元,用于基于标识符确定规则中的第一哈希规则,对第一业务节点的第一节点缓存中的第一本地交易数据进行第一哈希转换,得到第一本地交易数据对应的第一哈希值;
38.第二哈希转换子单元,用于基于第二哈希规则,对第一哈希值进行第二哈希转换,得到第一本地交易数据对应的第二哈希值,基于第二哈希值以及第二哈希规则所关联的哈希字节数,得到第一本地交易数据对应的本地交易标识符。
39.其中,该删除单元包括:
40.获取子单元,用于从结构信息中获取待同步区块的区块头信息以及默克尔路径;
41.待比较树根确定子单元,用于获取第一关键交易数据对应的关键交易哈希值以及默克尔路径中的路径哈希值,确定待同步区块的待比较树根;
42.验证结果确定子单元,用于基于区块头信息中的默克尔树根和待比较树根,得到待同步区块的验证结果;
43.删除子单元,用于若验证结果指示验证成功,则对待同步区块进行区块同步,在完成区块同步时,在第一节点缓存中删除第一本地交易数据。
44.其中,该删除子单元还用于:
45.若验证结果指示验证成功,则从结构信息中获取预测交易数据;预测交易数据为共识节点在待同步区块中的所有交易数据中,基于智能合约所筛选的与第一业务节点相关联的交易数据;
46.将第一关键交易数据、预测交易数据以及区块头信息同步至第一业务节点的本地
区块链。
47.其中,业务网络中包括第二业务节点,第二业务节点为第一业务节点所维护的同一业务机构列表中的节点;
48.该装置还包括:
49.第一发送模块,用于在比对结果指示本地交易标识符与目标交易标识符不同时,向第二业务节点发送携带目标交易标识符的交易数据获取请求;交易数据获取请求用于指示第二业务节点在第二节点缓存中的第二本地交易数据中,得到与目标交易标识符相关联的数据查询结果;
50.数据查询结果接收模块,用于接收第二业务节点返回的数据查询结果;
51.第一确定模块,用于若数据查询结果指示第二节点缓存中存在目标交易标识符对应的第二本地交易数据,则将第二本地交易数据作为用于验证待同步区块的第二关键交易数据。
52.其中,该装置还包括:
53.清分通知生成模块,用于基于第二关键交易数据以及结构信息,对待同步区块进行区块同步,在完成区块同步时,基于第二关键交易数据生成数据清分通知;
54.清分通知发送模块,用于将数据清分通知发送至第二业务节点,以使第二业务节点删除第二节点缓存中的第二关键交易数据。
55.其中,该装置还包括:
56.第二发送模块,用于若数据查询结果指示第二节点缓存中不存在目标交易标识符对应的第二本地交易数据,则通过代理节点,将交易数据获取请求发送至共识节点;交易数据获取请求用于指示共识节点在待同步区块中,获取目标交易标识符对应的目标交易数据,且将目标交易数据发送至代理节点;
57.第二确定模块,用于接收共识节点通过代理节点所转发的目标交易数据,将目标交易数据作为用于验证待同步区块的第三关键交易数据;
58.区块同步模块,用于基于第三关键交易数据以及结构信息,对待同步区块进行区块同步。
59.本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
60.处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
61.本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
62.本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
63.在本申请实施例中,业务网络中的第一业务节点在进行区块同步时,可以通过用于对核心共识网络和业务网络进行网络隔离的代理节点,向核心共识网络中的共识节点发送区块同步请求,以使该共识节点确定待同步区块对应的致密区块的结构信息。可以理解
的是,该第一业务节点在进行区块同步时,无需像传统区块链部署方式一样,接收包括所有交易数据的待同步区块,而是接收待同步区块对应的致密区块的结构信息。进一步地,该第一业务节点可以从结构信息中获取用于表示初始交易数据的目标交易标识符,而非完整的初始交易数据。这里的初始交易数据是指该第一业务节点在执行交易业务时所生成的交易数据。此时,第一业务节点可以确定第一节点缓存中的第一本地交易数据对应的本地交易标识符,以便于在第一节点缓存中查询该目标交易标识符对应的交易数据,以减少数据传输时的数据流量。可以理解的是,该第一业务节点可以基于本地交易标识符和目标交易标识符,对待同步区块进行区块同步,且在完成区块同步时,可以对第一本地交易数据进行数据清分。由于本申请实施例中的第一节点缓存中可以存储有第一业务节点所生成的交易数据(例如,初始交易数据),因此在第一业务节点进行区块同步时,无需再次从核心共识网络中同步完整的交易数据,进而可以有效减少该交易数据在核心共识网络和业务网络之间的重复传递。
附图说明
64.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
65.图1是本申请实施例提供的一种区块链网络分层结构的示意图;
66.图2是本申请实施例提供的一种进行数据交互的场景示意图;
67.图3是本申请实施例提供的一种交易数据处理方法的流程示意图;
68.图4是本申请实施例提供的一种发送初始交易数据的场景示意图;
69.图5是本申请实施例提供的一种生成待同步区块对应的致密区块的结构信息的场景示意图;
70.图6是本申请实施例提供的一种获取目标交易标识符的场景示意图;
71.图7是本申请实施例提供的一种交易数据处理方法的流程示意图;
72.图8是本申请实时例提供的一种接收数据查询结果的场景示意图;
73.图9是本申请实施例提供的一种区块链电子票据场景下的系统架构图;
74.图10是本申请实施例提供的一种交易数据处理装置的结构示意图;
75.图11是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
76.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
77.请参见图1,图1是本申请实施例提供的一种区块链网络分层结构的示意图。图1所示的区块链网络分层结构可以应用于区块链系统,该区块链系统可以包括代理节点(例如,代理节点10)、第一区块链系统以及第二区块链系统。其中,第一区块链系统和第二区块链
系统均可以包括一个或者多个节点,这里将不对节点的数量进行限制。如图1所示,第一区块链系统具体可以包括节点110a、节点110b、节点110c、

、节点110n。第二区块链系统具体可以包括节点120a、节点120b、节点120c、

、节点120n。
78.其中,第一区块链系统对应的区块链网络可以称之为业务网络(即见证网络),处于业务网络中的节点可以称之为业务节点,该业务节点主要用于执行交易业务,以得到与该交易业务相关联的交易数据。可以理解的是,这里的业务节点不需要参与记账共识,但能够通过身份认证的方式从核心共识网络中获得区块头数据和部分授权可见的区块数据。第二区块链系统对应的区块链网络可以为称之为核心共识网络。处于该核心共识网络中的节点可以称之为共识节点(即记账节点),该共识节点可以运行有区块链共识协议。图1所示的代理节点可以用于对该业务网络和核心共识网络进行网络隔离,该代理节点10可以是独立的一个物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,在此不做限定。该代理节点10可以将点对点(peer to peer,简称p2p)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构,进而能够提高区块链上数据的保密性和安全性。
79.其中,本申请实施例可以将代理节点、业务节点以及共识节点统称为区块链网络中的区块链节点。可以理解的是,该区块链节点可以为接入该区块链网络中的服务器,也可以为接入该区块链网络中的用户终端,这里对区块链节点的具体形式不做限定。
80.可以理解的是,图1所示的区块链网络(例如,比特币网络或者以太坊网络)中的节点主要有四大功能:钱包、挖矿、区块链数据库、网络路由。每个节点都会具备路由功能,但是其他功能并不一定全部具备,一般比特币核心节点会包含四种功能。这样的核心节点可以参与校验、广播交易数据以及区块信息,且会发现和维持与其他节点的连接。该核心节点会包含完整的区块链数据库,包括所有交易数据,这种包含所有功能的节点也称为全量节点(full node,例如,图1所示的共识节点)。另外一些节点只存储了区块链数据库的一部分,一般只存储区块头和与自身节点相关联的交易数据,而不存储完整交易数据。它们会通过“简化交易验证(simplified payment verification,简称spv)”的方式完成交易校验,这样的节点可以称为轻量节点(lightweight node)或spv节点(例如,图1所示的业务节点)。
81.用户可以通过这些轻量节点钱包查看自己的账户余额、管理钱包地址和私钥、发起交易等。挖矿节点可以通过解决工作量证明(pow)算法问题,与其他挖矿节点相互竞争创建新区块。有些挖矿节点同时也是全量节点,即也存储了完整的区块链数据库,这种节点一般都是独立矿工(solo miner)。还有一些挖矿节点不是独立挖矿的,而是和其他节点一起连接到矿池,参与集体挖矿,这种节点一般也称为矿池矿工(pool miner)。这会形成一个局部的集中式矿池网络,中心节点是一个矿池服务器,其他挖矿节点全部连接到矿池服务器。矿池矿工和矿池服务器之间的通信也不是采用标准的比特币协议,而是使用矿池挖矿协议,而矿池服务器作为一个全量节点,在与其他比特币节点进行通讯时可以使用主网络的比特币协议。另外,矿工创建新的区块后,还需要广播给图1所示的核心共识网络中的共识节点,当核心共识网络接收了该区块后,给矿工的奖励才算是有效的,此后才会开始进行下一个区块哈希的计算。
82.可以理解的是,图1所示的业务网络和核心共识网络可以处于不同的网络环境,例如,通常来说,业务节点部署在处于公网的业务网络,而运行区块链共识协议的记账节点则部署在私有的共识网络中,二者可以通过路由边界进行交互。由于区块同步过程中,在业务网络中传输的是用于表示交易数据的交易标识符(即短交易id),而非完整的交易数据,进而可以有效保障该交易数据不会被他人轻易篡改,从而可以提高业务节点的数据隐私安全性。
83.为便于理解,本申请实施例可以在图1所示的业务网络中的多个节点中选择一个节点作为用于进行区块同步的第一业务节点。该第一业务节点具有向代理节点10发送初始交易数据的功能。例如,本申请实施例可以将图1所示的节点110a作为第一业务节点。其中,本申请实施例可以将第一业务节点的本地缓存称之为第一节点缓存,且将第一节点缓存中的本地交易数据称之为第一本地交易数据。可以理解的是,该第一业务节点可以维护有同一业务机构列表。该同一业务机构列表中可以包括多个与该第一业务节点属于同一业务机构的业务节点。其中,本申请实施例可以将该同一业务机构列表中的业务节点统称为第二业务节点。例如,该第二业务节点可以为图1所示的业务网络中的节点110b。其中,本申请实施例可以将第二业务节点的本地缓存称之为第二节点缓存,且将第二节点缓存中的本地交易数据称之为第二本地交易数据。此外,在图1所示的核心共识网络中,本申请实施例可以将节点120a作为用于向第一业务节点进行区块同步的共识节点。可以理解的是,本申请实施例可以将核心共识网络中的共识节点的区块链称之为目标区块链,将业务网络中的第一业务节点的区块链称之为本地区块链。
84.在“业务网络—核心共识网络”这样的分层结构下,第一业务节点和共识节点可以采用致密区块(compact block)连接模式,因此,业务网络中的第一业务节点(例如,节点110a)在进行同步区块时,可以通过代理节点10向核心共识网络中的共识节点(例如,节点120a)发送区块同步请求,以使共识节点可以确定待同步区块对应的致密区块的结构信息。第一业务节点在接收到代理节点所转发的结构信息时,可以获取结构信息中的目标交易标识符,以对待同步区块进行区块同步,且在完成区块同步时对第一节点缓存中的本地交易数据(即第一本地交易数据)进行数据清分。其中,该目标交易标识符(即缩短交易标识符,txids)可以为用于表示初始交易数据的短交易标识(例如,具有6个字节的短交易id)。这里的初始交易数据是指该第一业务节点在执行交易业务时所生成的交易数据,且在第一节点缓存中进行存储。因此,第一业务节点在区块同步时,在业务网络中传输的是目标交易标识符,而非完整的初始交易数据,从而可以有效减少交易数据在核心共识网络和业务网络之间的重复传递。
85.为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的代理节点20b可以用于对业务网络和核心共识网络进行网络隔离,该代理节点20b可以为上述图1所示的代理节点10。本申请实施例中的业务节点20a可以为需要进行区块同步的业务节点(例如,第一业务节点),该业务节点20a可以为上述图1所示的业务网络中的任意一个节点,例如,节点110a。本申请实施例中的共识节点20c可以为用于确定待同步区块的共识节点,该共识节点20c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。
86.应该理解,业务节点20a可以执行交易业务,以根据交易业务的交易执行结果得到
初始交易数据,进而可以将该初始交易数据发送至代理节点20b,以使代理节点20b将该初始交易数据发送至核心共识网络中进行广播。其中,这里的交易业务可以为资产转移业务,该资产转移业务是指转移比特币、以太坊、游戏金币、游戏钻石以及电子票据等虚拟资产。与此同时,该业务节点20a还可以将初始交易数据添加至图2所示的节点缓存200。这里的节点缓存200(即第一节点缓存)可以是指业务节点20a的本地缓存。可以理解的是,核心共识网络中的共识节点(例如,共识节点20c)可以对该初始交易数据进行打包处理,以生成待验证区块,进而可以在待验证区块达成共识时,将该待验证区块作为目标区块,以成功写入至核心共识网络的目标区块链。
87.如图2所示,业务节点20a可以将区块同步请求发送至代理节点20b,以使代理节点20b将该区块同步请求发送至核心共识网络中的共识节点20c。此时,共识节点20c可以基于区块同步请求,在核心共识网络中的目标区块链中确定待同步区块(例如,待同步区块200x)。进一步地,为了有效减少交易数据在核心共识网络与业务网络之间的频繁广播以及数据传输时的数据流量,该共识节点20c与业务节点20a可以采用致密区块连接模式,在区块同步过程中,该共识节点20c可以传输待同步区块200x对应的致密区块的结构信息(例如,结构信息200y),以在业务节点20a完成区块同步时对节点缓存200进行数据清分。可以理解的是,该结构信息200y中可以包括待同步区块200x的区块头信息、目标交易标识符以及预测交易数据。这里的目标交易标识符可以是共识节点20c对初始交易数据进行哈希标识转换后所确定的;该目标交易标识符可以为较短字节(例如,6个字节)的哈希值,能够有效减少数据传输时的流量数据,使得接收到目标交易标识符的业务节点20a能够减少数据处理压力,从而可以有效防止拒绝式服务攻击。这里的预测交易数据可以为共识节点20c在待同步区块中的所有交易数据中,基于智能合约所筛选的与业务节点20a相关联的交易数据。
88.可以理解的是,共识节点20c可以将该结构信息200y通过代理节点20b发送至业务节点20a,以使业务节点20a可以从结构信息200y中获取目标交易标识符,例如,该业务节点20a从结构信息200y中所获取的目标交易标识符可以为图2所示的交易标识符40f。
89.如图2所示,在业务节点20a进行数据清分前,节点缓存200中可以包括多个本地交易数据(即第一本地交易数据)。这里的本地交易数据均为业务节点20a在将执行交易业务生成的初始交易数据,通过代理节点20b发送至核心共识网络中进行广播时所存储的。为便于阐述,本申请实施例中数据清分前的节点缓存200中的本地交易数据可以以4个为例,具体可以包括交易数据1e、交易数据2e、交易数据3e以及交易数据4e。
90.可以理解的是,业务节点20a可以分别对节点缓存200中的每个本地交易数据进行哈希标识转换,以得到每个本地交易数据对应的本地交易标识符。如图2所示,交易数据1e的交易标识符可以为交易标识符10f,交易数据2e的交易标识符可以为交易标识符20f,交易数据3e的交易标识符可以为交易标识符30f,交易数据4e的交易标识符可以为交易标识符40f。
91.进一步地,该业务节点20a可以基于目标交易标识符与本地交易标识符,对待同步区块200x进行区块同步,且在区块同步完成时,该业务节点20a对节点缓存200中的本地交易数据进行数据清分。比如,业务节点20a可以将目标交易标识符与本地交易标识符进行比对,得到比对结果。该比对结果可以指示本地交易标识符中的交易标识符40f与目标交易标
识符相同,此时,业务节点20a可以在节点缓存200中,获取交易标识符40f对应的交易数据4e,进而可以基于交易数据4e,对待同步区块200x进行同步,且在完成区块同步时,该业务节点20a可以删除节点缓存200中的交易数据4e。换言之,数据清分后的节点缓存200中的本地交易数据可以包括交易数据1e、交易数据2e以及交易数据3e。
92.应当理解,在“业务网络—核心共识网络”这一分层区块链结构下,业务网络中的业务节点20a在对节点缓存200中的本地交易数据进行数据清分时,可以通过代理节点20b向核心共识网络中的共识节点20c发送区块同步请求,以使共识节点20c基于区块同步请求确定待同步区块200x。可以理解的是,共识节点20c在区块同步时,由于共识节点20c与业务节点20a采用致密区块连接模式,因此无需传输整个待同步区块200x,而是传输该待同步区块200x对应的致密区块的结构信息200y。进一步地,业务节点20a可以获取结构信息200y中的目标交易标识符,进而可以基于目标交易标识符和节点缓存200中的本地交易数据对应的本地交易标识符,对待同步区块200x进行区块同步,以在区块同步完成时,对节点缓存200中的本地交易数据进行数据清分。其中,该结构信息200y中包括的目标交易标识符是共识节点20c对初始交易数据进行哈希标识转换后所确定的,换言之,共识节点20c传输并非是完整的初始交易数据,而是初始交易数据对应的短交易标识,从而可以有效减少交易数据在核心共识网络和业务网络之间的重复传递,大大减少了不必要的网络流量。
93.其中,本申请实施例所涉及的交易数据处理方法可以基于双层区块链模式,将p2p网络进行网络分层,以使p2p网络形成“业务网络—核心共识网络”这样的分层区块链结构。业务网络中的第一业务节点在区块同步时,可以通过对业务网络和核心共识网络进行网络隔离的代理节点,获取核心共识网络中的共识节点所确定的待同步区块对应的致密区块的结构信息,进而可以通过结构信息中的目标交易标识符和第一节点缓存中的第一本地交易数据对应的本地交易标识符,对待同步区块进行区块同步,且在完成区块同步时,对第一本地交易数据进行数据清分的具体实现方式可以参见下述图3

图9所对应的实施例。
94.进一步地,请参见图3,图3是本申请实施例提供的一种交易数据处理方法的流程示意图。如图3所示,该方法可以由业务网络中的第一业务节点执行,该第一业务节点可以为接入至业务网络中的服务器,也可以为接入至该业务网络中的用户终端,这里对第一业务节点的具体形式不做限定。该第一业务节点可以为上述图1所示的业务网络中的任意一个节点,例如,节点110a。该方法至少可以包括以下步骤s101

步骤s103:
95.步骤s101,通过代理节点向属于核心共识网络的共识节点发送区块同步请求。
96.具体地,业务网络中的第一业务节点可以在区块同步时,可以生成用于指示核心共识网络中的共识节点进行区块同步的区块同步请求。与此同时,该第一业务节点还可以获取第一业务节点的节点标识信息,将节点标识信息和区块同步请求一并发送至代理节点,以使代理节点根据合法验证结果将区块同步请求转发给共识节点。这里的合法验证结果是代理节点在非法节点列表中未查找到与节点标识信息相同的非法节点标识时所得到的。
97.应当理解,业务网络中的第一业务节点可以获取用户终端发送的交易业务请求,进而可以基于交易业务请求执行用户终端所请求的交易业务,以根据交易业务的交易执行结果得到初始交易数据。例如,第一业务节点(例如,与电子票据相关联的应用客户端对应的服务器)可以获取消费用户对应的用户终端(例如,终端设备a)所发送的交易业务请求,
该交易业务请求所执行的交易业务可以为:将终端设备a在购买器材时所获得的电子票据(例如,电子票据x)转移至该消费用户所在企业对应的用户终端(例如,终端设备b)。进一步地,该第一业务节点可以基于该交易业务请求执行这一资产转移业务,进而可以根据交易业务的交易执行结果得到初始交易数据。
98.其中,该第一业务节点与核心共识网络中的共识节点可以采用致密区块连接模式。这里的致密区块连接模式可以用于指示共识节点在将包含初始交易数据的目标区块写入核心共识网络的目标区块链时,将目标区块作为待同步区块,且生成待同步区块对应的致密区块的结构信息。
99.可以理解的是,该第一业务节点可以基于致密区块连接模式,将初始交易数据通过代理节点发送至核心共识网络中的共识节点。与此同时,该第一业务节点可以将该初始交易数据添加至第一节点缓存对应的初始交易数据集中。在该第一业务节点将初始交易数据添加至第一节点缓存对应的初始交易数据集时,可以得到该第一节点缓存对应的目标交易数据集。
100.为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种发送初始交易数据的场景示意图。如图4所示,本申请实施例中的代理节点40b可以用于对业务网络和核心共识网络进行网络隔离,该代理节点40b可以为上述图1所示的代理节点10。本申请实施例中的业务节点40a可以为需要进行区块同步的业务节点(例如,第一业务节点),该业务节点40a可以为上述图1所示的业务网络中的任意一个节点,例如,节点110a。本申请实施例中的共识节点40c可以为用于确定待同步区块的共识节点,该共识节点40c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。
101.应当理解,与业务节点40a具有网络连接关系的用户终端可以向该业务节点40a发送的交易业务请求。例如,在游戏场景下,当某一用户(例如,用户1)向另一用户(例如,用户2)转移10个游戏金币时,用户1对应的用户终端(例如,用户终端a)可以生成向业务节点40a发送的交易业务请求,以使业务节点40a基于该交易业务请求执行这一交易业务,以将这10个游戏金币转移至用户终端b。进一步地,该业务节点40a可以根据交易业务的交易执行结果得到初始交易数据(例如,图4所示的交易数据44e)。此时,业务节点40a可以将该交易数据44e发送至代理节点40b,以使该代理节点40b将该交易数据44e3e广播至核心共识网络中的共识节点40c。
102.可以理解的是,业务节点40a在将交易数据44e发送至代理节点40b的同时,还可以将该交易数据44e添加至业务节点40a的本地缓存(即第一节点缓存)中的初始交易数据集中,进而可以得到第一节点缓存中的目标交易数据集。比如,业务节点40a的本地缓存可以为如图4所示的节点缓存400。应当理解,该节点缓存400对应的初始交易数据集可以包括多个交易数据,本申请实施例可以以3个为例,具体可以包括交易数据41e、交易数据42e以及交易数据43e。在业务节点40a将初始交易数据添加至节点缓存400时,该节点缓存400对应的目标交易数据集可以包括交易数据41e、交易数据42e、交易数据43e以及交易数据44e。
103.其中,代理节点40b在接收到交易数据44e时,可以对业务节点40a进行权限验证。这里的权限验证可以包括验证业务节点40a的节点标识信息是否属于非法节点列表中的节点标识、交易数据44e的交易格式是否有误、签名是否有误等。可以理解的是,这里的非法节点列表可以是指代理节点40b所存储的黑名单列表,该非法节点列表中的非法节点标识所
对应的非法节点是指检测到的恶意节点、被他人举报的节点,在某一时间段发送交易频率异常的节点等。
104.可以理解的是,代理节点40b在确定业务节点40a为非法节点、该交易数据44e的交易格式出现错误时,那么,该代理节点40b无需将交易数据44e发送至共识节点40c,且该代理节点40b可以基于该交易数据44e,生成用于向业务节点40a发送的数据清分通知。业务节点40a在接收到该数据清分通知时,可以在节点缓存400中删除交易数据44e。
105.可选的,在该代理节点40b确认业务节点40a为合法节点,且该交易数据44e的交易格式无误时,可以将该交易数据44e转发至共识节点40c,以使共识节点40c对交易数据44e进行上链。其中,业务节点40a与共识节点40c可以采用致密区块连接模式,以减少交易数据在核心共识网络和业务网络之间的重复传递,进而可以减少数据传输时的数据流量。
106.可以理解的是,核心共识网络中的共识节点在接收到初始交易数据时,可以对初始交易数据进行打包处理,以生成待写入目标区块链的目标区块。进一步地,该共识节点可以将该目标区块广播至核心共识网络,以对该目标区块进行共识。该共识节点在未成功将包含初始交易数据的目标区块写入至目标区块链时,该共识节点可以生成向第一业务节点发送的上链失败结果。进一步地,该共识节点可以将该上链失败结果通过代理节点转发至第一业务节点,以使第一业务节点可以基于该上链失败结果,在第一节点缓存对应的目标交易数据集中删除初始交易数据。
107.例如,如图4所示的共识节点40c在未成功将包含交易数据44e的目标区块写入目标区块链时,该共识节点40c可以生成上链失败结果,进而可以通过代理节点40b将该上链失败结果转发至业务节点40a。业务节点40a在接收到该上链失败结果时,可以在图4所示的节点缓存400对应的目标交易数据集中删除交易数据44e。
108.可选的,该共识节点在成功将包含初始交易数据的目标区块写入至目标区块链时,该业务节点可以保持缓存直到同步的区块中包括该初始交易数据时,可以在第一业务节点对应的目标交易数据集中删除该初始交易数据。
109.其中,本申请实施例中的第一业务节点可以为全量节点,也可以为轻量节点,在此不做限定。可以理解的是,在第一业务节点为全量节点时,第一业务节点的本地区块链可以为与目标区块链(核心共识网络中的区块链)相同的区块链。换言之,该本地区块链中会存储目标区块链中的完整数据,比如所有交易数据。应当理解,属于全量节点的第一业务节点在区块同步时,可以从本地区块链中,获取具有最大区块生成时间戳的区块所对应的区块哈希值,进而可以基于该区块哈希值生成区块同步请求。
110.可选的,在第一业务节点为轻量节点时,第一业务节点的本地区块链可以存储有目标区块链(核心共识网络中的区块链)的一部分。比如,该本地区块链中一般会存储目标区块链中的区块头和与该第一业务节点相关联的交易数据。应当理解,属于轻量节点的第一业务节点在区块同步时,可以从本地区块链中,获取具有最大区块生成时间戳的区块头所对应的区块哈希值,进而可以基于该区块哈希值生成区块同步请求。
111.其中,本申请实施例中的第一业务节点可以以轻量节点为例,用以阐述第一业务节点在完成区块同步时,对第一业务节点的第一节点缓存中的第一本地交易数据进行数据清分的过程。
112.可以理解的是,该第一业务节点可以获取第一业务节点的节点标识信息,进而可
以将节点标识信息和生成的区块同步请求发送至代理节点,以使代理节点对该第一业务节点进行权限验证,以得到权限验证结果。这里的权限验证可以包括验证第一业务节点的节点标识信息是否属于非法节点列表中的节点标识。可以理解的是,这里的非法节点列表可以是指代理节点所存储的黑名单列表,该非法节点列表中的非法节点标识所对应的非法节点是指检测到的恶意节点、被他人举报的节点,在某一时间段发送交易频率异常的节点等。
113.其中,可以理解的是,该代理节点可以在该非法节点列表中查找与该第一业务节点的节点标识信息相同的非法节点标识,以得到权限验证结果。若权限验证结果指示在非法节点列表中查找到与节点标识信息相同的非法节点标识,则代理节点可以确定该权限验证结果属于非法验证结果,此时,该代理节点可以确定该业务节点为非法节点,进而无需将区块同步请求发送至核心共识网络中的共识节点。若权限验证结果指示在非法节点列表中未查找到与节点标识信息相同的非法节点标识,则代理节点可以确定该权限验证结果属于合法验证结果。此时,该代理节点可以确定该业务节点为合法节点,进而可以将该区块同步请求转发至核心共识网络中的共识节点。
114.应当理解,该区块同步请求可以用于指示共识节点生成待同步区块对应的致密区块的结构信息。为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种生成待同步区块对应的致密区块的结构信息的场景示意图。如图5所示,本申请实施例中的代理节点50b可以用于对业务网络和核心共识网络进行网络隔离,该代理节点50b可以为上述图1所示的代理节点10。本申请实施例中的业务节点50a可以为需要进行区块同步的业务节点(例如,第一业务节点),该业务节点50a可以为上述图1所示的业务网络中的任意一个节点,例如,节点110a。本申请实施例中的共识节点50c可以为用于确定待同步区块的共识节点,该共识节点50c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。
115.其中,本申请实施例中的业务节点50a可以为轻量节点,该业务节点50a的本地区块链中可以存储有区块头信息和与该业务节点50a相关联的交易数据,以避免存储空间的浪费。如图5所示,该业务节点50a的本地区块链中可以包括区块头1、区块头2、

、区块头n。这里的n为正整数。本申请实施例中的共识节点50c为全量节点,该共识节点50c的目标区块链中可以存储有完整的区块。如图5所示,该目标区块链中可以包括(n+1)个区块,即区块1、区块2、区块3、

、区块n以及区块(n+1)。其中,每个区块均包括区块头信息和区块体信息。例如,本申请实施例中的n可以以4为例,则该本地区块链中可以包括区块头1、区块头2、区块头3以及区块头4。该目标区块链中可以包括区块1、区块2、区块3、区块4以及区块5。
116.应当理解,属于轻量节点的业务节点50a在区块同步时,可以从本地区块链中,获取具有最大区块生成时间戳的区块头所对应的区块哈希值,即区块头4对应的区块哈希值,进而可以基于该区块头4对应的区块哈希值生成区块同步请求。该业务节点50a还可以获取业务节点50a的节点标识信息,进而可以将节点标识信息和生成的区块同步请求发送至代理节点50b,以使代理节点50b根据合法验证结果,将区块同步请求转发至共识节点50c。
117.可以理解的是,共识节点50c在接收到该区块同步请求时,可以基于该区块同步请求中携带的区块哈希值,在图5所示的目标区块链中确定待同步区块。例如,该共识节点50c所确定的待同步区块可以为区块5。其中,该区块5的区块信息中可以包括区块头信息和区块主体。其中,区块头信息可以包括该待同步区块的父区块哈希值(即区块4的区块哈希值)、区块高度、版本号、时间戳、难度值、随机数以及默克尔树根等信息。该区块主体可以包
括打包至区块5的交易数据以及由交易数据的交易哈希值所构成的默克尔路径。
118.其中,区块5中的交易数据可以包括业务节点50a曾发送的初始交易数据,以及其他相关交易数据。比如,交易数据51、交易数据53以及交易数据54均可以为业务节点50a曾发送的初始交易数据。交易数据52可以为与业务节点50a具有关联关系的业务节点所发送的交易数据,且在交易内容中指定该交易数据52对业务节点50a可见,换言之,业务节点50a的节点缓存中并未存储交易数据52。
119.进一步地,共识节点50c可以调用智能合约,在区块5中的所有交易数据中,筛选与业务节点50a相关联的交易数据,并将所筛选的交易数据可以称之为预测交易数据。可以理解的是,智能合约是计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
120.如图5所示,该共识节点50c可以调用智能合约,获取与该交易数据52相关联的可见列表。其中,该可见列表中可以包括需要存储该交易数据52的节点的节点标识。可以理解的是,若在该可见列表中查找到与业务节点50a相同的节点标识时,该共识节点50c可以将该交易数据52作为预测交易数据,以用于将完整的交易数据52发送至业务节点50a。
121.为便于理解,进一步地,请参见表1,表1是本申请实施例提供的一种节点标识列表。如表1所示,该节点标识列表中可以存储有对某一交易数据可见的节点的节点标识。其中,节点标识可为ip(internet protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以ip地址为例进行说明。
122.表1
123.节点名称节点标识业务节点a1117.114.151.174业务节点a2117.116.189.145
……
业务节点a
n
119.123.789.258
124.进一步地,该共识节点50c可以在区块5中的所有交易数据中,确定业务节点50a所发送的初始交易数据,例如,交易数据51、交易数据53和交易数据54。此时,该共识节点50c可以获取标识符确定规则,对初始交易数据进行哈希标识转换,以得到初始交易数据对应的目标交易标识符。例如,交易数据51对应的目标交易标识符可以为交易标识符a,交易数据53对应的目标交易标识符可以为交易标识符c,交易数据54对应的目标交易标识符可以为交易标识符d。此外,该共识节点50c还可以获取与业务节点50a相关联的交易数据的默克尔路径,即交易数据51、交易数据53以及交易数据54这三个交易数据各自的默克尔路径,以使业务节点50a在接收到结构信息500y时,对待同步区块进行校验。
125.此时,该共识节点50c可以基于区块5的区块头信息、默克尔路径、预测交易数据以及目标交易标识符,生成该区块5对应的致密区块的结构信息(例如,图5所示的结构信息500y)。进一步地,该共识节点50c可以通过代理节点50b将结构信息500y发送至业务节点50a。
126.步骤s102,在接收到共识节点通过代理节点转发的结构信息时,获取结构信息中的目标交易标识符。
127.具体地,第一业务节点可以获取代理节点发送的系统加密数据信息。这里的系统加密数据信息可以为代理节点通过业务网络的系统公钥对结构信息和签名信息进行加密处理后所得到的;这里的签名信息可以为代理节点在获取到共识节点发送的结构信息时,通过代理节点的节点私钥对结构信息进行签名后所得到的。进一步地,第一业务节点可以通过系统公钥对应的系统私钥,对系统加密数据信息进行解密处理,以得到结构信息和签名信息。该第一业务节点可以获取代理节点的节点公钥,基于节点公钥对签名信息进行验签,以得到验签结果。在验签结果指示验签成功时,该第一业务节点可以从结构信息中获取初始交易数据对应的目标交易标识符。
128.为便于理解,进一步地,请参见图6,图6是本申请实施例提供的一种获取目标交易标识符的场景示意图。如图6所示,本申请实施例中的业务节点60a可以为用于进行区块同步的第一业务节点,该业务节点60a可以为上述图1所示的业务网络中的任意一个业务节点,例如,节点110a。本申请实施例中的共识节点60c可以用于确定待同步区块对应的致密区块的结构信息,该共识节点60c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。本申请实施例中的代理节点60b可以用于对该业务网络和该核心共识网络进行网络隔离,该代理节点60b可以为上述图1所示的代理节点10。
129.应当理解,由于本申请实施例中的共识节点60c与业务节点60a采用致密区块连接模式,共识节点60c在接收到业务节点60a所生成的区块同步请求时,可以在核心共识网络的目标区块链上确定待同步区块对应的致密区块的结构信息(例如,图6所示的结构信息600y),进而可以将该结构信息600y发送至代理节点60b,以使代理节点60b将该结构信息600y发送至业务节点60a。
130.可以理解的是,由于核心共识网络处于相对安全的私有云中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制,而业务网络一般处于公共网络中,可以能会被其他不确定的网络终端访问。因此,在代理节点60b将结构信息600y发送至业务节点60a的过程中,需要被严格控制。换言之,该代理节点60b在接收到共识节点60c发送的结构信息600y时,可以基于代理节点60b的节点私钥对结构信息600y进行签名,得到该结构信息600y对应的签名信息。可以理解的是,代理节点60b可以对结构信息600y进行哈希计算,从而可以得到结构信息600y的摘要信息h,并基于代理节点60b的节点私钥对该摘要信息h进行数字签名,得到该结构信息600y对应的签名信息。进一步地,该代理节点60b可以获取业务网络的系统公钥,对结构信息600y和签名信息进行加密处理,以得到系统加密数据信息。此时,该代理节点60b可以将系统加密数据信息发送至业务网络中的业务节点60a。
131.进一步地,业务节点60a在接收到系统加密数据信息时,可以通过系统公钥对应的系统私钥,对该系统加密数据信息进行解密处理,进而可以得到结构信息600y和签名信息。进一步地,该业务节点60a可以获取代理节点60b的节点公钥,基于该节点公钥,对签名信息进行验签,以得到验签结果。其中,可以理解的是,业务节点60a可以基于代理节点60b的节点公钥对该签名信息中的数字签名进行验签,得到结构信息600y的摘要信息h,并利用与该代理节点60b相同的哈希算法对该结构信息600y进行哈希计算,从而可以得到该结构信息600y的摘要信息h。进一步地,业务节点60a可以将验签后所得到的摘要信息h与进行哈希计
算得到的摘要信息h进行比对,得到验签结果。若该验签结果指示摘要信息h与摘要信息h不相同,则可以理解为业务节点60a验签失败。若该验签结果指示摘要信息h与摘要信息h相同,则可以理解为业务节点60a验签成功,从而可以得到结构信息600y。
132.在验签结果指示验签成功时,该业务节点60a可以从结构信息600y中获取初始交易数据对应的目标交易标识符。比如,若结构信息600y与图5所示的结构信息500y相同,则该业务节点60a所获取的目标交易标识符可以为图5所示的交易标识符a、交易标识符c和交易标识符d。
133.步骤s103,确定第一节点缓存中的第一本地交易数据对应的本地交易标识符,基于目标交易标识符和本地交易标识符,对待同步区块进行区块同步,且在完成区块同步时对第一本地交易数据进行数据清分。
134.具体地,第一业务节点可以获取标识符确定规则,进而可以基于标识符确定规则,对第一业务节点的第一节点缓存中的第一本地交易数据进行哈希标识转换,以得到第一本地交易数据对应的本地交易标识符。进一步地,该第一业务节点可以将本地交易标识符与目标交易标识符进行比对,得到比对结果。应当理解,在比对结果指示本地交易标识符与目标交易标识符相同时,该第一节点可以将第一节点缓存中的本地交易标识符对应的本地交易数据作为用于验证待同步区块的第一关键交易数据,进而可以基于第一关键交易数据以及结构信息,对待同步区块进行区块同步,且在完成区块同步时,在第一节点缓存中删除第一本地交易数据。
135.其中,目标交易标识符是共识节点基于标识符确定规则为对初始交易数据进行哈希标识转换后确定的。因此,该第一业务节点可以采用该标识符确定规则,对第一节点缓存中的第一本地交易数据进行哈希标识转换,以得到第一本地交易数据对应的本地交易标识符。
136.可以理解的是,本申请实施例中的标识符确定规则可以包括第一哈希规则和第二哈希规则。这里的第一哈希规则不同于第二哈希规则。可以理解的是,该第一业务节点可以基于第一哈希规则,对第一本地交易数据进行第一哈希转换,得到第一本地交易数据对应的第一哈希值。进一步地,该第一业务节点可以基于第二哈希规则,对第一哈希值进行第二哈希转换,得到第一本地交易数据对应的第二哈希值,基于第二哈希值以及第二哈希规则所关联的哈希字节数(例如,6个字节),得到第一本地交易数据对应的本地交易标识符。
137.应当理解,第一哈希规则和第二哈希规则均可以为哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。
138.例如,这里的第一哈希规则可以为sha256,这里的第二哈希规则可以为siphash算法(例如,siphash
‑2‑
4)。可以理解的是,第一业务节点可以使用sha256,在小端字节序(little

endian)中,对附加了随机数的第一本地交易数据进行第一哈希转换,得到一个256位(相当于32个字节的数组)长的哈希值(即第一哈希值)。进一步地,该第一业务节点可以使用siphash
‑2‑
4,将密钥(k0/k1)分别设置为第一哈希值的前两个小端64位(相当于8个字节的数组)整数,进而可以得到第一本地交易数据对应的第二哈希值。此时,第一业务节点可以从第二哈希值中删除2个最高有效字节,使其成为6个字节,并且可以将这6个字节的
哈希值作为第一本地交易数据对应的本地交易标识符。
139.进一步地,该第一业务节点可以将本地交易标识符与目标交易标识符进行比对,得到比对结果。在比对结果指示本地交易标识与目标交易标识符相同时,第一业务节点可以将第一节点缓存中的本地交易标识符对应的本地交易数据作为用于验证待同步区块的第一关键交易数据。
140.进一步地,该第一业务节点可以从结构信息中获取待同步区块的区块头信息以及默克尔路径,获取第一关键交易数据对应的关键交易哈希值以及默克尔路径中的路径哈希值,确定待同步区块的待比较树根。此时,该第一业务节点可以基于区块头信息中的默克尔树根和待比较树根,得到待同步区块的验证结果。可以理解的是,在验证结果指示默克尔树根与待比较树根不一致时,该第一业务节点可以认为该验证结果指示验证失败。可选的,在验证结果指示默克尔树根与待比较树根一致时,该第一业务节点可以认为验证结果指示验证成功。
141.若验证结果指示验证成功,则该第一业务节点可以对待同步区块进行区块同步,在完成区块同步时,在第一节点缓存中删除第一本地交易数据。其中,可以理解的是,若验证结果指示验证成功,则该第一业务节点可以从结构信息中获取预测交易数据。其中,预测交易数据为共识节点在待同步区块中的所有交易数据中,基于智能合约所筛选的与第一业务节点相关联的交易数据。
142.应当理解,若第一业务节点为全量节点,则该第一业务节点可以基于第一关键交易数据、预测交易数据以及结构信息中的区块头信息,重构得到待同步区块,进而可以将待同步区块同步至第一业务节点的本地区块链。可选的,若第一业务节点为轻量节点,则该第一业务节点可以将第一关键交易数据、预测交易数据以及区块头信息同步至第一业务节点的本地区块链。
143.比如,第一业务节点(例如,图5所示的业务节点50a)所获取的目标交易标识符为图5所示的交易标识符a、交易标识c以及交易标识d。而该业务节点50a的第一节点缓存中的第一本地交易数据可以为图4所示的节点缓存400中的目标交易数据集中的交易数据。其中,该业务节点50a可以确定第一本地交易数据对应的本地交易标识符。该本地交易标识符具体可以包括交易标识符1f、交易标识符2f、交易标识符3f以及交易标识符4f。其中,交易标识符1f可以为图4所示的交易数据41e对应的本地交易标识符,交易标识符2f可以为图4所示的交易数据42e对应的本地交易标识符,交易标识符3f可以为图4所示的交易数据43e对应的本地交易标识符,交易标识符4f可以为图4所示的交易数据44e对应的本地交易标识符。
144.其中,业务节点50a可以将目标交易标识符中的交易标识符a与本地交易标识符进行比对,得到比对结果(例如,比对结果1)。其中,比对结果1可以指示目标交易标识符中的交易标识符a与本地交易标识符中的交易标识符1f相同,此时,该业务节点50a可以在节点缓存400所示的本地交易数据中,将交易标识符1f对应的交易数据41e作为用于验证待同步区块的第一关键交易数据。
145.进一步地,业务节点50a可以将目标交易标识符中的交易标识符c与本地交易标识符进行比对,得到比对结果(例如,比对结果2)。其中,比对结果2可以指示目标交易标识符中的交易标识符c与本地交易标识符中的交易标识符3f相同,此时,该业务节点50a可以在
节点缓存400所示的本地交易数据中,将交易标识符3f对应的交易数据43e作为用于验证待同步区块的第一关键交易数据。
146.进一步地,业务节点50a可以将目标交易标识符中的交易标识符d与本地交易标识符进行比对,得到比对结果(例如,比对结果3)。其中,比对结果3可以指示目标交易标识符中的交易标识符d与本地交易标识符中的交易标识符4f相同,此时,该业务节点50a可以在节点缓存400所示的本地交易数据中,将交易标识符4f对应的交易数据44e作为用于验证待同步区块的第一关键交易数据。
147.其中,本申请实施例可以将交易数据41e、交易数据43e以及交易数据44e均称之为用于验证待同步区块(如图5所示的区块(n+1),例如,区块5)的第一关键交易数据。进一步地,该业务节点50a可以从结构信息500y中获取区块5的区块头信息以及默克尔路径,以获取默克尔路径中的路径哈希值。例如,该业务节点50a所获取的默克尔路径中的路径哈希值可以为hash1、hash12、hash3、hash4。
148.与此同时,该业务节点50a可以对第一关键交易数据(例如,交易数据41e、交易数据43e以及交易数据44e)进行交易哈希转换,得到第一关键交易数据对应的关键交易哈希值,确定区块5的待比较树根。此时,该业务节点50a可以基于区块头信息中的默克尔树根和待比较树根,得到区块5的验证结果。
149.可以理解的是,若验证结果指示默克尔树根与待比较树根一致,则该业务节点可以认为验证结果指示验证成功。此时,该业务节点50a可以从结构信息500y中获取预测交易数据(例如,交易数据52)。应当理解,该业务节点50a可以将交易数据41e、交易数据43e、交易数据44e、交易数据52以及区块头信息同步至业务节点50a的本地区块链,换言之,该业务节点50a可以将区块5的区块头信息作为区块头4的下一区块头。在完成区块同步时,在业务节点50a可以在图4所示的节点缓存400中删除交易数据41e、交易数据43e以及交易数据44e,以实现数据清分。
150.在本申请实施例中,业务网络中的第一业务节点在进行区块同步时,可以通过用于对核心共识网络和业务网络进行网络隔离的代理节点,向核心共识网络中的共识节点发送区块同步请求,以使该共识节点确定待同步区块对应的致密区块的结构信息。可以理解的是,该第一业务节点在进行区块同步时,无需像传统区块链部署方式一样,接收包括所有交易数据的待同步区块,而是接收待同步区块对应的致密区块的结构信息。进一步地,该第一业务节点可以从结构信息中获取用于表示初始交易数据的目标交易标识符,而非完整的初始交易数据。这里的初始交易数据是指该第一业务节点在执行交易业务时所生成的交易数据。此时,第一业务节点可以确定第一节点缓存中的第一本地交易数据对应的本地交易标识符,以便于在第一节点缓存中查询该目标交易标识符对应的交易数据,以减少数据传输时的数据流量。可以理解的是,该第一业务节点可以基于本地交易标识符和目标交易标识符,对待同步区块进行区块同步,且在完成区块同步时,可以对第一本地交易数据进行数据清分。由于本申请实施例中的第一节点缓存中可以存储有第一业务节点所生成的交易数据(例如,初始交易数据),因此在第一业务节点进行区块同步时,无需再次从核心共识网络中同步完整的交易数据,进而可以有效减少该交易数据在核心共识网络和业务网络之间的重复传递。
151.进一步地,请参见图7,图7是本申请实施例提供的一种交易数据处理方法的流程
示意图。如图7所示,该方法可以由业务网络中的第一业务节点、第二业务节点、代理节点、核心共识网络中的共识节点共同执行。该第一业务节点可以为上述图1所示的业务网络中的任意一个节点,例如,节点110a。该第二业务节点可以为与该第一业务节点属于同一业务机构的节点,例如,该第二业务节点可以为上述图1所示的业务网络中的节点110b。代理节点可以为上述图1所示的代理节点10。该共识节点可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。该方法至少可以包括以下步骤s201

步骤s209:
152.步骤s201,通过代理节点向属于核心共识网络的共识节点发送区块同步请求;
153.步骤s202,在接收到共识节点通过代理节点转发的结构信息时,获取结构信息中的目标交易标识符;
154.步骤s203,确定第一节点缓存中的第一本地交易数据对应的本地交易标识符,将目标交易标识符和本地交易标识符进行比对,得到比对结果;
155.步骤s204,在比对结果指示本地交易标识符与目标交易标识符相同时,将第一节点缓存中的本地交易标识符对应的本地交易数据作为用于验证待同步区块的第一关键交易数据,基于第一关键交易数据以及结构信息,对待同步区块进行区块同步,且在完成区块同步时,在第一节点缓存中删除第一本地交易数据。
156.其中,其中,该步骤s201

步骤s204的具体实施方式可参见上述图3所对应实施例中对步骤s101

步骤s103的描述,这里将不再赘述。
157.步骤s205,在比对结果指示本地交易标识符与目标交易标识符不同时,第一业务节点向第二业务节点发送携带目标交易标识符的交易数据获取请求。
158.具体地,在比对结果指示本地交易标识符与目标交易标识符不同时,第一业务节点基于目标交易标识符,生成交易数据获取请求。进一步地,该第一业务节点可以在所维护的同一业务机构列表中,确定与第一业务节点属于同一业务构的第二业务节点,进而可以将该交易数据获取请求发送至第二业务节点。
159.可以理解的是,业务网络中的第一业务节点可以配置一个同一业务机构列表。这样,在第一业务节点未在第一节点缓存中查找到与目标交易标识符相关联的本地交易数据时,可以定向在同一业务机构所构成的子网内部(例如,集团业务子网内部)优先查询,进而可以减少区块链服务的公网带宽消耗和共识节点的访问消耗。其中,本申请实施例可以将同一业务机构列表中的节点标识对应的业务节点统称为第二业务节点。
160.其中,第一业务节点与第二业务节点可以为同一账户所登录的两个不同的终端设备。例如,对于某一个体用户而言,该个体用户对应的账户可以为账户a,该个体用户可以使用账户a在第一业务节点上登录,也可以为使用账户a在第二业务节点上登录。可选的,第一业务节点与第二业务节点可以为同一用户所拥有的不同账户分别登录的终端设备。例如,对于某一企业用户而言,该企业用户可以拥有两个不同的账户(例如,账户b1和账户b2)。其中,第一业务节点可以为该企业用户对应的账户b1所登录的终端设备,第二业务节点可以为该企业用户对应的账户b2所登录的终端设备。
161.步骤s206,接收第二业务节点返回数据查询结果。
162.具体地,该第二业务节点在接收到该交易数据获取请求时,可以在第二业务节点的本地缓存(即第二节点缓存)中,得到与该目标交易标识符相关联的数据查询结果,进而可以将该数据查询结果发送至该第一业务节点。
163.可以理解的是,第二业务节点可以确定第二节点缓存中的第二本地交易数据对应的本地交易标识符,进而可以在第二本地交易数据对应的本地交易标识符查找与交易数据请求所携带的目标交易标识符相同的交易标识符,以得到数据查询结果。
164.其中,该第二业务节点在第二节点缓存中查找目标交易标识符对应的本地交易数据的具体实施方式,可以参见上述图3所对应实施例中第一业务节点在第一节点缓存中确定第一关键交易数据的具体实施方式,在此不再继续进行赘述。
165.步骤s207,若数据查询结果指示第二节点缓存中存在目标交易标识符对应的第二本地交易数据,则将第二本地交易数据作为用于验证待同步区块的第二关键交易数据。
166.具体地,若数据查询结果指示第二节点缓存中存在目标交易标识符对应的第二本地交易数据,则该第一业务节点可以将第二本地交易数据作为用于验证待同步区块的第二关键交易数据。
167.应当理解,第一业务节点在确定第二关键交易数据时,可以基于该第二关键交易数据以及待同步区块对应的致密区块的结构信息,对待同步区块进行区块同步。其中,这里的区块同步的具体实施方式可以参见上述图3所对应实施例中第一业务节点基于第一关键交易数据和结构信息,对待同步区块进行区块同步的具体实施方式,在此不再继续进行赘述。
168.可以理解的是,在完成区块同步时,该第一业务节点可以基于该第二关键交易数据生成数据清分通知,进而可以将该数据清分通知发送至第二业务节点,以使该第二业务节点可以在第二节点缓存中删除第二关键交易数据。
169.为便于理解,进一步地,请参见图8,图8是本申请实时例提供的一种接收数据查询结果的场景示意图。如图8所示,本申请实施例中的业务节点81a可以为第一业务节点,该业务节点81a可以为上述图1所示的业务网络中的任意一个业务节点,例如,节点110a,本申请实施例中的业务节点82a可以与该业务节点81a属于同一业务机构的第二业务节点,该业务节点82a可以为上述图1所示的业务网络中的节点110b。
170.如图8所示,本申请实施例中的业务节点81a从结构信息中所获取的目标交易标识符可以交易标识符83f。进一步地,该业务节点81a可以确定业务节点81a的第一节点缓存(例如,节点缓存810)中的第一本地交易数据对应的本地交易标识符。例如,该节点缓存810中的第一本地交易数据可以包括交易数据81和交易数据82。其中,交易数据81对应的交易标识符可以为交易标识符81f,交易数据82对应的交易标识符可以为交易标识符82f。
171.可以理解的是,该业务节点81a可以将本地交易标识符与目标交易标识符(例如,交易标识符83f)进行比对,得到比对结果。该比对结果可以指示本地交易标识符与目标交易标识符不同,此时,该业务节点81a可以基于该交易标识符83f生成交易数据获取请求,进而可以将该交易数据获取请求发送至业务节点82a。
172.在业务节点82a接收到该交易数据获取请求时,该业务节点82a可以确定第二节点缓存(例如,图8所示的节点缓存820)中的第二本地交易数据对应的本地交易标识符,以得到与目标交易标识符相关联的数据查询结果。进一步地,该业务节点82a可以将数据查询结果返回至业务节点81a。
173.由于该业务节点82a所确定的该交易数据83对应的交易标识符为交易标识符83f,因此该数据查询结果可以指示节点缓存820中存在交易标识符83f对应的第二本地交易数
据,即交易数据83。此时,该业务节点81a可以将交易数据83作为第二关键交易数据,进而可以基于该交易数据83和结构信息,对待同步区块进行同步,且在完成区块同步时,可以基于交易数据83生成向业务节点82a发送的数据清分通知,以使业务节点82a可以在节点缓存820中删除该交易数据83。
174.步骤s208,若数据查询结果指示第二节点缓存中不存在目标交易标识符对应的第二本地交易数据,则通过代理节点,将交易数据获取请求发送至共识节点,以使共识节点在待同步区块中,获取目标交易标识符对应的目标交易数据,且将目标交易数据发送至代理节点。
175.具体地,若数据查询结果指示第二节点缓存中不存在目标交易标识符对应的第二本地交易数据,则可以视为该第一业务节点未能在同一业务机构列表中包括的第二业务节点中获取目标交易标识符对应的交易数据。此时,该第一业务节点可以将交易数据获取请求发送至代理节点,以使代理节点将交易数据获取请求发送至核心共识网络中的共识节点。该共识节点在接收到该交易数据获取请求时,可以在待同步区块中,获取目标交易标识符对应的目标交易数据,且将目标交易数据发送至代理节点。
176.步骤s209,接收共识节点通过代理节点所转发的目标交易数据,将目标交易数据作为用于验证待同步区块的第三关键交易数据,且基于第三关键交易数据以及结构信息,对待同步区块进行同步。
177.具体地,该第一业务节点可以接收共识节点通过代理节点所转发的目标交易数据,进而可以将目标交易数据作为用于验证待同步区块的第三关键交易数据。进一步地,该第一业务节点可以基于第三关键交易数据以及结构信息,对待同步区块进行同步。
178.其中,第一业务节点基于第三关键交易数据和结构信息,对待同步区块进行区块同步的具体实施方式可以参见上述图3所对应实施例中第一业务节点基于第一关键交易数据和结构信息,对待同步区块进行区块同步的具体实施方式,在此不再继续进行赘述。
179.例如,图8所示的业务节点81a所获取的目标交易标识符为交易标识符84f,那么,业务节点81a所生成的交易数据获取请求可以携带该交易标识符84f。此时,业务节点82a可以基于交易数据获取请求,得到与交易标识符84f相关联的数据查询结果。其中,该数据查询结果可以指示节点缓存820中不存在交易标识符84f对应的第二本地交易数据。
180.可以理解的是,该业务节点81a所维护的同一业务机构列表中还可以包括另一第二业务节点(例如,业务节点83a)的节点标识。其中,该业务节点83a的节点缓存(例如,节点缓存830)中存储有交易数据84。但该业务节点83a可能由于设备故障或者断网等原因掉线,使得业务节点81a无法在业务节点83a中获取到交易数据84。此时,该业务节点81a可以将携带该交易标识符84f的交易数据获取请求,通过代理节点发送至核心共识网络中的共识节点。
181.该共识节点在接收到该交易数据获取请求时,可以在待同步区块中获取交易标识符84f对应的目标交易数据(例如,交易数据84),进而可以将该交易数据84发送至代理节点,以使代理节点可以将交易数据84转发至业务节点81a。应当理解,在业务节点81a接收到该交易数据84时,可以将该交易数据84作为用于验证待同步区块的第三关键交易数据,进而可以基于该交易数据84以及结构信息,对待同步区块进行同步。
182.为便于理解,进一步地,请参见图9,图9是本申请实施例提供的一种区块链电子票
据场景下的系统架构图。如图9所示,本申请实施例中的业务层、路由代理层以及核心共识网络层组成了整个完整区块链业务体系。图9所示的核心链1、核心链2、

以及核心链n分别为不同区域的税局所维护的目标区块链。例如,本申请实施例中的交易业务可以以电子票据转移业务为例,在此不做限定。
183.可以理解的是,当区块链被用于政府(例如,税务系统)或者商业机构的一些场景中,为了提高数据的保密性和安全性,在区块链体系中涉及个人隐私或者国家安全等相关数据时,可以采用本申请实施例中的“业务网络—核心共识网络”这一分层区块链结构。
184.其中,业务层处于见证网络中,该业务层中的业务节点(例如,第一业务节点)可以包括电子税局对应的终端设备、企业用户对应的终端设备以及消费用户对应的终端设备。其中,电子税局可以是指税局专网中的地方税局,企业用户可以为公有云中的开票服务商、报销服务商或者零售企业(例如,ka企业,即大型零售客户和重点零售客户企业)等,消费用户可以为私有云中的支付服务商、流转服务商或者零售企业等。例如,第一业务节点(例如,消费用户对应的终端设备a)所执行的票据转移业务可以为:将消费用户在购买器材时所获得的电子票据(例如,电子票据x)转移至该消费用户所在企业对应的终端设备b。当然,该业务层中可以包括与该第一业务节点属于同一业务机构的第二业务节点。例如,某一公司的两个开票员(例如,员工1和员工2),在各自的终端设备上开票产生了一些交易数据。例如,员工1可以使用终端设备a1执行交易业务,以生成交易数据,员工2可以使用终端设备a2执行交易业务,以生成对应交易数据。由于交易的地址均为这个公司的地址,因此,终端设备a1产生的交易数据和在终端设备a1产生的交易数据均属于该公司。只是交易数据存放在不同的终端设备的本地缓存(即节点缓存)中。此时,员工1所使用的终端设备a1可以称之为第一业务节点,员工2所使用的终端设备a2可以称之为与第一业务节点属于同一业务机构的第二业务节点。第一业务节点所产生的交易数据存放在第一节点缓存中,第二业务节点所产生的交易数据存放在第二节点缓存中。
185.其中,路由代理层中的代理节点可以用于对业务层和核心共识网络层进行网络隔离,代理节点可以具有点对点服务(即p2p服务),路由服务、证书缓存、认证服务。可以理解的是,点对点服务是指在p2p网络中的服务,基于一类特定的网络协议,p2p网络中的网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻节点连接状态。路由服务是节点具有的基本功能,可以用于节点之间的通信。证书缓存中证书,可以指公钥证书体系(pki,public key infrastructure),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构进行颁发(ca)。基于公钥证书体系可以实现非对称加密和对于信息的数字签名。这里的公钥证书体系可以包括公私钥密码,x509证书,ca证书签发中心等等。认证服务可以用于验证接收到的信息(例如,业务节点发送的初始交易数据)的交易格式、节点合法性等。可以理解的是,在本申请实施例中,该代理节点可以将核心共识网络层中的共识节点所发送的待同步区块对应的致密区块的结构信息转发至业务层中的第一节点。其中,在转发过程中,该代理节点可以对结构信息进行签名得到签名信息,并对结构信息和签名信息进行加密处理,得到系统加密数据信息,以发送至业务层。
186.其中,核心共识网络层中的共识节点(即记账节点)可以为税务专网中的可信节点。可以理解的是,每个共识节点均具有打包出块的能力,即可以对代理节点所转发的初始
交易数据进行验证,并在验证成功时添加至共识节点的交易池(即图9所示的缓存)中。进一步地,该共识节点可以对自己交易池中的交易数据进行打包出块,以成功写入核心共识网络层中的目标区块链中。此外,共识节点在接收到由代理节点转发的区块同步请求时,可以通过调用权限合约(例如,智能合约),确定待同步区块中的预测交易数据,以生成待同步区块对应的致密区块的结构信息。
187.在本申请实施例中,在“业务网络—核心共识网络”这样的分层结构下,业务网络中的第一业务节点在区块同步时,可以通过用于对核心共识网络和业务网络进行网络隔离的代理节点,向核心共识网络中的共识节点发送区块同步请求,以使该共识节点确定待同步区块对应的致密区块的结构信息。可以理解的是,该第一业务节点在进行区块同步时,无需像传统区块链部署方式一样,接收包括所有交易数据的待同步区块,而是接收待同步区块对应的致密区块的结构信息。这里的结构信息包括的是轻量级的区块头信息和用于表示初始交易数据的目标交易标识符,而非完整的初始交易数据,进而大大减少了不必要的网络流量,进而可以保障核心共识网络的高性能运作。进一步地,该第一业务节点在从结构信息中获取到目标交易标识符后,进而可以确定第一节点缓存中的第一本地交易数据对应的本地交易标识符,以便于在第一节点缓存中查询该目标交易标识符对应的交易数据。可以理解的是,该第一业务节点可以基于本地交易标识符和目标交易标识符,对待同步区块进行区块同步,且在完成区块同步时,可以对第一本地交易数据进行数据清分。由此可见,本申请实施例中的初始交易数据一般可以缓存在本地缓存(即第一节点缓存)或者集团业务子网内部(即属于同一业务机构的业务节点所构成的子网内部),因此在第一业务节点进行区块同步时,无需再次从核心共识网络中同步完整的交易数据,进而可以有效减少该交易数据在核心共识网络和业务网络之间的重复传递。
188.进一步地,请参见图10,图10是本申请实施例提供的一种交易数据处理装置的结构示意图。如图10所示,该交易数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该交易数据处理装置1为一个应用软件;该交易数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该交易数据处理装置1可以运行于业务网络中的第一业务节点,该第一业务节点可以为上述图2所对应实施例中的业务节点20a。该交易数据处理装置1可以包括:区块同步请求发送模块11,目标标识符获取模块12,数据清分模块13,初始交易确定模块14,初始交易添加模块15,目标交易集确定模块16,上链结果接收模块17,初始交易删除模块18,第一发送模块19,数据查询结果接收模块20,第一确定模块21,清分通知生成模块22,清分通知发送模块23,第二发送模块24,第二确定模块25以及区块同步模块26。
189.该区块同步请求发送模块11,用于通过代理节点向属于核心共识网络的共识节点发送区块同步请求;代理节点用于对核心共识网络和业务网络进行网络隔离;业务网络为请求发送区块同步请求的第一业务节点所在的网络;区块同步请求用于指示共识节点生成待同步区块对应的致密区块的结构信息;结构信息包括目标交易标识符;目标交易标识符是共识节点对初始交易数据进行哈希标识转换后所确定的。
190.其中,第一业务节点为轻量节点;
191.该区块同步请求发送模块11包括:区块同步请求生成单元111以及区块同步请求发送单元112。
192.该区块同步请求生成单元111,用于从第一业务节点的本地区块链中获取具有最大区块生成时间戳的区块头所对应的区块哈希值,基于区块哈希值生成用于指示核心共识网络中的共识节点进行区块同步的区块同步请求;
193.该区块同步请求发送单元112,用于获取第一业务节点的节点标识信息,将节点标识信息和区块同步请求发送至代理节点,以使代理节点根据合法验证结果将区块同步请求转发给共识节点;合法验证结果是代理节点在非法节点列表中未查找到与节点标识信息相同的非法节点标识时所得到的。
194.其中,该区块同步请求生成单元111以及区块同步请求发送单元112的具体实现方式可以参见上述图3所对应实施例中对步骤s101的描述,这里将不再继续进行赘述。
195.目标标识符获取模块12,用于在接收到共识节点通过代理节点转发的结构信息时,获取结构信息中的目标交易标识符;
196.其中,目标标识符获取模块12包括:加密信息获取单元121,解密处理单元122,验签单元123以及目标标识符获取单元124。
197.该加密信息获取单元121,用于获取代理节点发送的系统加密数据信息;系统加密数据信息为代理节点通过业务网络的系统公钥对结构信息和签名信息进行加密处理后所得到的;签名信息为代理节点在获取到共识节点发送的结构信息时,通过代理节点的节点私钥对结构信息进行签名后所得到的;
198.该解密处理单元122,用于通过系统公钥对应的系统私钥,对系统加密数据信息进行解密处理,得到结构信息和签名信息;
199.该验签单元123,用于获取代理节点的节点公钥,基于节点公钥对签名信息进行验签,得到验签结果;
200.该目标标识符获取单元124,用于在验签结果指示验签成功时,从结构信息中获取初始交易数据对应的目标交易标识符。
201.其中,该加密信息获取单元121,解密处理单元122,验签单元123以及目标标识符获取单元124的具体实现方式可以参见上述图3所对应实施例中对步骤s102的描述,这里将不再继续进行赘述。
202.该数据清分模块13,用于确定第一节点缓存中的第一本地交易数据对应的本地交易标识符,基于目标交易标识符和本地交易标识符,对待同步区块进行区块同步,且在完成区块同步时对第一本地交易数据进行数据清分。
203.其中,目标交易标识符是共识节点基于标识符确定规则为对初始交易数据进行哈希标识转换后确定的;
204.该数据清分模块13包括:标识转换单元131,标识比对单元132,交易确定单元133以及删除单元134。
205.该标识转换单元131,用于获取标识符确定规则,基于标识符确定规则,对第一业务节点的第一节点缓存中的第一本地交易数据进行哈希标识转换,得到第一本地交易数据对应的本地交易标识符;
206.其中,标识符确定规则包括:第一哈希规则和第二哈希规则;第一哈希规则不同于第二哈希规则;
207.该标识转换单元131包括:第一哈希转换子单元1311以及第二哈希转换子单元
1312。
208.该第一哈希转换子单元1311,用于基于标识符确定规则中的第一哈希规则,对第一业务节点的第一节点缓存中的第一本地交易数据进行第一哈希转换,得到第一本地交易数据对应的第一哈希值;
209.该第二哈希转换子单元1312,用于基于第二哈希规则,对第一哈希值进行第二哈希转换,得到第一本地交易数据对应的第二哈希值,基于第二哈希值以及第二哈希规则所关联的哈希字节数,得到第一本地交易数据对应的本地交易标识符。
210.其中,该第一哈希转换子单元1311以及第二哈希转换子单元1312的具体实现方式可以参见上述图3所对应实施例中对第一本地交易数据对应的本地交易标识符的描述,这里将不再继续进行赘述。
211.该标识比对单元132,用于将本地交易标识符与目标交易标识符进行比对,得到比对结果;
212.该交易确定单元133,用于在比对结果指示本地交易标识符与目标交易标识符相同时,将第一节点缓存中的本地交易标识符对应的本地交易数据作为用于验证待同步区块的第一关键交易数据;
213.该删除单元134,用于基于第一关键交易数据以及结构信息,对待同步区块进行区块同步,且在完成区块同步时,在第一节点缓存中删除第一本地交易数据。
214.其中,该删除单元134包括:获取子单元1341,待比较树根确定子单元1342,验证结果确定子单元1343以及删除子单元1344。
215.该获取子单元1341,用于从结构信息中获取待同步区块的区块头信息以及默克尔路径;
216.该待比较树根确定子单元1342,用于获取第一关键交易数据对应的关键交易哈希值以及默克尔路径中的路径哈希值,确定待同步区块的待比较树根;
217.该验证结果确定子单元1343,用于基于区块头信息中的默克尔树根和待比较树根,得到待同步区块的验证结果;
218.该删除子单元1344,用于若验证结果指示验证成功,则对待同步区块进行区块同步,在完成区块同步时,在第一节点缓存中删除第一本地交易数据。
219.其中,该删除子单元1344还用于:
220.若验证结果指示验证成功,则从结构信息中获取预测交易数据;预测交易数据为共识节点在待同步区块中的所有交易数据中,基于智能合约所筛选的与第一业务节点相关联的交易数据;
221.将第一关键交易数据、预测交易数据以及区块头信息同步至第一业务节点的本地区块链。
222.其中,该获取子单元1341,待比较树根确定子单元1342,验证结果确定子单元1343以及删除子单元1344的具体实现方式可以参见上述图3所对应实施例中对第一节点缓存中的第一本地交易数据进行数据清分的描述,这里将不再继续进行赘述。
223.其中,该标识转换单元131,标识比对单元132,交易确定单元133以及删除单元134的具体实现方式可以参见上述图3所对应实施例中对步骤s103的描述,这里将不再继续进行赘述。
224.该初始交易确定模块14,用于获取用户终端发送的交易业务请求,基于交易业务请求执行用户终端所请求的交易业务,根据交易业务的交易执行结果得到初始交易数据;
225.该初始交易添加模块15,用于基于致密区块连接模式将初始交易数据通过代理节点发送至共识节点,且将初始交易数据添加至第一节点缓存对应的初始交易数据集;致密区块连接模式用于指示共识节点在将包含初始交易数据的目标区块写入核心共识网络的目标区块链时,将目标区块作为待同步区块,且生成待同步区块对应的致密区块的结构信息。
226.该目标交易集确定模块16,用于在将初始交易数据添加至第一节点缓存对应的初始交易数据集时,得到第一节点缓存对应的目标交易数据集;
227.该上链结果接收模块17,用于在共识节点未成功将包含初始交易数据的目标区块写入核心共识网络的目标区块链时,接收共识节点通过代理节点所转发的上链失败结果;
228.该初始交易删除模块18,用于基于上链失败结果在第一节点缓存对应的目标交易数据集中删除初始交易数据。
229.其中,业务网络中包括第二业务节点,第二业务节点为第一业务节点所维护的同一业务机构列表中的节点;
230.该第一发送模块19,用于在比对结果指示本地交易标识符与目标交易标识符不同时,向第二业务节点发送携带目标交易标识符的交易数据获取请求;交易数据获取请求用于指示第二业务节点在第二节点缓存中的第二本地交易数据中,得到与目标交易标识符相关联的数据查询结果;
231.该数据查询结果接收模块20,用于接收第二业务节点返回的数据查询结果;
232.该第一确定模块21,用于若数据查询结果指示第二节点缓存中存在目标交易标识符对应的第二本地交易数据,则将第二本地交易数据作为用于验证待同步区块的第二关键交易数据。
233.该清分通知生成模块22,用于基于第二关键交易数据以及结构信息,对待同步区块进行区块同步,在完成区块同步时,基于第二关键交易数据生成数据清分通知;
234.该清分通知发送模块23,用于将数据清分通知发送至第二业务节点,以使第二业务节点删除第二节点缓存中的第二关键交易数据。
235.该第二发送模块24,用于若数据查询结果指示第二节点缓存中不存在目标交易标识符对应的第二本地交易数据,则通过代理节点,将交易数据获取请求发送至共识节点;交易数据获取请求用于指示共识节点在待同步区块中,获取目标交易标识符对应的目标交易数据,且将目标交易数据发送至代理节点;
236.该第二确定模块25,用于接收共识节点通过代理节点所转发的目标交易数据,将目标交易数据作为用于验证待同步区块的第三关键交易数据;
237.该区块同步模块26,用于基于第三关键交易数据以及结构信息,对待同步区块进行区块同步。
238.其中,该区块同步请求发送模块11,目标标识符获取模块12,数据清分模块13,初始交易确定模块14,初始交易添加模块15,目标交易集确定模块16,上链结果接收模块17,初始交易删除模块18,第一发送模块19,数据查询结果接收模块20,第一确定模块21,清分通知生成模块22,清分通知发送模块23,第二发送模块24,第二确定模块25以及区块同步模
块26的具体实现方式可以参见上述图7所对应实施例中对步骤s201

步骤s209的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
239.进一步地,请参见图11,图11是本申请实施例提供的一种计算机设备的示意图。如图11所示,该计算机设备1000可以为业务网络中的第一业务节点,该第一业务节点可以为上述图2对应实施例中的业务节点20a,该计算机设备1000可以包括:至少一个处理器1001,例如cpu,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器1005可以是高速ram存储器,也可以是非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
240.在图11所示的计算机设备1000中,网络接口1004主要用于与代理节点、第二业务节点进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
241.通过代理节点向属于核心共识网络的共识节点发送区块同步请求;代理节点用于对核心共识网络和业务网络进行网络隔离;业务网络为请求发送区块同步请求的第一业务节点所在的网络;区块同步请求用于指示共识节点生成待同步区块对应的致密区块的结构信息;结构信息包括目标交易标识符;目标交易标识符是共识节点对初始交易数据进行哈希标识转换后所确定的;
242.在接收到共识节点通过代理节点转发的结构信息时,获取结构信息中的目标交易标识符;
243.确定第一节点缓存中的第一本地交易数据对应的本地交易标识符,基于目标交易标识符和本地交易标识符,对待同步区块进行区块同步,且在完成区块同步时对第一本地交易数据进行数据清分。
244.应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图7所对应实施例中对该交易数据处理方法的描述,也可执行前文图10所对应实施例中对该交易数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
245.本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图3和图7中各个步骤所提供的数据传输方法,具体可参见图3以及图7各个步骤所提供的实现方式,在此不再赘述。
246.计算机可读存储介质可以是前述任一实施例提供的数据传输装置或者计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。
该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
247.本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图7所对应实施例中对交易数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
248.本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包括。例如包括了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
249.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
250.本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程交易数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程交易数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程交易数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程交易数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
251.以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1