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

文档序号:24048739发布日期:2021-02-23 19:58阅读:109来源:国知局
一种交易数据处理方法、装置、设备及存储介质与流程

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


背景技术:

[0002]
在传统区块链部署方式中,区块链网络往往为统一的点对点网络(即p2p网络),即节点对等。处于区块链网络中的区块链节点会定期随机选择向周围节点发送消息,而收到消息的节点也会重复该步骤,由于随机发送,就不可避免的存在消息重复发送至同一节点的情况,从而增加了数据传输时的数据流量。例如,区块链节点(例如,节点a)在接收到某一节点(例如,节点b)广播的交易数据(例如,交易数据x)时,也会将该交易数据x向其他节点(例如,节点c)广播。基于此,节点a在将该交易数据x放入自己的交易池之前,可能会重复收到其他节点广播来的交易数据x。例如,节点d在获取到节点c广播的交易数据x时,也会将该交易数据x无差别地广播至其他节点(例如,节点a),从而造成在节点a处存在同一交易数据x的频繁广播现象。
[0003]
此外,节点c在接收到交易数据x之后,可以将交易数据x以及其他交易数据一并进行打包处理,以得到待写入该区块链网络的待验证区块。此时,节点c需要将完整的包含所有交易数据的待验证区块广播至共识网络中的所有节点,以至于该共识网络中的共识节点(例如,前述节点a)仍会再次无差别地获取到该待验证区块中的交易数据x,进而导致该交易数据x在整个共识网络中的重复广播,以至于在对待验证区块中的这些交易数据进行共识时,降低了整体的共识性能。


技术实现要素:

[0004]
本申请实施例提供一种交易数据处理方法、装置、设备及存储介质,可以减少交易数据的频繁广播,从而可以提升整体的共识性能。
[0005]
本申请实施例一方面提供一种交易数据处理方法,该方法由核心共识网络中的第一节点执行,包括:获取代理节点转发的初始交易数据,对初始交易数据进行打包处理,得到待广播至核心共识网络中的待验证区块;初始交易数据是由业务网络中的业务节点发送的;代理节点用于对业务网络和核心共识网络进行网络隔离;从核心共识网络中获取第二节点,基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息,得到待验证区块对应的致密区块的第一结构信息;第一结构信息包括初始交易数据对应的目标交易标识符;目标交易标识符是对初始交易数据进行哈希标识转换后所确定的;将第一结构信息广播至第二节点,以使第二节点基于目标交易标识符对待验证区块进行共识。
[0006]
本申请实施例一方面提供一种交易数据处理方法,该方法由核心共识网络中的第
二节点执行,包括:接收由核心共识网络中的第一节点发送的待验证区块对应的致密区块的第一结构信息;待验证区块是第一节点对初始交易数据进行打包处理后所得到的;初始交易数据是业务网络中的业务节点通过代理节点所转发的;代理节点用于对业务网络和核心共识网络进行网络隔离;第一结构信息是第一节点基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息所确定的;从第一结构信息中获取目标交易标识符,基于目标交易标识符对待验证区块进行共识;目标交易标识符是第一节点对初始交易数据进哈希标识转换后所确定的。
[0007]
本申请实施例一方面提供一种交易数据处理装置,包括:打包处理模块,用于获取代理节点转发的初始交易数据,对初始交易数据进行打包处理,得到待广播至核心共识网络中的待验证区块;初始交易数据是由业务网络中的业务节点发送的;代理节点用于对业务网络和核心共识网络进行网络隔离;结构信息确定模块,用于从核心共识网络中获取第二节点,基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息,得到待验证区块所对应的致密区块的第一结构信息;第一结构信息包括初始交易数据对应的目标交易标识符;目标交易标识符是对初始交易数据进行哈希标识转换后所确定的;结构信息广播模块,用于将第一结构信息广播至第二节点,以使第二节点基于目标交易标识符对待验证区块进行共识。
[0008]
其中,该打包处理模块包括:交易验证单元,用于获取业务网络中的业务节点通过代理节点转发的初始交易数据,对初始交易数据进行交易验证,得到交易验证结果;交易添加单元,用于在交易验证结果指示交易验证成功时,将初始交易数据添加至第一节点的第一交易池,从第一交易池中获取包含初始交易数据的交易数据集,将交易数据集中的交易数据作为待处理交易数据;交易哈希确定单元,用于对待处理交易数据进行交易哈希转换,得到待处理交易数据对应的交易哈希值,且基于交易哈希值确定待处理交易数据对应的默克尔树根;待验证区块生成单元,用于从核心共识网络的目标区块链上,获取具有最大生成时间戳的第一区块,将第一区块的区块哈希值作为第一区块的下一区块的父区块哈希值,基于待处理交易数据、默克尔树根以及父区块哈希值,生成第一区块的下一区块,将生成的第一区块的下一区块作为待写入目标区块链的待验证区块;待验证区块的生成时间戳用于更新目标区块链上的最大生成时间戳。
[0009]
其中,该交易验证单元包括:加密信息获取子单元,用于获取代理节点发送的系统加密数据信息;系统加密数据信息为代理节点通过核心共识网络的系统公钥对初始交易数据和签名信息进行加密处理后所得到的;签名信息为代理节点在获取到业务网络中的业务节点发送的初始交易数据时,通过代理节点的节点私钥对初始交易数据进行签名后所得到的;解密子单元,用于通过系统公钥对应的系统私钥,对系统加密数据信息进行解密处理,得到初始交易数据和签名信息;验签子单元,用于获取代理节点的节点公钥,基于节点公钥对签名信息进行验签,得到
验签结果;交易验证子单元,用于在验签结果指示验签成功时,对初始交易数据进行交易验证,确定初始交易数据的交易验证结果。
[0010]
其中,待验证区块的区块信息中包括待处理交易数据,且初始交易数据为待处理交易数据中的交易数据;该结构信息确定模块包括:列表获取单元,用于获取第一节点在第一时刻时所维护的第一列表和第二列表;第一列表包括在第一时刻时与第一节点具有网络连接关系的节点的第一节点标识;第二列表包括在第一时刻时接入核心共识网络的节点的第二节点标识;节点确定单元,用于基于第一列表中的第一节点标识和第二列表中的第二节点标识,确定第一节点在第二时刻所维护的节点标识列表,从节点标识列表中确定待广播的第二节点;第二时刻为第一时刻的下一时刻;预测交易确定单元,用于获取第二节点从第一时刻至第二时刻的网络切换状态,基于网络切换状态确定第二节点的预测辅助信息,且基于预测辅助信息,从待处理交易数据中确定用于发送至第二节点的预测交易数据;目标交易标识确定单元,用于在待处理交易数据中,将除预测交易数据之外的交易数据作为目标交易数据,基于标识符确定规则,对目标交易数据进行哈希标识转换,得到目标交易数据对应的目标交易标识符;结构信息生成单元,用于基于区块信息中的区块头信息、预测交易数据以及目标交易标识符,生成待验证区块对应的致密区块的第一结构信息。
[0011]
其中,该目标交易标识确定单元包括:目标交易确定子单元,用于在待处理交易数据中,将除预测交易数据之外的交易数据作为目标交易数据;标识规则获取子单元,用于获取包括第一哈希规则和第二哈希规则的标识符确定规则;第一哈希规则不同于第二哈希规则;第一哈希转换子单元,用于基于第一哈希规则,对目标交易数据进行第一哈希转换,得到目标交易数据对应的第一哈希值;第二哈希转换子单元,用于基于第二哈希规则,对第一哈希值进行第二哈希转换,得到目标交易数据对应的第二哈希值,基于第二哈希值以及第二哈希规则所关联的哈希字节数,得到目标交易数据对应的目标交易标识符。
[0012]
其中,核心共识网络中包括第三节点;第三节点为除第一节点和第二节点之外的节点;第三节点用于在接收到待验证区块对应的致密区块的第二结构信息时,对待验证区块进行共识;该装置还包括:共识结果分析模块,用于在接收到第三节点返回的第一共识结果和第二节点返回的第二共识结果时,将第一共识结果和第二共识结果作为目标共识结果,对目标共识结果进行结果分析;区块写入模块,用于若在目标共识结果中确定存在超过共识阈值的目标共识结果指示共识成功,则确定达成对待验证区块的共识,且将待验证区块写入核心共识网络的目标区
块链。
[0013]
本申请实施例一方面提供一种交易数据处理装置,包括:结构信息接收模块,用于接收由核心共识网络中的第一节点发送的待验证区块对应的致密区块的第一结构信息;待验证区块是第一节点对初始交易数据进行打包处理后所得到的;初始交易数据是业务网络中的业务节点通过代理节点所转发的;代理节点用于对业务网络和核心共识网络进行网络隔离;第一结构信息是第一节点基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息所确定的;共识模块,用于从第一结构信息中获取目标交易标识符,基于目标交易标识符对待验证区块进行共识;目标交易标识符是第一节点对初始交易数据进哈希标识转换后所确定的。
[0014]
其中,该结构信息接收模块包括:连接通知发送单元,用于基于致密区块连接模式向核心共识网络中的第一节点发送连接通知,以使第一节点将待验证区块的区块头信息作为待确认区块头信息;连接通知用于指示第一节点与第二节点之间采用致密区块连接模式进行数据传输;区块头查找单元,用于接收第一节点返回的待确认区块头信息,在第二节点的节点内存中查找与待确认区块头信息相匹配的历史区块头信息;区块获取请求发送单元,用于若未查找到与待确认区块头信息相匹配的历史区块头信息,则向第一节点发送的区块获取请求;区块获取请求用于指示第一节点基于致密区块连接模式,确定待验证区块对应的致密区块的第一结构信息;结构信息接收单元,用于接收第一节点发送的第一结构信息。
[0015]
其中,区块信息包括待处理交易数据,且初始交易数据为待处理交易数据中的交易数据;共识模块包括:目标交易标识获取单元,用于从第一结构信息中获取目标交易标识符;目标交易标识符是第一节点基于标识符确定规则,对待处理交易数据中的目标交易数据进行哈希标识转换后所确定的;目标交易数据为待处理交易数据中的除预测交易数据之外的交易数据;预测交易数据为第一节点在待处理交易数据中,基于预测辅助信息所确定的交易数据;本地交易标识确定单元,用于基于标识符确定规则,对第二节点的第二交易池中的本地交易数据进行哈希标识转换,得到本地交易数据对应的本地交易标识符;标识比对单元,用于将本地交易标识符与目标交易标识符进行比对,得到比对结果,基于比对结果,获取用于重构待验证区块的关键交易数据;共识单元,用于基于关键交易数据和第一结构信息,对待验证区块进行共识。
[0016]
其中,该标识比对单元包括:标识比对子单元,用于将本地交易标识符与目标交易标识符进行比对,得到比对结果;交易同步请求生成子单元,用于若比对结果指示目标交易标识符与本地交易标识符不同,则基于目标交易标识符,生成用于发送至第一节点的交易同步请求,以使第一节点基于交易同步请求,在区块信息中的待处理交易数据中,获取目标交易标识符对应的目标交易数据;关键交易确定子单元,用于在接收到第一节点所返回的目标交易数据时,将目标交易
数据作为用于重构待验证区块的关键交易数据。
[0017]
其中,第一结构信息包括待验证区块的区块头信息和预测交易数据;该共识单元包括:重构子单元,用于基于关键交易数据、区块头信息以及预测交易数据,重构得到待验证区块;待比较树根确定子单元,用于获取与关键交易数据相关联的默克尔路径,获取关键交易数据对应的关键交易哈希值以及默克尔路径中的路径哈希值,确定待验证区块的待比较树根;共识子单元,用于将区块头信息中的默克尔树根与待比较树根进行比较处理,根据比较结果对待验证区块进行共识。
[0018]
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
[0019]
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
[0020]
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
[0021]
在本申请实施例中,代理节点能够对区块链网络中的业务网络与核心共识网络进行网络隔离。业务网络中的业务节点在将初始交易数据(即业务节点执行交易业务所生成的交易数据)广播至共识节点,以使核心共识网络中的第一节点(即共识节点)打包出块的过程中,需要通过代理节点将初始交易数据统一广播至核心共识网络,而无需像传统区块链部署方式一样,通过业务节点无差别地广播至区块链网络中的所有区块链节点,从而可以有效减少交易数据在核心共识网络内部的频繁广播。此外,在第一节点对初始交易数据进行打包处理,得到待验证区块之后,该第一节点可以基于预测到的第二节点的预测辅助信息(用于预测发送至第二节点的完整交易数据),以及待验证区块的区块信息,生成该待验证区块对应的致密区块的结构信息(即第一结构信息),进而可以直接将该第一结构信息发送至第二节点,以使第二节点可以基于第一结构信息中的目标交易标识符对待验证区块进行共识。其中,这里的目标交易标识符是第一节点对待验证区块中的交易数据(例如,初始交易数据)进行哈希标识转换后所确定的。可以理解的是,第一节点在共识待验证区块时,第一结构信息中包括的是用于表示交易数据的目标交易标识符,而非完整的交易数据,因此本申请实施例可以减少数据传输时的数据流量,从而可以提高共识性能。
附图说明
[0022]
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0023]
图1是本申请实施例提供的一种区块链网络分层结构的示意图;图2是本申请实施例提供的一种进行数据交互的场景示意图;图3是本申请实施例提供的一种交易数据处理方法的流程示意图;图4是本申请实施例提供的一种获取初始交易数据的场景示意图;图5是本申请实施例提供的一种生成待验证区块的场景示意图;图6是本申请实施例提供的一种获取关键交易数据的场景示意图;图7是本申请实施例提供的一种交易数据处理方法的流程示意图;图8是本申请实施例提供的一种确定第一结构信息的流程示意图;图9是本申请实施例提供的一种区块链电子票据场景下的系统架构图;图10是本申请实施例提供的一种交易数据处理装置的结构示意图;图11是本申请实施例提供的一种交易数据处理装置的结构示意图;图12是本申请实施例提供的一种计算机设备的示意图;图13是本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
[0024]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0025]
请参见图1,图1是本申请实施例提供的一种区块链网络分层结构的示意图。图1所示的区块链网络分层结构可以应用于区块链系统,该区块链系统可以包括代理节点(例如,代理节点10)、第一区块链系统以及第二区块链系统。其中,第一区块链系统和第二区块链系统均可以包括一个或者多个节点,这里将不对节点的数量进行限制。如图1所示,第一区块链系统具体可以包括节点110a、节点110b、节点110c、

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

、节点120n。
[0026]
其中,第一区块链系统对应的区块链网络可以称之为业务网络(即见证网络),处于业务网络中的节点可以称之为业务节点,该业务节点主要用于执行交易业务,以得到与该交易业务相关联的交易数据。可以理解的是,这里的业务节点不需要参与记账共识,但能够通过身份认证的方式从核心共识网络中获得区块头数据和部分授权可见的区块数据。第二区块链系统对应的区块链网络可以为称之为核心共识网络。处于该核心共识网络中的节点可以称之为共识节点(即记账节点),该共识节点可以运行有区块链共识协议。图1所示的代理节点可以用于对该业务网络和核心共识网络进行网络隔离,该代理节点10可以是独立的一个物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,在此不做限定。该代理节点10可以将点对点(peer to peer,简称p2p)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构,进而能够提高区块链上数据的保密性和安全性。
[0027]
其中,本申请实施例可以将代理节点、业务节点以及共识节点可以统称为区块链
网络中的区块链节点。可以理解的是,该区块链节点可以为接入该区块链网络中的服务器,也可以为接入该区块链网络中的用户终端,这里对区块链节点的具体形式不做限定。
[0028]
可以理解的是,图1所示的区块链网络(例如,比特币网络或者以太坊网络)中的节点主要有四大功能:钱包、挖矿、区块链数据库、网络路由。每个节点都会具备路由功能,但是其他功能并不一定全部具备,一般比特币核心节点会包含四种功能。这样的核心节点可以参与校验、广播交易数据与待验证区块的区块信息,且会发现和维持与其他节点的连接。该核心节点会包含完整的区块链数据库,包括所有交易数据,这种包含所有功能的节点也称为全节点(例如,图1所示的共识节点)。另外一些节点只存储了区块链数据库的一部分,一般只存储区块头和与自身节点相关联的交易数据,而不存储完整交易数据。它们会通过“简化交易验证(simplified payment verification,简称spv)”的方式完成交易校验,这样的节点可以称为轻节点(lightweight node)或spv节点(例如,图1所示的业务节点)。
[0029]
用户可以通过这些轻节点钱包查看自己的账户余额、管理钱包地址和私钥、发起交易等。挖矿节点可以通过解决工作量证明(pow)算法问题,与其他挖矿节点相互竞争创建新区块。有些挖矿节点同时也是全节点,即也存储了完整的区块链数据库,这种节点一般都是独立矿工(solo miner)。还有一些挖矿节点不是独立挖矿的,而是和其他节点一起连接到矿池,参与集体挖矿,这种节点一般也称为矿池矿工(pool miner)。这会形成一个局部的集中式矿池网络,中心节点是一个矿池服务器,其他挖矿节点全部连接到矿池服务器。矿池矿工和矿池服务器之间的通信也不是采用标准的比特币协议,而是使用矿池挖矿协议,而矿池服务器作为一个全节点,在与其他比特币节点进行通信时可以使用主网络的比特币协议。另外,矿工创建新的区块后,还需要广播给图1所示的核心共识网络中的共识节点,当核心共识网络接收了该区块后,给矿工的奖励才算是有效的,此后才会开始进行下一个区块哈希的计算。
[0030]
可以理解的是,图1所示的业务网络和核心共识网络可以处于不同的网络环境,例如,通常来说,业务节点部署在处于公网的业务网络中,而运行区块链共识协议的记账节点则部署在私有的共识网络中,二者可以通过路由边界进行交互。因此采用“业务网络—核心共识网络”这样的分层结构,使得核心共识网络中的共识节点更加安全,进而可以通过有效的机制,减少交易数据在核心共识网络内部的频繁广播,从而提高整体的共识性能。
[0031]
为便于理解,本申请实施例可以在图1所示的业务网络中的多个节点中选择一个节点作为用于向代理节点10发送初始交易数据的目标业务节点。例如,本申请实施例可以将图1所示的业务节点110a作为目标业务节点。此外,在图1所示的核心共识网络中,本申请实施例可以将用于对初始交易数据进行打包处理的共识节点作为第一节点,该第一节点可以向核心共识网络中的其他共识节点广播待验证区块,且本申请实施例可以将用于对待验证区块进行共识的共识节点作为第二节点,将核心共识网络中的除第一节点和第二节点之外的共识节点作为第三节点。例如,该第一节点可以为图1所示的核心共识网络中的节点120a,该第二节点可以为图1所示的核心共识网络中的节点120b。该第三节点可以为核心共识网络中的除节点120a和节点120b之外的其他节点。
[0032]
可以理解的是,本申请实施例中的代理节点10可以将业务网络中的业务节点发送的初始交易数据统一广播至核心共识网络,而无需像普遍区块链部署方式一样,通过业务节点频繁广播至区块链网络中的所有区块链节点,从而可以有效减少交易数据在核心共识
网络内部的频繁广播。此外,第一节点在将打包得到的待验证区块广播至核心共识网络的过程中,可以传输该待验证区块对应的致密区块的结构信息(例如,第一结构信息),以使该核心共识网络中的第二节点基于该第一结构信息中的目标交易标识符,对待验证区块进行共识。其中,该目标交易标识符(即缩短交易标识符,txids)可以为用于表示交易数据的短交易标识(例如,具有6个字节的短交易id)。由此可知,由于第一节点传输的是目标交易标识符,而非完整的交易数据,从而可以有效减少数据传输时的数据流量,以提高共识性能。
[0033]
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的代理节点20b可以用于对业务网络和核心共识网络进行网络隔离,该代理节点20b可以为上述图1所示的代理节点10。本申请实施例中的共识节点20c可以为用于对初始交易数据进行打包处理的共识节点(即第一节点),该共识节点20c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。本申请实施例中的共识节点20d可以为该第一节点在核心共识网络中所选取的待广播共识节点(即第二节点),例如,该共识节点20d可以为上述图1所示的核心共识网络中的节点120b。
[0034]
应该理解,业务网络中的业务节点可以执行交易业务,以根据交易业务的交易执行结果得到初始交易数据,进而可以将该初始交易数据发送至代理节点20b。例如,这里的交易业务可以为资产转移业务,其中,资产转移业务是指转移比特币、以太坊、游戏金币、游戏钻石或者电子票据等虚拟资产。
[0035]
代理节点20b在接收到初始交易数据时,可以将该初始交易数据广播至核心共识网络,以使该核心共识网络中的共识节点20c对初始交易数据进行交易验证,得到交易验证结果。在交易验证结果指示交易验证成功时,该共识节点20c可以将该初始交易数据添加至该共识节点20c的交易池(即第一交易池)。可以理解的是,该共识节点20c可以在第一交易池中,获取包括初始交易数据的交易数据集,进而可以对获取到的交易数据集中的交易数据进行打包处理,从而可以得到待广播至核心共识网络中的待验证区块(例如,待验证区块200x)。
[0036]
为了有效减少交易数据在核心共识网络中的频繁广播以及数据传输时的数据流量,该共识节点20c与待广播的共识节点20d可以采用致密区块(compact block)连接模式,因此,在共识待验证区块的过程中,共识节点20c可以向共识节点20d传输待验证区块200x对应的致密区块的结构信息,以使共识节点20d对待验证区块的共识。可以理解的是,该共识节点20c可以从核心共识网络中获取待广播的共识节点20d,进而可以确定该共识节点20d的预测辅助信息。其中,这里的预测辅助信息可以用于预测发送至该共识节点20d的完整交易数据,例如,这里的预测辅助信息可以包括共识节点20d的网络切换状态。若共识节点20d在某一时刻(例如,t1时刻)与共识节点20c进行网络连接,在t1时刻的下一时刻(例如,t2时刻,即第一时刻)因断电或者断网等原因掉线,导致与共识节点20c连接失败,而在t2的下一时刻(例如,t3时刻,即第二时刻)又重新与该共识节点20c进行网络连接,那么,该共识节点20c可以确定共识节点20d的网络切换状态为重新接入状态,以便于后续预测用于发送至该共识节点20a的预测交易数据。
[0037]
与此同时,该共识节点20c还可以获取待验证区块200x的区块信息。这里的区块信息可以包括该待验证区块200x的区块头信息和区块主体。其中,区块头信息可以包括该待验证区块200x的父区块哈希值、区块高度、版本号、时间戳、难度值、随机数以及默克尔树根
等信息。该区块主体可以包括打包至待验证区块200x的交易数据集中的交易数据(即待处理交易数据)以及由该待处理交易数据的交易哈希值所构成的默克尔路径。这里的待处理交易数据可以包括创币交易数据、初始交易数据以及其他业务节点发送的完整交易数据等。
[0038]
进一步地,该共识节点20c可以基于预测到的共识节点20d预测辅助信息以及待验证区块的区块信息,得到待验证区块200x对应的致密区块的结构信息(例如,图2所示的结构信息200y,即第一结构信息)。该结构信息200y中可以包括待验证区块200x的区块头信息、目标交易标识符以及预测交易数据。其中,在待验证区块的待处理交易数据中,本申请实施例可以将基于预测辅助信息所确定的用于发送至共识节点20d的交易数据称之为预测交易数据,将除预测交易数据之外的交易数据称之为目标交易数据。例如,该预测交易数据可以包括:待验证区块中的第一笔交易(称为创币交易或者coinbase交易)、共识节点20c在共识节点20d掉线(例如,t2时刻至t3时刻)时所接收的由代理节点20b所转发的交易数据。这里的目标交易标识符是指对目标交易数据进行哈希标识转换后所确定的,该目标交易标识符可以为较短字节(例如,6个字节)的哈希值,进而能够有效减少数据传输时的流量数据,使得接收到目标交易标识符的共识节点20d能够减少数据处理压力,从而可以有效防止拒绝式服务攻击。
[0039]
进一步地,该共识节点20c可以将结构信息200y广播至共识节点20d。该共识节点20d可以基于结构信息200y中的目标交易标识符,确定用于重构待验证区块200x的关键交易数据,进而可以基于关键交易数据和结构信息200y,重构得到待验证区块200x,并对待验证区块200x进行共识。
[0040]
应当理解,本申请实施例可以在“业务网络—核心共识网络”这一分层区块链结构下,通过代理节点20b可以将业务网络中的业务节点发送的初始交易数据统一广播至核心共识网络,而无需像普遍区块链部署方式一样,广播至区块链网络中的所有区块链节点。与此同时,共识节点20c在对初始交易数据进行打包处理,并得到待验证区块200x后,需要在核心共识网络中对待验证区块200x进行共识,而无需在整个区块链网络中进行共识,从而能够有效减少交易数据在核心共识网络的频繁广播。此外,共识节点20c在将待验证区块200x广播至共识节点20d的过程中,并非直接广播待验证区块200x,而是通过传输该待验证区块200x对应的致密区块的结构信息200y,以使该共识节点20d可以基于结构信息200y中的目标交易标识符,对待验证区块200x进行共识。由于结构信息200y中包括的是用于表示目标交易数据的目标交易标识符,而非完整的目标交易数据,从而可以有效减少数据传输时的数据流量,降低网络风暴,以提高共识性能。
[0041]
其中,本申请实施例所涉及的交易数据处理方法可以基于双层区块链模式,将p2p网络进行网络分层,以使p2p网络形成“业务网络—核心共识网络”这样的分层区块链结构。用于对业务网络和核心共识网络进行网络隔离的代理节点,可以获取业务网络中的业务节点所发送的初始交易数据,并将该初始交易数据发送至核心共识网络中的第一节点,以使第一节点对初始交易数据进行打包处理,以得到待验证区块,进而第一节点在广播待验证区块时,可以基于致密区块连接模式向第二节点传输待验证区块对应的致密区块的结构信息,以使第二节点基于结构信息中的目标交易标识符对待验证区块进行共识的具体实现方式可以参见下述图3-图9所对应的实施例。
[0042]
进一步地,请参见图3,图3是本申请实施例提供的一种交易数据处理方法的流程示意图。如图3所示,该方法可以由核心共识网络中的第一节点执行,该第一节点可以为接入至核心共识网络中的服务器,也可以为接入至该核心共识网络中的用户终端,这里对第一节点的具体形式不做限定。该第一节点可以为上述图1所示的核心共识网络中的任意一个共识节点,例如,节点120a。该方法至少可以包括以下步骤s101-步骤s103:步骤s101,获取代理节点转发的初始交易数据,对初始交易数据进行打包处理,得到待广播至核心共识网络中的待验证区块。
[0043]
具体地,第一节点可以获取业务网络中的业务节点通过代理节点转发的初始交易数据,对初始交易数据进行交易验证,以得到交易验证结果。在交易验证结果指示交易验证成功时,第一节点可以将初始交易数据添加至该第一节点的第一交易池,并能够从第一交易池中获取包含初始交易数据的交易数据集,且将交易数据集中的交易数据作为待处理交易数据。进一步地,第一节点可以对待处理交易数据进行交易哈希转换,得到待处理交易数据对应的交易哈希值,且基于交易哈希值确定待处理交易数据对应的默克尔树根。与此同时,该第一节点可以从核心共识网络的目标区块链上,获取具有最大生成时间戳的第一区块,并可以将第一区块的区块哈希值作为第一区块的下一区块的父区块哈希值。应当理解,第一节点可以基于待处理交易数据、默克尔树根以及父区块哈希值,生成第一区块的下一区块,并将生成的第一区块的下一区块作为待写入目标区块链的待验证区块。这里的待验证区块的生成时间戳可以用于更新目标区块链上的最大生成时间戳。
[0044]
应当理解,处于业务网络中的业务节点可以执行交易业务,以根据交易业务的交易执行结果得到初始交易数据。进一步地,该业务节点可以将初始交易数据发送至代理节点,以使代理节点对业务节点进行权限验证,从而可以得到权限验证结果。这里的权限验证可以包括验证业务节点的节点标识信息是否属于非法节点列表中的节点标识、初始交易数据的交易格式是否有误等。可以理解的是,这里的非法节点列表可以是指代理节点所存储的黑名单列表,该非法节点列表中的非法节点标识所对应的非法节点可以包括检测到的恶意节点、被他人举报的节点,在某一时间段发送交易频率异常的节点等。
[0045]
其中,可以理解的是,代理节点在接收到业务节点发送的初始交易数据时,可以在该非法节点列表中查找该业务节点的节点标识信息,以得到权限验证结果。若权限验证结果指示在非法节点列表中查找到与节点标识信息相同的非法节点标识,则代理节点可以确定该权限验证结果属于非法验证结果,此时,该代理节点可以确定该业务节点为非法节点,进而无需将初始交易数据广播至核心共识网络。若权限验证结果指示在非法节点列表中未查找到与节点标识信息相同的非法节点标识,则代理节点可以确定该权限验证结果属于合法验证结果。此时,该代理节点可以确定该业务节点为合法节点,进而可以将该初始交易数据广播至核心共识网络。
[0046]
其中,可以理解的是,该代理节点可以通过代理节点的节点私钥对初始交易数据进行签名,得到该初始交易数据对应的签名信息。进一步地,该代理节点可以获取核心共识网络的系统公钥,对初始交易数据和签名信息进行加密处理,以得到系统加密数据信息。此时,该代理节点可以将系统加密数据信息发送至核心共识网络中的第一节点。第一节点在接收到系统加密数据信息时,可以通过系统公钥对应的系统私钥,对该系统加密数据信息进行解密处理,进而可以得到初始交易数据和签名信息。进一步地,该第一节点可以获取代
理节点的节点公钥,基于该节点公钥,对签名信息进行验签,以得到验签结果。在验签结果指示验签成功时,该第一节点可以对初始交易数据进行交易验证,确定初始交易数据的交易验证结果。这里的交易验证可以包括余额验证、双重支付判断等。
[0047]
例如,在电子票据场景下,该初始交易数据可以为业务节点a向业务节点b转移一张电子票据。此时,该第一节点需要在核心共识网络中的目标区块链中查找该电子票据的历史交易信息,如,判断业务节点a的账户是否存在这一张电子票据、业务节点a和业务节点b的账户是否有误、业务节点a所拥有的这张电子票据的来源等等。
[0048]
在交易验证结果指示交易验证失败时,该第一节点可以确定该初始交易数据为非法交易数据,进而可以向该业务节点发送上链失败通知,以通知业务节点该初始交易数据未能成功写入目标区块链。在交易验证结果指示交易验证成功时,第一节点可以将该初始交易数据添加至该第一节点的交易池(即第一交易池),以便后续进行打包处理得到待验证区块。
[0049]
为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种获取初始交易数据的场景示意图。如图4所示,本申请实施例中的业务节点40a可以为用于执行交易业务的节点,该业务节点40a可以为上述图1所示的业务网络中的任意一个业务节点,例如,节点110a。本申请实施例中的共识节点40c可以为用于进行打包处理的第一节点,该共识节点40c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。本申请实施例中的代理节点40b可以用于对该业务网络和该核心共识网络进行网络隔离,该代理节点40b可以为上述图1所示的代理节点10。
[0050]
应当理解,本申请实施例中的业务节点40a可以将执行交易业务时所生成的初始交易数据(例如,图4所示的交易数据4)发送至图4所示的代理节点40b,以使代理节点40b将该交易数据4广播至核心共识网络。可以理解的是,由于业务网络一般处于公共网络中,可以能会被其他不确定的网络终端访问,而核心共识网络处于相对安全的私有云中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制。因此,在代理节点40b将交易数据4广播至核心共识网络的过程中,需要被严格控制。换言之,该代理节点40b在确定权限验证结果为合法验证结果时,可以基于代理节点40b的节点私钥对交易数据4进行签名,得到该交易数据4对应的签名信息。可以理解的是,代理节点40b可以对交易数据4进行哈希计算,从而可以得到交易数据4的摘要信息h,并基于代理节点40b的节点私钥对该摘要信息h进行数字签名,得到该交易数据4对应的签名信息。
[0051]
进一步地,该代理节点40b可以获取核心共识网络的系统公钥,对交易数据4和签名信息进行加密处理,以得到系统加密数据信息。此时,该代理节点40b可以将系统加密数据信息发送至核心共识网络中的共识节点40c。
[0052]
共识节点40c在接收到系统加密数据信息时,可以通过系统公钥对应的系统私钥(即核心共识网络的系统私钥),对该系统加密数据信息进行解密处理,进而可以得到交易数据4和签名信息。进一步地,该共识节点40c可以获取代理节点40b的节点公钥,基于该节点公钥,对签名信息进行验签,以得到验签结果。其中,可以理解的是,共识节点40c可以基于代理节点40b的节点公钥对该签名信息中的数字签名进行验签,得到交易数据4的摘要信息h,并利用与该代理节点40b相同的哈希算法对该交易数据4进行哈希计算,从而可以得到该交易数据4的摘要信息h。进一步地,共识节点40c可以将验签后所得到的摘要信息h与进
行哈希计算得到的摘要信息h进行比对,得到验签结果。若该验签结果指示摘要信息h与摘要信息h不相同,则可以理解为共识节点40c验签失败。若该验签结果指示摘要信息h与摘要信息h相同,则可以理解为共识节点40c验签成功,从而可以得到交易数据4。
[0053]
此时,该共识节点40c可以对交易数据4进行交易验证,确定交易数据4的交易验证结果。在交易验证结果指示交易验证失败时,该共识节点40c可以确定该交易数据4为非法交易数据,进而可以向该业务节点40a发送交易上链失败的通知消息。在交易验证结果指示交易验证成功时,共识节点40c可以将该交易数据4添加至该共识节点40c的交易池400,以便后续进行打包处理得到待验证区块。
[0054]
进一步地,该第一节点可以从第一交易池中获取包括初始交易数据的交易数据集,进而可以基于交易数据集中的交易数据(即待处理交易数据),生成待广播至核心共识网络中的待验证区块。为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种生成待验证区块的场景示意图。如图5所示,本申请实施例中的共识节点50c可以为核心共识网络中的第一节点,该共识节点50c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。
[0055]
应当理解,如图5所示的区块链5可以为上述图1所示的核心共识网络中的目标区块链,该区块链5可以为共识节点50c所属核心共识网络中每个共识节点均共享的一条相同的区块链,每个共识节点均可以在区块链5中获取该区块链所存储的信息。其中,该区块链5中包括区块50a、区块50b、

、区块50n,该区块50a可以称之为该区块链5的创世区块。
[0056]
应当理解,图5所示的交易池500(即第一交易池)中可以存储有代理节点所转发的多个交易数据。这多个交易数据具体可以包括交易数据1、交易数据2、交易数据3、

、交易数据m。这里的m为正整数。其中,交易数据2可以为业务网络中的业务节点(例如,图1所示的节点110a)通过代理节点所转发的初始交易数据。
[0057]
可以理解的是,共识节点50c可以从交易池500中获取用于进行打包处理的交易数据集,并将该交易数据集中的交易数据作为待处理交易数据。例如,该交易数据集中的交易数据1、交易数据2、交易数据3以及交易数据4均可以统称为待处理交易数据。进一步地,共识节点50c可以分别对交易数据集中的每个交易数据进行交易哈希转换,以得到对应的交易哈希值。例如,交易数据1的交易哈希值为交易哈希值1(例如,hash1),交易数据2的交易哈希值为交易哈希值2(例如,hash2),交易数据3的交易哈希值为交易哈希值3(例如,hash3),以及交易数据4的交易哈希值为交易哈希值4(例如,hash4)。进一步地,该共识节点50c可以基于交易哈希值1、交易哈希值2、交易哈希值3以及交易哈希值4,确定待处理交易数据对应的默克尔树根。
[0058]
进一步地,共识节点50c可以图5所示的区块链5上,获取具有最大生成时间戳的第一区块(例如,区块50n),进而可以将该区块50n的区块哈希值作为该区块50n的下一区块的父区块哈希值。此时,该共识节点50c可以基于待处理交易数据、默克尔树根以及父区块哈希值,生成区块50n的下一区块,并将生成的第一区块的下一区块作为待写入区块链5的待验证区块。这里的待验证区块的生成时间戳可以用于更新区块链5上的最大生成时间戳。如图5所示,该待验证区块可以包括区块头信息和区块主体。其中,区块头信息中可以包括父区块哈希值、版本号、时间戳、难度值、随机数以及默克尔树根等。区块主体中可以存储有共识节点50c所打包的待处理交易数据、以及由待处理交易数据的交易哈希值所构成的默克
尔路径。
[0059]
步骤s102,从核心共识网络中获取第二节点,基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息,得到待验证区块对应的致密区块的第一结构信息。
[0060]
具体地,第一节点可以获取第一节点在第一时刻时所维护的第一列表和第二列表。其中,这里的第一列表可以包括在第一时刻时与第一节点具有网络连接关系的节点的第一节点标识;这里的第二列表可以包括在第一时刻时接入核心共识网络的节点的第二节点标识。此时,该第一节点可以基于第一列表中的第一节点标识和第二列表中的第二节点标识,确定第一节点在第二时刻所维护的节点标识列表,进而可以从节点标识列表中确定待广播的第二节点。其中,这里的第二时刻可以为第一时刻的下一时刻。进一步地,该第一节点可以获取第二节点从第一时刻至第二时刻的网络切换状态,基于网络切换状态确定第二节点的预测辅助信息,并且可以基于预测辅助信息,从待处理交易数据中确定用于发送至第二节点的预测交易数据。应当理解,在待处理交易数据中,第一节点可以将除预测交易数据之外的交易数据作为目标交易数据,进而可以基于标识符确定规则,对目标交易数据进行哈希标识转换,得到目标交易数据对应的目标交易标识符。此时,该第一节点可以基于区块信息中的区块头信息、预测交易数据以及目标交易标识符,生成待验证区块对应的致密区块的第一结构信息。其中,这里的第一结构信息是指该第一节点基于预测到的第二节点的预测辅助信息所生成的待验证区块对应的致密区块的结构信息。
[0061]
其中,第一节点所生成的待验证区块的区块信息中可以包括:区块头信息和区块主体。其中,区块头信息可以包括该待验证区块的父区块哈希值、区块高度、版本号、时间戳、难度值、随机数以及默克尔树根等信息。该区块主体可以包括打包至待验证区块的待处理交易数据以及由待处理交易数据的交易哈希值所构成的默克尔路径。可以理解的是,创币交易数据、初始交易数据均属于待处理交易数据中的交易数据。其中,创币交易数据是指该待验证区块中的第一笔交易,又称coinbase交易。创币交易数据的交易输入没有utxo,也没有“输入脚本”。这个字段被coinbase数据替代,除开始的几个字节外,矿工(即第一节点)可以任意使用coinbase的其他部分,随意填充任何数据。该创币交易数据的交易输出是由挖矿胜出的矿工构建并将创币奖励和矿工费一起支付给了自己的钱包地址。
[0062]
可以理解的是,核心共识网络中的每个共识节点均可以在节点标识列表中,存储有该核心共识网络中的其他共识节点的节点标识,以便于后续根据该节点标识列表中的节点标识,将生成的待验证区块广播至核心共识网络中的其他共识节点。为便于理解,进一步地,请参见表1,表1是本申请实施例提供的一种节点标识列表。如表1所示,该节点标识列表中可以存储有在第二时刻时,与第一节点具有网络连接关系的节点的节点标识。该节点标识列表是基于第一时刻时所维护的第一列表中的第一节点标识和第二列表中的第二节点标识所确定的。其中,节点标识可为ip(internet protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以ip地址为例进行说明:表1
可以理解的是,本申请实施例中的第一节点可以从节点标识列表中,确定待广播的第二节点(例如,表1所示的共识节点d1)。例如,若共识节点d1在某一时刻(例如,t1时刻)与第一节点进行网络连接,在t1时刻的下一时刻(例如,t2时刻,即第一时刻)因断电或者断网等原因掉线,从而导致与第一节点连接失败,在t2的下一时刻(例如,t3时刻,即第二时刻)又重新与该第一节点进行网络连接,则第一节点可以确定共识节点d1从第一时刻至第二时刻的网络切换状态为重新接入状态。此时,该第一节点可以基于重新接入状态这一网络切换状态确定共识节点d1的预测辅助信息。由于共识节点d1在t2时刻至t3时刻处于掉线状态,因此共识节点d1的交易池(即第二交易池)中可能未接收到代理节点在t2时刻至t3时刻时所广播的交易数据。
[0063]
因此,第一节点在确定第一结构信息的过程中,若待验证区块中的待处理交易数据包括t2时刻至t3时刻所接收到的交易数据,该第一节点需要将这一时间段的完整交易数据以及待处理交易数据中的创币交易数据作为预测交易数据。与此同时,在待处理交易数据中,该第一节点可以将除预测交易数据之外的交易数据作为目标交易数据,进而可以基于标识符确定规则,对目标交易数据进行哈希标识转换,得到目标交易数据对应的目标交易标识符。
[0064]
其中,本申请实施例中的标识符确定规则可以包括第一哈希规则和第二哈希规则。这里的第一哈希规则不同于第二哈希规则。可以理解的是,该第一节点可以基于第一哈希规则,对目标交易数据进行第一哈希转换,得到目标交易数据对应的第一哈希值。进一步地,该第一节点可以基于第二哈希规则,对第一哈希值进行第二哈希转换,得到目标交易数据对应的第二哈希值,基于第二哈希值以及第二哈希规则所关联的哈希字节数(例如,6个字节),得到目标交易数据对应的目标交易标识符。
[0065]
应当理解,第一哈希规则和第二哈希规则均可以为哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,并将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。
[0066]
例如,这里的第一哈希规则可以为sha256,这里的第二哈希规则可以为siphash算法(例如,siphash-2-4)。可以理解的是,第一节点可以使用sha256,在小端字节序(little-endian)中,对附加了随机数的目标交易数据进行第一哈希转换,得到一个256位(相当于32个字节的数组)长的哈希值(即第一哈希值)。进一步地,该第一节点可以使用siphash-2-4,将密钥(k0/k1)分别设置为第一哈希值的前两个小端64位(相当于8个字节的数组)整数,进而可以得到目标交易数据对应的第二哈希值。此时,第一节点可以从第二哈希值中删除2个最高有效字节,使其成为6个字节,并且可以将这6个字节的哈希值作为目标交易数据对应的目标交易标识符。
[0067]
进一步地,该第一节点可以基于区块信息中的区块头信息、预测交易数据以及目标交易标识符,生成用于向共识节点d1发送的待验证区块对应的致密区块的第一结构信息。
[0068]
步骤s103,将第一结构信息广播至第二节点,以使第二节点基于目标交易标识符对待验证区块进行共识。
[0069]
具体地,第一节点可以将第一结构信息广播至第二节点。在第二节点接收到第一结构信息时,可以获取第一结构信息中的目标交易标识符。进一步地,第二节点可以获取标识符确定规则,对第二节点的交易池(即第二交易池)中的本地交易数据进行哈希标识转换,以得到本地交易数据对应的本地交易标识符。此时,第二节点可以将本地交易标识符与目标交易标识符进行比对,得到比对结果,进而可以基于比对结果,获取用于重构待验证区块的关键交易数据。可以理解的是,该第二节点可以基于关键交易数据和第一结构信息,对待验证区块进行共识。
[0070]
应当理解,在第二节点获取用于重构待验证区块的关键交易数据时,第二节点可以将本地交易标识符与目标交易标识符进行比对,以得到比对结果。若比对结果指示目标交易标识符与本地交易标识符相同,则第二节点可以在第二交易池中,将本地交易标识符对应的本地交易数据作为用于重构待验证区块的关键交易数据。可选的,若比对结果指示目标交易标识符与本地交易标识符不同,则第二节点可以基于目标交易标识符,生成用于发送至第一节点的交易同步请求,以使第一节点基于交易同步请求,在区块信息中的待处理交易数据中,获取目标交易标识符对应的目标交易数据。进一步地,在接收到第一节点所返回的目标交易数据时,第二节点可以将目标交易数据作为用于重构待验证区块的关键交易数据。
[0071]
可以理解的是,该第二节点可以基于关键交易数据、第一结构信息中包括的区块头信息和预测交易数据,重构得到待验证区块。该第二节点还可以基于重构得到的待验证区块,获取与关键交易数据相关联的默克尔路径,并获取关键交易数据对应的关键交易哈希值以及默克尔路径中的路径哈希值,以确定待验证区块的待比较树根。进一步地,该第二节点可以将区块头信息中的默克尔树根与待比较树根进行比较处理,根据比较结果对待验证区块进行共识。
[0072]
为便于理解,进一步地,请参见图6,图6是本申请实施例提供的一种获取关键交易数据的场景示意图。如图6所示,本申请实施例中的共识节点60c可以为第一节点,该共识节点60c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。本申请实施例中的共识节点60d可以为待广播的第二节点,该共识节点60d可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120b。
[0073]
其中,图6所示的结构信息600y可以为共识节点60c所生成的待验证区块对应的致密区块的结构信息(即第一结构信息)。这里的待验证区块可以为上述图5所示的待验证区块。可以理解的是,结构信息600y中可以包括图5所示的待验证区块的区块头信息、预测交易数据(例如,图5所示的交易数据1以及交易数据2)以及目标交易标识符(例如,图5所示的交易数据3对应的交易标识符c以及交易数据4对应的交易标识符d)。
[0074]
应当理解,共识节点60c可以将结构信息600y发送至共识节点60d。在共识节点60d接收到结构信息600y时,可以获取结构信息600y中的目标交易标识符。进一步地,共识节点
60d可以获取用于确定目标交易标识符的标识符确定规则,对共识节点60d的交易池600(即第二交易池600)中的本地交易数据进行哈希标识转换,以得到本地交易数据对应的本地交易标识符。
[0075]
如图6所示,交易池600中的本地交易数据可以包括交易数据3和交易数据5。可以理解的是,共识节点60d所确定的本地交易标识符可以包括交易标识符c以及交易标识符e。其中,交易标识符c可以为交易数据3对应的交易标识符,交易标识符e可以为交易数据5对应的交易标识符。可以理解的是,共识节点60d确定本地交易数据对应的本地交易标识符的具体实施方式可以参见上述第一节点确定目标交易数据对应的目标交易标识符的具体实施方式,这里将不再继续进行赘述。
[0076]
其中,共识节点60d可以将目标交易标识符中的交易标识符c与本地交易标识符进行比对,得到比对结果(例如,比对结果1)。其中,比对结果1可以指示目标交易标识符中的交易标识符c与本地交易标识符中的交易标识符c相同,此时,该共识节点60d可以在交易池600中的本地交易数据中,将交易标识符c对应的交易数据3作为用于重构待验证区块的关键交易数据。
[0077]
进一步地,共识节点60d可以将目标交易标识符中的交易标识符d与本地交易标识符进行比对,得到比对结果(例如,比对结果2)。其中,比对结果2可以指示目标交易标识符中的交易标识符d与本地交易标识符中的交易标识符c和交易标识符e均不同,此时,该共识节点60d可以基于交易标识符d生成用于发送至共识节点60c的交易同步请求。共识节点60c在接收到交易同步请求时,可以在区块信息所包括的待处理交易数据中,获取交易标识符d对应的交易数据4,并将交易数据4发送至共识节点60d。进一步地,共识节点60d在接收到交易数据4时,可以将接收到的交易数据4作为用于重构待验证区块的关键交易数据。
[0078]
应当理解,该共识节点60d可以基于关键交易数据、结构信息600y中的区块头信息和预测交易数据,重构得到待验证区块。进一步地,共识节点60d可以从待验证区块中获取与关键交易数据相关联的默克尔路径,进而可以获取默克尔路径中的路径哈希值。例如,该共识节点60d重构得到的待验证区块可以为上述图5所示的待验证区块,即该第二节点所获取的默克尔路径中的路径哈希值可以为hash12、hash1234。
[0079]
进一步地,共识节点60d可以对关键交易数据(例如,交易池600中的交易数据3和共识节点60c所发送的交易数据4)进行交易哈希转换,得到关键交易数据对应的关键交易哈希值,确定待验证区块的待比较树根。此时,该共识节点60d可以将区块头信息中的默克尔树根与待比较树根进行比较处理,根据比较结果对待验证区块进行共识,以得到共识结果。可以理解的是,在默克尔树根与待比较树根不一致时,本申请实施例可以认为该共识节点60d的共识结果指示共识失败。可选的,在默克尔树根与待比较数据一致时,本申请实施例可以认为共识节点60d的共识结果指示共识成功。
[0080]
在本申请实施例中,代理节点能够对区块链网络中的业务网络与核心共识网络进行网络隔离。业务网络中的业务节点在将生成的初始交易数据广播至共识节点,以使核心共识网络中的第一节点(即共识节点)打包出块的过程中,需要通过代理节点将初始交易数据统一广播至核心共识网络,而无需像传统区块链部署方式一样,通过业务节点频繁广播至区块链网络中的所有区块链节点,从而可以有效减少交易数据在核心共识网络内部的频繁广播。可以理解的是,由于初始交易数据不需要在业务网络中进行广播,进而可以保证初
始交易数据的安全性和私密性。此外,在第一节点对初始交易数据进行打包处理,得到待验证区块之后,该第一节点可以基于待广播的第二节点的预测辅助信息(用于预测发送至第二节点的完整交易数据),以及待验证区块的区块信息,生成该待验证区块对应的致密区块的结构信息(即第一结构信息),进而可以直接将该第一结构信息发送至第二节点,以使第二节点可以基于第一结构信息中的目标交易标识符对待验证区块进行共识。其中,这里的目标交易标识符是第一节点对待验证区块中的交易数据(例如,初始交易数据)进行哈希标识转换后所确定的。可以理解的是,第一节点在共识待验证区块时,第一结构信息中包括的是用于表示完整交易数据的目标交易标识符,而非完整的交易数据,因此本申请实施例可以减少数据传输时的数据流量,提高共识性能。
[0081]
进一步地,请参见图7,图7是本申请实施例提供的一种交易数据处理方法的流程示意图。如图7所示,该方法可以由业务网络中的业务节点、代理节点、核心共识网络中的第一节点以及第二节点共同执行。该业务节点可以为上述图1所示的业务网络中的任意一个共识节点,例如,节点110a。代理节点可以为上述图1所示的代理节点10。该第一节点可以为上述图1所示的核心共识网络中的任意一个共识节点,例如,节点120a。该第二节点可以为上述图1所示的核心共识网络中的待广播的一个共识节点,例如,节点120b。该方法至少可以包括以下步骤s201-步骤s206:步骤s201,业务节点向代理节点发送初始交易数据;步骤s202,代理节点向第一节点转发初始交易数据;步骤s203,第一节点在获取到代理节点所转发的初始交易数据时,对初始交易数据进行打包处理,得到待广播至核心共识网络中的待验证区块;步骤s204,第一节点从核心共识网络中获取第二节点,基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息,得到待验证区块对应的致密区块的第一结构信息。
[0082]
具体地,第二节点可以基于致密区块连接模式,向核心共识网络中的第一节点发送连接通知,以使第一节点将待验证区块的区块头信息作为待确认区块头信息。其中,这里的连接通知可以用于指示第一节点与第二节点之间采用致密区块连接模式进行数据传输。进一步地,第一节点在接收到该连接通知时,可以将待验证区块的区块头信息作为待确认区块头信息,并将该待确认区块头信息发送至第二节点,以使第二节点在第二节点的节点内存中查找与该待确认区块头信息相匹配的历史区块头信息。应当理解,若该第二节点未查找到与待确认区块头信息相匹配的历史区块头信息,则第二节点可以向第一节点发送的区块获取请求。在第一节点接收到该区块获取请求时,第一节点可以基于致密区块连接模式,确定待验证区块对应的致密区块的第一结构信息,进而可以将该第一结构信息发送至该第二节点,以使第二节点基于第一结构信息中的目标交易标识符对待验证区块进行共识。
[0083]
为便于理解,进一步地,请参见图8,图8是本申请实施例提供的一种确定第一结构信息的流程示意图。如图8所示,本申请实施例中的共识节点80c可以为第一节点,该共识节点80c可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120a。本申请实施例中的共识节点80d可以为待广播的第二节点,该共识节点80d可以为上述图1所示的核心共识网络中的任意一个节点,例如,节点120b。
[0084]
如图8所示,共识节点80d可以执行步骤s81,基于致密区块连接模式,向核心共识
网络中的共识节点80c发送连接通知。其中,这里的连接通知可以用于指示共识节点80c与共识节点80d之间采用致密区块连接模式进行数据传输。共识节点80c在接收到连接通知时,可以执行步骤s82,将待验证区块的区块头信息作为待确认区块头信息,进而可以执行步骤s83,将待确认区块头信息发送至共识节点80d,以使共识节点80d确认节点内存中是否存在该待确认区块头信息,以有效避免该待验证区块对应的致密区块的结构信息被重复传递。
[0085]
进一步地,共识节点80d在接收到待确认区块头信息时,可以执行步骤s84,以在共识节点80d的节点内存中,查找与该待确认区块头信息相匹配的历史区块头信息,以得到查找结果。这里的历史区块头信息可以是指由核心共识网络中的其他共识节点所广播的区块头信息。应当理解,若该共识节点80d在节点内存中查找到与待确认区块头信息相匹配的历史区块头信息,则可以视为核心共识网络中的其他共识节点已经向该共识节点80d广播过待验证区块对应的致密区块的结构信息,以使该共识节点80d对待验证区块进行共识,此时,该共识节点80c无需将该待验证区块对应的致密区块的结构信息发送至共识节点80d,以有效避免共识节点80d对待验证区块的频繁共识,进而可以提高整体的共识性能。可选的,若该共识节点80d未查找到与待确认区块头信息相匹配的历史区块头信息,则视为该共识节点80d未对待验证区块进行共识,此时,共识节点80d可以执行步骤s84,生成用于获取第一结构信息的区块获取请求。
[0086]
进一步地,共识节点80d可以执行步骤s85,向共识节点80c发送区块获取请求。在共识节点80c接收到该区块获取请求时,该共识节点可以执行步骤s86,基于致密区块连接模式,确定待验证区块对应的致密区块的第一结构信息。
[0087]
步骤s205,第一节点将第一结构信息广播至第二节点;步骤s206,第二节点从第一结构信息中获取目标交易标识符,基于目标交易标识符对待验证区块进行共识。
[0088]
其中,该步骤s201-步骤s206的具体实施方式可参见上述图3所对应实施例中对步骤s101-步骤s103的描述,这里将不再赘述。
[0089]
应当理解,在核心共识网络中,本申请实施例可以将除第一节点和第二节点之外的节点称之为第三节点。该第三节点可以用于在接收到待验证区块对应的致密区块的第二结构信息时,对待验证区块进行共识。这里的第二结构信息是指该第一节点基于第三节点的预测辅助信息所生成的待验证区块对应的致密区块的结构信息。其中,第三节点对待验证区块进行共识的具体实施方式可以参见上述第二节点对待验证区块进行共识的具体实施方式,这里将不再继续进行赘述。
[0090]
可以理解的是,本申请实施例可以将第三节点所返回的共识结果称之为第一共识结果,将第二结果所返回的共识节点称之为第二共识结果。在第一节点接收到第三节点返回的第一共识结果和第二节点返回的第二共识结果时,可以将第一共识结果和第二共识结果作为目标共识结果,并对目标共识结果进行结果分析。若在目标共识结果中确定存在超过共识阈值(例如,1/2)的目标共识结果指示共识成功,则第一节点可以确定达成对待验证区块的共识,且将待验证区块写入核心共识网络的目标区块链。
[0091]
如上述图5所示,共识节点50c(即第一节点)在确定达成对待验证区块的共识时,可以将该待验证区块写入区块链5中,也就是将业务网络中的业务节点所生成的初始交易
数据成功写入至该共识节点50c所对应的核心共识网络中的区块链5。
[0092]
为便于理解,进一步地,请参见图9,图9是本申请实施例提供的一种区块链电子票据场景下的系统架构图。如图9所示,本申请实施例中的业务层、路由代理层以及核心共识网络层组成了整个完整区块链业务体系。图9所示的核心链1、核心链2、

以及核心链n分别为不同区域的税局所维护的目标区块链。例如,本申请实施例中的交易业务可以以电子票据转移业务为例,在此不做限定。
[0093]
可以理解的是,当区块链被用于政府(例如,税务系统)或者商业机构的一些场景中,为了提高数据的保密性和安全性,在区块链体系中涉及个人隐私或者国家安全等相关数据时,可以采用本申请实施例中的“业务网络—核心共识网络”这一分层区块链结构。
[0094]
其中,业务层处于见证网络中,该业务层中的业务节点可以包括电子税局对应的终端设备、企业用户对应的终端设备以及消费用户对应的终端设备。其中,电子税局可以是指税局专网中的地方税局,企业用户可以为公有云中的开票服务商、报销服务商或者零售企业(例如,ka企业,即大型零售客户和重点零售客户企业)等,消费用户可以为私有云中的支付服务商、流转服务商或者零售企业等。例如,某业务节点(例如,消费用户对应的终端设备a)所执行的票据转移业务可以为:将消费用户在购买器材时所获得的电子票据(例如,电子票据x)转移至该消费用户所在企业对应的终端设备b。
[0095]
其中,路由代理层中的代理节点可以用于对业务层和核心共识网络层进行网络隔离,代理节点可以具有点对点服务(即p2p服务)、路由服务、证书缓存、认证服务。可以理解的是,点对点服务是指在p2p网络中的服务,基于一类特定的网络协议,p2p网络中的网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻节点连接状态。路由服务是节点的基本功能,可以用于节点之间的通信。证书缓存中证书,可以指公钥证书体系(pki,public key infrastructure),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构进行颁发(ca)。基于公钥证书体系可以实现非对称加密和对于信息的数字签名。这里的公钥证书体系可以包括公私钥密码,x509证书,ca证书签发中心等等。认证服务可以用于验证接收到的信息(例如,业务节点发送的初始交易数据)的交易格式、节点合法性等。可以理解的是,在本申请实施例中,该代理节点可以将业务层中的业务节点所发送的初始交易数据转发至核心共识网络层。其中,在转发过程中,该代理节点可以对业务节点的合法性进行确认,在确认业务节点为合法节点时,对初始交易数据进行交易格式验证,进而在确认交易格式无误时,可以对初始交易数据进行签名得到签名信息,并对初始交易数据和签名信息进行加密处理,得到系统加密数据信息,以发送至核心共识网络层。
[0096]
其中,核心共识网络层中的共识节点(即记账节点)可以为税务专网中的可信节点,可以通过调用权限合约(例如,智能合约),对代理节点转发的初始交易数据以及待验证区块进行共识。可以理解的是,每个共识节点均可以接收由代理节点所转发的初始交易数据,且对该初始交易数据进行交易验证,在交易验证结果指示交易验证成功时,可以将初始交易数据存储至交易池(即图9所示的缓存)中。本申请实施例可以将添加至交易池中的交易数据称之为本地交易数据。此外,每个共识节点均具有打包出块的能力,即共识节点能够从自己交易池的本地交易数据中,选取待处理交易数据进行打包处理,以得到待广播至核心共识网络层的待验证区块。
[0097]
进一步地,请参见图10,图10是本申请实施例提供的一种交易数据处理装置的结构示意图。该交易数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该交易数据处理装置1为一个应用软件;该交易数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该交易数据处理装置1可以运行于核心共识网络中的第一节点,该第一节点可以为上述图2所对应实施例中的共识节点20c。该交易数据处理装置1可以包括:打包处理模块10,结构信息确定模块20,结构信息广播模块30,共识结果分析模块40以及区块写入模块50。
[0098]
该打包处理模块10,用于获取代理节点转发的初始交易数据,对初始交易数据进行打包处理,得到待广播至核心共识网络中的待验证区块;初始交易数据是由业务网络中的业务节点发送的;代理节点用于对业务网络和核心共识网络进行网络隔离。
[0099]
其中,该打包处理模块10包括:交易验证单元101,交易添加单元102,交易哈希确定单元103以及待验证区块生成单元104。
[0100]
该交易验证单元101,用于获取业务网络中的业务节点通过代理节点转发的初始交易数据,对初始交易数据进行交易验证,得到交易验证结果。
[0101]
其中,该交易验证单元101包括:加密信息获取子单元1011,解密子单元1012,验签子单元1013以及交易验证子单元1014。
[0102]
该加密信息获取子单元1011,用于获取代理节点发送的系统加密数据信息;系统加密数据信息为代理节点通过核心共识网络的系统公钥对初始交易数据和签名信息进行加密处理后所得到的;签名信息为代理节点在获取到业务网络中的业务节点发送的初始交易数据时,通过代理节点的节点私钥对初始交易数据进行签名后所得到的;该解密子单元1012,用于通过系统公钥对应的系统私钥,对系统加密数据信息进行解密处理,得到初始交易数据和签名信息;该验签子单元1013,用于获取代理节点的节点公钥,基于节点公钥对签名信息进行验签,得到验签结果;该交易验证子单元1014,用于在验签结果指示验签成功时,对初始交易数据进行交易验证,确定初始交易数据的交易验证结果。
[0103]
其中,该加密信息获取子单元1011,解密子单元1012,验签子单元1013以及交易验证子单元1014的具体实现方式可以参见上述图4所对应实施例中对初始交易数据的描述,这里将不再继续进行赘述。
[0104]
该交易添加单元102,用于在交易验证结果指示交易验证成功时,将初始交易数据添加至第一节点的第一交易池,从第一交易池中获取包含初始交易数据的交易数据集,将交易数据集中的交易数据作为待处理交易数据;该交易哈希确定单元103,用于对待处理交易数据进行交易哈希转换,得到待处理交易数据对应的交易哈希值,且基于交易哈希值确定待处理交易数据对应的默克尔树根;该待验证区块生成单元104,用于从核心共识网络的目标区块链上,获取具有最大生成时间戳的第一区块,将第一区块的区块哈希值作为第一区块的下一区块的父区块哈希值,基于待处理交易数据、默克尔树根以及父区块哈希值,生成第一区块的下一区块,将生成的第一区块的下一区块作为待写入目标区块链的待验证区块;待验证区块的生成时间戳用于更新目标区块链上的最大生成时间戳。
[0105]
其中,该交易验证单元101,交易添加单元102,交易哈希确定单元103以及待验证区块生成单元104的具体实现方式可以参见上述图3所对应实施例中对步骤s101的描述,这里将不再继续进行赘述。
[0106]
该结构信息确定模块20,用于从核心共识网络中获取第二节点,基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息,得到待验证区块所对应的致密区块的第一结构信息;第一结构信息包括初始交易数据对应的目标交易标识符;目标交易标识符是对初始交易数据进行哈希标识转换后所确定的。
[0107]
其中,待验证区块的区块信息中包括待处理交易数据,且初始交易数据为待处理交易数据中的交易数据;该结构信息确定模块20包括:列表获取单元201,节点确定单元202,预测交易确定单元203,目标交易标识确定单元204以及结构信息生成单元205。
[0108]
该列表获取单元201,用于获取第一节点在第一时刻时所维护的第一列表和第二列表;第一列表包括在第一时刻时与第一节点具有网络连接关系的节点的第一节点标识;第二列表包括在第一时刻时接入核心共识网络的节点的第二节点标识;该节点确定单元202,用于基于第一列表中的第一节点标识和第二列表中的第二节点标识,确定第一节点在第二时刻所维护的节点标识列表,从节点标识列表中确定待广播的第二节点;第二时刻为第一时刻的下一时刻;该预测交易确定单元203,用于获取第二节点从第一时刻至第二时刻的网络切换状态,基于网络切换状态确定第二节点的预测辅助信息,且基于预测辅助信息,从待处理交易数据中确定用于发送至第二节点的预测交易数据;该目标交易标识确定单元204,用于在待处理交易数据中,将除预测交易数据之外的交易数据作为目标交易数据,基于标识符确定规则,对目标交易数据进行哈希标识转换,得到目标交易数据对应的目标交易标识符。
[0109]
其中,该目标交易标识确定单元204包括:目标交易确定子单元2041,标识规则获取子单元2042,第一哈希转换子单元2043以及第二哈希转换子单元2044。
[0110]
该目标交易确定子单元2041,用于在待处理交易数据中,将除预测交易数据之外的交易数据作为目标交易数据;该标识规则获取子单元2042,用于获取包括第一哈希规则和第二哈希规则的标识符确定规则;第一哈希规则不同于第二哈希规则;该第一哈希转换子单元2043,用于基于第一哈希规则,对目标交易数据进行第一哈希转换,得到目标交易数据对应的第一哈希值;该第二哈希转换子单元2044,用于基于第二哈希规则,对第一哈希值进行第二哈希转换,得到目标交易数据对应的第二哈希值,基于第二哈希值以及第二哈希规则所关联的哈希字节数,得到目标交易数据对应的目标交易标识符。
[0111]
其中,该目标交易确定子单元2041,标识规则获取子单元2042,第一哈希转换子单元2043以及第二哈希转换子单元2044的具体实现方式可以参见上述图3所对应实施例中对目标交易标识符的描述,这里将不再继续进行赘述。
[0112]
该结构信息生成单元205,用于基于区块信息中的区块头信息、预测交易数据以及目标交易标识符,生成待验证区块对应的致密区块的第一结构信息。
[0113]
其中,该列表获取单元201,节点确定单元202,预测交易确定单元203,目标交易标识确定单元204以及结构信息生成单元205的具体实现方式可以参见上述图3所对应实施例中对步骤s102的描述,这里将不再继续进行赘述。
[0114]
该结构信息广播模块30,用于将第一结构信息广播至第二节点,以使第二节点基于目标交易标识符对待验证区块进行共识。
[0115]
其中,核心共识网络中包括第三节点;第三节点为除第一节点和第二节点之外的节点;第三节点用于在接收到待验证区块对应的致密区块的第二结构信息时,对待验证区块进行共识;该共识结果分析模块40,用于在接收到第三节点返回的第一共识结果和第二节点返回的第二共识结果时,将第一共识结果和第二共识结果作为目标共识结果,对目标共识结果进行结果分析;该区块写入模块50,用于若在目标共识结果中确定存在超过共识阈值的目标共识结果指示共识成功,则确定达成对待验证区块的共识,且将待验证区块写入核心共识网络的目标区块链。
[0116]
其中,该打包处理模块10,结构信息确定模块20,结构信息广播模块30,共识结果分析模块40以及区块写入模块50的具体实现方式可以参见上述图3所对应实施例中对步骤s101-步骤s103的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0117]
进一步地,请参见图11,图11是本申请实施例提供的一种交易数据处理装置的结构示意图。该交易数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该交易数据处理装置2为一个应用软件;该交易数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该交易数据处理装置2可以运行于核心共识网络中的第二节点,该第二节点可以为上述图2所对应实施例中的共识节点20d。该交易数据处理装置2可以包括:结构信息接收模块60以及共识模块70。
[0118]
该结构信息接收模块60,用于接收由核心共识网络中的第一节点发送的待验证区块对应的致密区块的第一结构信息;待验证区块是第一节点对初始交易数据进行打包处理后所得到的;初始交易数据是业务网络中的业务节点通过代理节点所转发的;代理节点用于对业务网络和核心共识网络进行网络隔离;第一结构信息是第一节点基于预测到的第二节点的预测辅助信息以及待验证区块的区块信息所确定的。
[0119]
其中,该结构信息接收模块60包括:连接通知发送单元601,区块头查找单元602,区块获取请求发送单元603以及结构信息接收单元604。
[0120]
该连接通知发送单元601,用于基于致密区块连接模式向核心共识网络中的第一节点发送连接通知,以使第一节点将待验证区块的区块头信息作为待确认区块头信息;连接通知用于指示第一节点与第二节点之间采用致密区块连接模式进行数据传输;该区块头查找单元602,用于接收第一节点返回的待确认区块头信息,在第二节点的节点内存中查找与待确认区块头信息相匹配的历史区块头信息;该区块获取请求发送单元603,用于若未查找到与待确认区块头信息相匹配的历史区块头信息,则向第一节点发送的区块获取请求;区块获取请求用于指示第一节点基于致密区块连接模式,确定待验证区块对应的致密区块的第一结构信息;
该结构信息接收单元604,用于接收第一节点发送的第一结构信息。
[0121]
其中,该连接通知发送单元601,区块头查找单元602,区块获取请求发送单元603以及结构信息接收单元604的具体实现方式可以参见上述图7所对应实施例中对步骤s204-步骤s205的描述,这里将不再继续进行赘述。
[0122]
该共识模块70,用于从第一结构信息中获取目标交易标识符,基于目标交易标识符对待验证区块进行共识;目标交易标识符是第一节点对初始交易数据进哈希标识转换后所确定的。
[0123]
其中,区块信息包括待处理交易数据,且初始交易数据为待处理交易数据中的交易数据;该共识模块70包括:目标交易标识获取单元701,本地交易标识确定单元702,标识比对单元703以及共识单元704。
[0124]
该目标交易标识获取单元701,用于从第一结构信息中获取目标交易标识符;目标交易标识符是第一节点基于标识符确定规则,对待处理交易数据中的目标交易数据进行哈希标识转换后所确定的;目标交易数据为待处理交易数据中的除预测交易数据之外的交易数据;预测交易数据为第一节点在待处理交易数据中,基于预测辅助信息所确定的交易数据;该本地交易标识确定单元702,用于基于标识符确定规则,对第二节点的第二交易池中的本地交易数据进行哈希标识转换,得到本地交易数据对应的本地交易标识符;该标识比对单元703,用于将本地交易标识符与目标交易标识符进行比对,得到比对结果,基于比对结果,获取用于重构待验证区块的关键交易数据。
[0125]
其中,该标识比对单元703包括:标识比对子单元7031,交易同步请求生成子单元7032以及关键交易确定子单元7033。
[0126]
该标识比对子单元7031,用于将本地交易标识符与目标交易标识符进行比对,得到比对结果;该交易同步请求生成子单元7032,用于若比对结果指示目标交易标识符与本地交易标识符不同,则基于目标交易标识符,生成用于发送至第一节点的交易同步请求,以使第一节点基于交易同步请求,在区块信息中的待处理交易数据中,获取目标交易标识符对应的目标交易数据;该关键交易确定子单元7033,用于在接收到第一节点所返回的目标交易数据时,将目标交易数据作为用于重构待验证区块的关键交易数据。
[0127]
其中,该标识比对子单元7031,交易同步请求生成子单元7032以及关键交易确定子单元7033的具体实现方式可以参见上述图7所对应实施例中对关键交易数据的描述,这里将不再继续进行赘述。
[0128]
该共识单元704,用于基于关键交易数据和第一结构信息,对待验证区块进行共识。
[0129]
其中,第一结构信息包括待验证区块的区块头信息和预测交易数据;该共识单元704包括:重构子单元7041,待比较树根确定子单元7042以及共识子单元7043。
[0130]
该重构子单元7041,用于基于关键交易数据、区块头信息以及预测交易数据,重构
得到待验证区块;该待比较树根确定子单元7042,用于获取与关键交易数据相关联的默克尔路径,获取关键交易数据对应的关键交易哈希值以及默克尔路径中的路径哈希值,确定待验证区块的待比较树根;该共识子单元7043,用于将区块头信息中的默克尔树根与待比较树根进行比较处理,根据比较结果对待验证区块进行共识。
[0131]
其中,该重构子单元7041,待比较树根确定子单元7042以及共识子单元7043的具体实现方式可以参见上述图7所对应实施例中对待验证区块进行共识的描述,这里将不再继续进行赘述。
[0132]
其中,该目标交易标识获取单元701,本地交易标识确定单元702,标识比对单元703以及共识单元704的具体实现方式可以参见上述图7所对应实施例中对步骤s206的描述,这里将不再继续进行赘述。
[0133]
其中,该结构信息接收模块60以及共识模块70的具体实现方式可以参见上述图7所对应实施例中对步骤s201-步骤s206的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0134]
进一步地,请参见图12,图12是本申请实施例提供的一种计算机设备的示意图。如图12所示,该计算机设备3000可以包括:至少一个处理器3001,例如cpu,至少一个网络接口3004,用户接口3003,存储器3005,至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,用户接口3003可以包括显示屏(display)、键盘(keyboard),网络接口3004可选地可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器3005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储3005可选地还可以是至少一个位于远离前述处理器3001的存储装置。如图12所示,作为一种计算机存储介质的存储器3005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0135]
在图12所示的计算机设备3000中,网络接口3004主要用于进行网络通信;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序。
[0136]
应当理解,本申请实施例中所描述的计算机设备3000可执行前文图3或者图7所对应实施例中对该交易数据处理方法的描述,也可执行前文图10所对应实施例中对交易数据处理装置1或者图11所对应实施例中对该交易数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0137]
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的交易数据处理装置1或者交易数据处理装置2所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3或者图7所对应实施例中对该交易数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地
点且通过通信网络互连的多个计算设备可以组成区块链系统。
[0138]
本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图7所对应实施例中对交易数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0139]
进一步的,请参见图13,图13是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统3可以包含数据处理装置1a和数据处理装置2a。其中,数据处理装置1a可以为上述图10所对应实施例中的交易数据处理装置1,可以理解的是,该数据处理装置1a可以集成在上述图2所对应实施例中的共识节点20c,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图11所对应实施例中的交易数据处理装置2,可以理解的是,该数据处理装置2a可以集成在上述图2所对应实施例中的共识节点20d,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
[0140]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0141]
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1