基于区块链的数据处理方法、装置、设备及可读存储介质

文档序号:9049 发布日期:2021-09-17 浏览:36次 英文

基于区块链的数据处理方法、装置、设备及可读存储介质

技术领域

本申请涉及计算机

技术领域

,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。

背景技术

区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链还可以进行数据加密传输、节点识别和安全访问,是一种先进的分布式基础架构。目前,因为区块链的不可篡改性与真实性,对于区块链的应用也越来越多。

目前,通过一些流行区块链协议搭建的区块链网络中,通常通过核心节点,即全节点,来完成交易上链所需要的所有功能,比如:交易广播、交易验签、交易验重、区块打包、区块共识、交易执行、存入账本等等。但是,区块链中某些功能需要使用相同的资源,比如CPU(central processing unit,中央处理器)、硬盘IO(Input/Output,输入输出)等等。因此,一些大型区块链项目,比如税务区块链,因为受众广、业务办理时间集中,同一时间段内区块链网络需要进行成千上万个交易上链,且不同交易当前所需的功能不同,大量的交易当前所需的功能并行,就会频繁抢占全节点的CPU、IO等资源,造成大量系统调度,浪费时间,不利于区块链性能的提升。

发明内容

本申请实施例提供了一种基于区块链的数据处理方法、装置、设备及可读存储介质,可以减少系统调度消耗,提高区块链性能。

本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:

区块处理节点生成交易打包请求,将交易打包请求发送至交易处理节点,以使交易处理节点基于交易打包请求生成交易数据包;交易数据包包含一个或多个交易数据;一个或多个交易数据是经过交易处理节点验证合法后存入交易池中的交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

接收交易处理节点发送的交易数据包,根据交易数据包中的一个或多个交易数据生成提议区块;

对提议区块进行共识处理,得到共识处理结果;

若共识处理结果为共识通过结果,则执行提议区块,得到一个或多个交易数据对应的交易执行结果,将提议区块和交易执行结果写入区块链账本中。

本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:

交易处理节点获取待验证交易数据,对待验证交易数据进行验证处理,得到待验证交易数据的验证处理结果;

若待验证交易数据的验证处理结果为验证合法结果,则将待验证交易数据添加进交易池中;

当接收到区块处理节点发送的交易打包请求时,根据交易打包请求从交易池中获取一个或多个交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

对一个或多个交易数据进行打包处理,得到交易数据包,将交易数据包发送给区块处理节点,以使区块处理节点根据交易数据包中的一个或多个交易数据生成提议区块。

本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:

区块链网关节点接收终端设备发送的待验证交易数据,将待验证交易数据转发至交易处理节点,以使交易处理节点将验证合法的待验证交易数据添加进交易池;

接收区块处理节点转发的区块签名数据和提议区块;区块签名数据是区块处理节点对提议区块签名得到的;提议区块是区块处理节点根据交易处理节点发送的来自于交易池中的一个或多个交易数据生成的;

获取可通信区块链网关节点的通信地址,基于通信地址将区块签名数据以及提议区块转发至可通信区块链网关节点,以使可通信区块链网关节点将提议区块转发至可通信区块处理节点;可通信区块处理节点用于基于区块签名数据对提议区块进行共识投票。

本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:

请求生成模块,用于生成交易打包请求,将交易打包请求发送至交易处理节点,以使交易处理节点基于交易打包请求生成交易数据包;交易数据包包含一个或多个交易数据;一个或多个交易数据是经过交易处理节点验证合法后存入交易池中的交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

区块生成模块,用于接收交易处理节点发送的交易数据包,根据交易数据包中的一个或多个交易数据生成提议区块;

区块共识模块,用于对提议区块进行共识处理,得到共识处理结果;

区块执行模块,用于若共识处理结果为共识通过结果,则执行提议区块,得到一个或多个交易数据对应的交易执行结果,将提议区块和交易执行结果写入区块链账本中。

其中,区块共识模块,包括:

签名单元,用于对提议区块进行签名处理,得到区块签名数据;

转发单元,用于将区块签名数据以及提议区块转发至第一区块链网关节点,以使第一区块链网关节点获取第二区块链网关节点的通信地址,基于通信地址将区块签名数据以及提议区块转发至第二区块链网关节点;第二区块链网关节点用于将提议区块转发至可通信区块处理节点;可通信区块处理节点在对区块签名数据验签成功后,对提议区块进行区块校验处理,得到第一区块校验结果;

校验单元,用于对提议区块进行区块校验处理,得到第二区块校验结果;

确定单元,用于根据第一区块校验结果和第二区块校验结果,确定针对提议区块的共识处理结果。

其中,校验单元,包括:

查询子单元,用于生成针对提议区块的区块查询指令;

查询子单元,还用于将区块查询指令发送至交易处理节点,以使交易处理节点根据区块查询指令对提议区块进行区块查询处理,得到第二区块校验结果;

接收子单元,用于接收交易处理节点发送的第二区块校验结果。

其中,上述数据处理装置,还包括:

通知发送模块,用于在将提议区块和交易执行结果写入区块链账本后,生成交易完成通知指令,将交易完成通知指令发送给交易处理节点,以使交易处理节点基于交易完成通知指令,删除交易池中的一个或多个交易数据,将一个或多个交易数据添加进已上链交易缓冲池中。

本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:

交易验证模块,用于获取待验证交易数据,对待验证交易数据进行验证处理,得到待验证交易数据的验证处理结果;

交易添加模块,用于若待验证交易数据的验证处理结果为验证合法结果,则将待验证交易数据添加进交易池中;

请求接收模块,用于当接收到区块处理节点发送的交易打包请求时,根据交易打包请求从交易池中获取一个或多个交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

交易打包模块,用于对一个或多个交易数据进行打包处理,得到交易数据包,将交易数据包发送给区块处理节点,以使区块处理节点根据交易数据包中的一个或多个交易数据生成提议区块。

其中,交易验证模块,包括:

交易接收单元,用于接收第三区块链网关节点发送的待验证交易数据;第三区块链网关节点用于在接收到终端设备发送的待验证交易数据时,将待验证交易数据转发至交易处理节点;

交易接收单元,还用于接收第三区块链网关节点发送的与待验证交易数据相关联的交易签名数据;交易签名数据是终端设备通过交易发起对象的私钥对待验证交易数据进行签名得到的签名数据;

验签单元,用于获取交易发起对象的公钥,通过公钥对交易签名数据进行验签处理,得到验签结果;

验重单元,用于若验签结果为验签通过结果,则对待验证交易数据进行验重处理,得到验重处理结果;

验证单元,用于若验重处理结果为验重通过结果,则确定待验证交易数据的验证处理结果为验证合法结果。

其中,验重单元,包括:

查找子单元,用于在区块链账本中查找待验证交易数据;

验重处理子单元,用于若在区块链账本中查找到待验证交易数据,则确定验重处理结果为验重不通过结果;

验重处理子单元,还用于若未在区块链账本中查找到待验证交易数据,则确定验重处理结果为验重通过结果。

其中,上述数据处理装置,还包括:

通知接收模块,用于接收区块处理节点发送的交易完成通知指令;交易完成通知指令是区块处理节点在将提议区块和交易执行结果写入区块链账本后生成的;交易执行结果是区块处理节点在对提议区块共识通过后,执行提议区块,得到的一个或多个交易数据对应的交易执行结果;

通知执行模块,用于根据交易完成通知指令,删除交易池中的一个或多个交易数据,将一个或多个交易数据添加进已上链交易缓冲池中。

其中,上述数据处理装置,还包括:

交易查询模块,用于接收终端设备生成的针对目标交易数据的交易查询请求,根据交易查询请求在已上链交易缓冲池中查找目标交易数据;

交易查询模块,还用于若在已上链交易缓冲池中查找到目标交易数据,则将交易完成结果下发至终端设备;

交易查询模块,还用于若在已上链交易缓冲池中未查找到目标交易数据,则从区块链账本中查找目标交易数据;

交易查询模块,还用于若在区块链账本中查找到目标交易数据,则将目标交易数据添加进已上链交易缓冲池中,将交易完成结果下发至终端设备;

交易查询模块,还用于若在区块链账本中未查找到目标交易数据,则将交易未完成结果下发至终端设备。

其中,上述数据处理装置,还包括:

查询接收模块,用于接收区块处理节点发送的区块查询指令;区块查询指令是区块处理节点在生成提议区块后生成的;

查询处理模块,用于根据区块查询指令,对提议区块进行区块查询处理,得到区块校验结果;

结果发送模块,用于将区块校验结果发送给区块处理节点,以使区块处理节点根据区块校验结果对提议区块进行共识投票。

其中,区块校验结果包括校验通过结果或校验失败结果;校验通过结果用于指示区块处理节点为提议区块生成共识通过投票;校验失败结果用于指示区块处理节点为提议区块生成共识失败投票;提议区块包括交易数据M;

查询处理模块,包括:

数据查找单元,用于根据区块查询指令,在交易池中查找交易数据M;

数据查找单元,还用于若在交易池中查找到交易数据M,则确定交易数据M为有效交易数据;

数据查找单元,还用于若未在交易池中查找到交易数据M,则对交易数据M进行验签和查重处理,得到交易数据M的验签和查重处理结果;

数据确定单元,用于若交易数据M的验签和查重处理结果为验证合法结果,则确定交易数据M为有效交易数据,否则确定交易数据M为无效交易数据;

结果确定单元,用于若提议区块中的每个交易数据均为有效交易数据,则确定提议区块的区块查询结果为校验通过结果;

结果确定单元,还用于若提议区块中存在一个或多个无效交易数据,则确定提议区块的区块查询结果为校验失败结果。

其中,待验证交易数据包括N个待验证交易数据,N为正整数;

上述数据处理装置,还包括:

交易广播模块,用于从添加进交易池中的N个待验证交易数据中,选择L个待验证交易数据进行交易打包处理,得到广播交易包;L为正整数,L个待验证交易数据的总数据容量小于可配置容量阈值;

交易广播模块,还用于将广播交易包发送至第四区块链网关节点,以使第四区块链网关节点获取第五区块链网关节点的通信地址,基于通信地址将广播交易包转发至第五区块链网关节点;第五区块链网关节点用于将广播交易包转发至可通信交易处理节点;可通信交易处理节点用于将广播交易包解压为L个待验证交易数据,对L个待验证交易数据验证合法后,将L个待验证交易数据添加进可通信交易处理节点所属的交易池中。

本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:

第一交易转发模块,用于接收终端设备发送的待验证交易数据,将待验证交易数据转发至交易处理节点,以使交易处理节点将验证合法的待验证交易数据添加进交易池;

区块接收模块,用于接收区块处理节点转发的区块签名数据和提议区块;区块签名数据是区块处理节点对提议区块签名得到的;提议区块是区块处理节点根据交易处理节点发送的来自于交易池中的一个或多个交易数据生成的;

区块转发模块,用于获取可通信区块链网关节点的通信地址,基于通信地址将区块签名数据以及提议区块转发至可通信区块链网关节点,以使可通信区块链网关节点将提议区块转发至可通信区块处理节点;可通信区块处理节点用于基于区块签名数据对提议区块进行共识投票。

其中,上述数据处理装置,还包括:

心跳发送模块,用于向交易处理节点发送心跳消息,以使交易处理节点基于心跳消息生成应答消息;

应答响应模块,用于若在目标时间段内未接收到交易处理节点的应答消息,则将交易处理节点确定为故障交易处理节点,选择第一备用交易处理节点;

第二交易转发模块,用于当接收到终端设备发送的新的待验证交易数据时,将新的待验证交易数据发送至第一备用交易处理节点。

其中,上述数据处理装置,还包括:

节点监测模块,用于监测交易处理节点的负载情况;

节点选择模块,用于当交易处理节点的负载情况为超载情况时,选择第二备用交易处理节点;

第三交易转发模块,用于当接收到终端设备发送的第一待验证交易数据和第二待验证交易数据时,将第一待验证交易数据发送至交易处理节点,以使交易处理节点将验证合法的第一待验证交易数据添加进交易池;

第三交易转发模块,还用于将第二待验证交易数据发送至第二备用交易处理节点,以使第二备用交易处理节点将验证合法的第二待验证交易数据添加进备用交易池。

本申请实施例一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;

上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信网元,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行本申请实施例中的方法。

本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。

本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中的方法。

本申请实施例中,区块处理节点生成交易打包请求,将交易打包请求发送至交易处理节点,等待交易处理节点返回交易数据包;然后,区块处理节点可以根据接收到的交易数据包中的一个或多个交易数据生成提议区块,并对该提议区块进行共识处理,得到共识处理结果;若共识处理结果为共识通过结果,区块处理节点会执行提议区块,得到一个或多个交易数据对应的交易执行结果,最后将提议区块和交易执行结果写入区块链账本中。其中,一个或多个交易数据是经过交易处理节点验证合法后存入交易池中的交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立。通过本申请实施例提供的方法,将交易验证、交易广播等操作分配给交易处理节点来完成,将区块打包、区块共识、交易执行、存入账本等操作分配给区块处理节点来完成,即根据各功能所需的硬件资源需求,对区块链进行了功能划分,即可以通过交易处理节点和区块处理节点将一些不同的功能分配到不同的硬件资源上,使得部分功能相互间不会抢占硬件资源,可见本申请无需由全节点来支撑交易上链所需要的所有功能,可以减少系统调度消耗,提高区块链性能。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种网络架构示意图;

图2a是本申请实施例提供的一种基于区块链的数据处理的场景示意图;

图2b是本申请实施例提供的一种基于区块链的数据处理的场景示意图;

图2c是本申请实施例提供的一种基于区块链的数据处理的场景示意图;

图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;

图4是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;

图5是本申请实施例提供的一种数据处理方法的整体交互示意图;

图6a是本申请实施例提供的一种区块链网关节点转发交易的交互示意图;

图6b是本申请实施例提供的一种区块链网关转发提议区块的交互示意图;

图6c是本申请实施例提供的一种交易处理节点和区块处理节点完成区块校验的交互示意图;

图6d是本申请实施例提供的一种交易处理节点和区块处理节点完成区块打包的交互示意图;

图6e是本申请实施例提供的一种交易查询的数据交互示意图;

图6f是本申请实施例提供的一种多个小交易广播的数据交互示意图;

图7是本申请实施例提供的一种区块链交易处理的过程示意图;

图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;

图9是本申请实施例提供的一种计算机设备的结构示意图;

图10是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;

图11是本申请实施例提供的一种计算机设备的结构示意图;

图12是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;

图13是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求。区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若区块链网络中的区块链节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。

其中,可以理解的是,区块(Block)是在区块链网络上承载交易数据(即交易业务)的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确定区块中的交易。

其中,可以理解的是,哈希(hash)值,也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,前继区块被称为当前区块的父区块。哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。

区块链网络通常由众多区块链节点组成,用户通过DApp(去中心化应用)与区块链进行交互,即用户可以通过DApp可以将交易对应的交易数据(业务请求)发送到区块链中。通常一个交易的生命周期包含:

交易生成:用户通过DApp输入参数,DApp将其打包成交易数据并发送到某个区块链节点。

交易广播: 区块链节点将收到的交易数据广播到整个区块链网络中。

交易验证:区块链节点收到交易数据后,对交易数据进行验签、从帐本(DB)中进行交易查重,验证通过的交易数据进入交易池。

区块打包:出块节点从交易池中捞出交易数据,打包到提议区块中,并广播到区块链网络中。其中,出块节点是本轮负责打包提议区块的区块链节点,出块节点的选择因共识算法而异,常见的有轮流出块、算力竞争出块等。

区块校验:区块链节点收到提议区块后,对其中的交易数据进行验证,如交易已在交易池中,验证通过,否则需对交易进行验签、查重操作。

区块共识:区块链节点对收到的提议区块,根据区块校验结果进行投票,当区块链节点收到多数投票,满足共识通过条件后,认可并开始提交提议区块。

交易执行:执行认可的提议区块中的交易数据。

存入帐本:将提议区块、交易数据、交易执行结果存入区块链帐本。

请参见图1,是本申请实施例提供的一种网络架构示意图。如图1所示,该网络架构可以包括终端设备(客户端)集群10以及区块链节点集群100,该区块链节点集群100可以包括至少两个区块链节点。如图1所示,该终端设备集群10具体可以包括终端设备10a、终端设备10b、终端设备10c、…、终端设备10n,该区块链节点集群100具体可以包括区块链节点101、区块链节点102、…、区块链节点m。区块链节点集群100中的每个区块链节点均可以包含有区块链网关节点、交易处理节点以及区块处理节点,比如,区块链节点101可以包含有区块链网关节点101a、交易处理节点101b以及区块处理节点101c,区块链节点102可以包含有区块链网关节点102a、交易处理节点102b以及区块处理节点102c。其中,区块链网关节点主要用于负责区块链节点之间的数据转发,交易处理节点主要用于负责交易广播、交易验证,区块处理节点主要用于负责区块打包、区块共识、交易执行、存入账本。

如图1所示的网络架构可以应用于区块链网络,该区块链网络可以包括但不限于联盟链所对应的区块链网络。在每个区块链节点内部,区块链网关节点、交易处理节点以及区块处理节点,两两之间可以存在数据连接,以便于区块链网关节点、交易处理节点和区块处理节点可以进行数据交互,共同实现交易上链所需的功能。例如,区块链网关节点101a和交易处理节点101b之间存在数据连接,区块链网关节点101a和区块处理节点101c之间存在数据连接,交易处理节点101b和区块处理节点101c之间存在数据连接。区块链节点集群100中的每个区块链节点在进行正常工作时可以接收到终端设备集群10中的任一终端设备发送的数据,并基于接收到的数据进行区块上链处理,也可以向终端设备集群10中的任一终端设备发送数据,即终端设备10a、终端设备10b、终端设备10c、…、终端设备10n可以分别与区块链节点101、区块链节点102、…、区块链节点m进行数据连接,以便于终端设备可以通过该网络连接与业务节点进行数据交互。区块链节点集群100中的区块链节点与区块链节点之间的数据可以共享。为了保证各个区块链节点之间的数据互通,每个区块链节点之间可以存在数据连接,例如区块链节点101和区块链节点102之间存在数据连接,区块链节点101和区块链节点m之间存在数据连接,区块链节点102和区块链节点m之间存在数据连接。通过上述数据连接,可以进行交易数据或者提议区块的传输。

可以理解的是,区块链节点集群100中的区块链节点与外界(如区块链节点集群100中的其他区块链节点、终端设备集群10中的任一终端设备)进行数据交互时,通常是通过各自的区块链网关节点来进行数据连接。在区块链节点集群100对应的区块链网络中,可以基于节点标识来实现区块链网关节点之间的数据连接。对于区块链网络中的每个区块链网关节点,均具有与其对应的节点标识,而且上述每个区块链网关节点均可以存储与自身有相连关系的其他区块链网关节点的节点标识,以便后续根据其他区块链网关节点的节点标识,将获取到的交易数据或提议区块广播至其他区块链节点,例如区块链网关节点101a中可以维护一个如表1所示的节点标识列表,该节点标识列表保存着其他区块链网关节点的节点名称和节点标识:

表1

其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任意一种能够用于标识区块链网络中区块链网关节点的信息,表1中仅以IP地址为例进行说明。例如,区块链网关节点101a可以通过节点标识117.116.189.145向区块链网关节点102a发送信息(例如,交易数据,提议区块),且区块链网关节点102a可以通过节点标识117.114.151.174确定该信息是由区块链网关节点101a所发送的。

可以理解的是,上述的数据连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。

可以理解的是,本申请实施例所提供的数据处理方法可以由计算机设备执行,计算机设备包括但不限于上述区块链网关节点、交易处理节点或者区块处理节点(可以为终端设备或服务器)。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。需要说明的是,区块链网关节点、交易处理节点以及区块处理节点,两两之间的硬件设备资源互相独立。

如图1所示,终端设备集群10中的任一终端设备可以集成安装有目标应用,其中,目标应用可以是去中心化应用。假设该目标应用运行在终端设备10a,终端设备10a可以通过该目标应用生成交易数据,并将该交易数据发送至区块链中任一区块链节点的区块链网关节点,如发送至区块链节点101的区块链网关节点101a,区块链网关节点101a会将接收到的交易数据转发至该区块链节点101的交易处理节点101b。交易处理节点101b获取到交易数据后,会对交易数据进行验证处理,得到交易数据的验证处理结果,如果验证处理结果为验证合法结果,则将交易数据添加进交易池中。其中,交易池是区块链网络中交易处理节点需要维护的一个用于存储交易数据的临时列表。交易处理节点通过交易池来暂存区块链网络中已知但尚未包含在区块链中的交易数据,即交易池中可以存储有多个验证合法的交易数据。

请再参见图1,区块链节点集群100中的任一区块链节点可以作为出块节点,此时该区块链节点的区块处理节点会负责提议区块的生成。假设区块链节点101为出块节点,区块处理节点101c可以生成交易打包请求,然后将该交易请求发送至交易处理节点101b。交易处理节点101b接收到交易打包请求后,会根据该交易打包请求从交易池中捞出一个或多个交易数据,然后生成交易数据包,并将交易数据包返回给区块处理节点101c。区块处理节点101c接收到交易处理节点101b发送的交易数据包后,就可以根据该交易数据包中的一个或多个交易数据生成提议区块。然后,区块处理节点101c会对提议区块进行共识处理,得到共识处理结果;若共识处理结果为共识通过结果,则执行提议区块,得到一个或多个交易数据对应的交易执行结果,将提议区块和所述交易执行结果写入区块链账本中。其中,区块处理节点101c对提议区块进行共识处理,得到共识处理结果的过程,可以为:区块处理节点101c先对提议区块进行签名处理,得到区块签名数据,然后,区块处理节点101c将提议区块和区块签名数据一起转发至区块链网关节点101a,再由区块链网关节点101a将提议区块和区块签名数据广播至区块链节点集群100中的其余区块链节点的区块链网关节点上,再由其余区块链节点的区块链网关节点将提议区块和区块签名数据转发至各自区块链节点中的区块处理节点,其余区块处理节点接收到提议区块和区块签名数据后,会在对区块签名数据验签成功后,对提议区块进行区块校验处理,得到第一区块校验结果,区块处理节点101c也会对提议区块进行区块校验处理,得到第二区块校验处理结果,然后,区块处理节点101c会根据第一区块校验结果和第二区块校验结果,确定针对提议区块的共识处理结果。

为便于理解,请参见图2a-图2c,图2a-图2c是本申请实施例提供的一种基于区块链的数据处理的场景示意图。其中,如图2a所示的交易发起对象A对应的终端设备20可以为上述图1所对应实施例中的终端设备集群10中的任一终端设备,如,终端设备20可以为终端设备10a;如图2a所示的区块链节点200可以为上述图1所对应实施例中的区块链节点集群100中的任一区块链节点,如,区块链节点200可以为区块链节点101,因此,区块链节点200包含的区块链网关节点200a可以为区块链网关节点101a,区块链节点200包含的交易处理节点200b可以为交易处理节点101b,区块链节点200包含的区块处理节点200c可以为区块处理节点101c。

如图2a所示,终端设备20上可以集成安装有目标应用(即上述图1所述的目标应用),交易发起对象A可以通过目标应用发起一笔交易,如,向交易接收对象B转账100元。交易发起对象A通过目标应用输入相关参数后,终端设备20可以通过目标应用获取相关参数,然后生成交易数据201。交易数据201需要经过区块链网络的交易广播、交易验签、交易验重、区块打包、区块共识、交易执行等一系列过程,才能最终得到对应的交易执行结果,然后交易数据201和交易数据201对应的交易执行结果会被写进区块链账本中,此时,交易发起对象A的账户余额会减少100元,交易接收对象B的账户余额会增加100元,交易发起对象A的交易实现。终端设备20会将交易数据201发送至区块链网络中的任一区块链节点的区块链网关节点,如图2a所示,终端设备20将交易数据201发送至区块链网关节点200a,随后,区块链网关节点200a将交易数据201转发至交易处理节点200b。交易处理节点200b接收到交易数据201时,会对交易数据201进行验证处理,在确定交易数据201验证合法以后,将交易数据201添加进行交易池204中。其中,验证处理主要是为了验证交易数据201的来源是否异常、数据是否被修改、是否被重复接收等问题。当交易处理节点200b确定交易数据201是由正常用户发起的交易数据,在传输过程中数据没有缺失或者被修改,该交易数据201也没有被重复接收时,交易处理节点200b会确定交易数据201验证合法。上述可知,交易池204是区块链网络中每个交易处理节点均会维护的一个用于存储交易数据的临时列表。如图2a所示,交易池204中除了新添加进来的交易数据201,还存储有交易数据202,交易数据203等多个交易数据,可以理解,交易数据202、交易数据203等多个交易数据,可以是由不同终端设备产生的,且均由交易处理节点验证合法后才被添加进交易池204中的交易数据。

在区块链网络中,提议区块的生成通常是由出块节点来完成,出块节点可以为区块链网络中的任一区块链节点来担任。假设区块链节点200是出块节点,如图2b所示,区块处理节点200c会生成交易打包请求205,然后将该交易打包请求205发送至交易处理节点200b。交易处理节点200b接收到区块处理节点200c发送的交易打包请求205后,会根据该交易打包请求205从交易池204中获取一个或多个交易数据,比如交易数据201,交易数据202和交易数据203,然后交易处理节点200b会对交易数据201,交易数据202和交易数据203进行打包处理,得到交易数据包206。

交易处理节点200b在得到交易数据包206后,会将交易数据包206转发至区块处理节点200c。如图2c所示,区块处理节点200c接收到交易数据包206后,会解压该交易数据包206,获取交易数据201,交易数据202以及交易数据203,然后,区块处理节点200c会根据交易数据201,交易数据202以及交易数据203进行区块打包,得到提议区块207。其中,提议区块207包含区块头和区块体,其中,区块头主要用于存储父区块的区块哈希值、版本号、时间戳和难度值等基本数据,还可以存储有其他相关数据;区块体主要用于存储交易数据201,交易数据202以及交易数据203。然后,区块处理节点200c会对提议区块207进行共识记账处理,即对提议区块207进行共识处理,得到共识处理结果;若共识处理结果为共识通过结果,则执行提议区块,得到一个或多个交易数据对应的交易执行结果,将提议区块和交易执行结果写入区块链账本中。上述可知,区块链节点的功能被分配给了不同的节点,即区块链网关节点、交易处理节点和区块处理节点,各节点之间相互独立,当区块链节点的功能同时实现时,每个功能均由对应的节点提供需要的硬件资源,部分功能相互间不会抢占硬件资源,可以减少系统调度消耗,从而提高区块链的性能。

进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由区块处理节点(例如,上述图1所对应实施例中的区块处理节点)执行,也可以由区块处理节点、交易处理节点(例如,上述图1所对应实施例中的交易处理节点)、区块链网关节点(例如,上述图1所对应实施例中的区块链网关节点)、终端设备(例如,上述图1所对应实施例中的终端设备)共同执行。以下将以本方法由区块处理节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S101-步骤S104:

步骤S101,区块处理节点生成交易打包请求,将所述交易打包请求发送至交易处理节点,以使所述交易处理节点基于所述交易打包请求生成交易数据包;所述交易数据包包含一个或多个交易数据;所述一个或多个交易数据是经过所述交易处理节点验证合法后存入交易池中的交易数据;所述交易处理节点和所述区块处理节点的硬件设备资源互相独立。

具体的,区块处理节点和交易处理节点具有关联关系,即区块处理节点和交易处理节点属于同一区块链节点,例如,上述图1所示的同属同一区块链节点101的交易处理节点101b和区块处理节点101c。区块处理节点和交易处理节点可以是两台不同的机器,例如,区块处理节点为服务器A,交易出价节点为服务器B,服务器A和服务器B之间的硬件设备资源互相独立,即区块处理节点工作时所需的资源与交易处理节点工作时所需的资源没有关系,不会产生资源冲突,也不会出现资源抢占带来的系统调度消耗。可选的,区块处理节点和交易处理节点可以部署在同一台服务器的不同进程中,例如,区块处理节点运行在进程A中,交易处理节点运行在进程B中,需要说明的是,进程A和进程B互相独立,进程对应有特定的硬件设备资源,彼此之间也互相独立,即虽然进程A和进程B均运行在同一台服务器中,但是进程B对应的硬件设备资源,进程A无法使用。

步骤S102,接收所述交易处理节点发送的所述交易数据包,根据所述交易数据包中的所述一个或多个交易数据生成提议区块。

具体的,提议区块主要包括区块头和区块体,其中,区块头需要封装当前版本号(Version)、前一区块地址(Prev-block)、时间戳(Timestamp)、随机数(Nonce)、当前区块的目标哈希值(Bits)、Merkel树根值(Merkel-root)等信息,区块体主要用于封装交易数据。因此,区块处理节点获取到交易数据包后,会先解压该交易数据包,得到交易数据包中的一个或多个交易数据,然后获取组建提议区块所需的信息,再完成提议区块的封装处理,得到提议区块。

步骤S103,对所述提议区块进行共识处理,得到共识处理结果。

具体的,区块处理节点会对提议区块进行签名处理,得到区块签名数据,然后将区块签名数据以及提议区块转发至第一区块链网关节点。其中,第一区块链网关节点与区块处理节点具有关联关系,即第一区块链网关节点和区块处理节点属于同一区块链节点,例如,上述图1所示的同属同一区块链节点101的区块链网关节点101a和区块处理节点101c。第一区块链网关节点会获取第二区块链网关节点的通信地址,然后基于该通信地址将区块签名数据以及提议区块转发至第二区块链网关节点。其中,第二区块链网关节点即区块链网络中和上述区块处理节点没有关联关系的区块链网关节点,例如,区块处理节点为上述图1所示的区块处理节点101c时,第二区块链网关节点可以包括区块链网关节点102a,…,区块链节点m包含的区块链网关节点。每个第二区块链网关节点在接收到第一区块链网关节点发送的区块签名数据以及提议区块后,均会将将提议区块和区块签名数据转发至可通信区块处理节点。其中,可通信区块处理节点是指与第二区块链网关节点具有关联关系的区块处理节点,例如,第二区块链网关节点为上述图1所示的区块处理节点102a时,该第二区块链网关节点具有关联关系的区块处理节点为区块处理节点102c。可通信区块处理节点在对区块签名数据验签成功后,会对提议区块进行区块校验处理,得到第一区块校验结果。上述区块处理节点同样会对提议区块进行区块校验处理,得到第二区块校验结果。最后,区块处理节点根据第一区块校验结果和第二区块校验结果,可以确定针对提议区块的共识处理结果。

具体的,区块处理节点对提议区块进行区块校验处理,得到第二区块校验结果的过程,可以为:生成针对提议区块的区块查询指令;将区块查询指令发送至交易处理节点,以使交易处理节点根据区块查询指令对提议区块进行区块查询处理,得到第二区块校验结果;然后接收交易处理节点发送的第二区块校验结果。可以理解的是,对提议区块进行区块校验处理的目的是为了校验提议区块中交易数据的正确性与合法性,由上述可知,交易数据的校验以及存储均由交易处理节点完成,因此,对提议区块的校验也可以由交易处理节点完成。

步骤S104,若所述共识处理结果为共识通过结果,则执行所述提议区块,得到所述一个或多个交易数据对应的交易执行结果,将所述提议区块和所述交易执行结果写入区块链账本中。

具体的,在对提议区块的共识通过后,区块处理节点会负责提议区块中的交易执行以及存入账本等操作。

可选的,在将提议区块和交易执行结果写入区块链账本后,区块处理节点还可以生成交易完成通知指令,然后将交易完成通知指令发送给交易处理节点,交易处理节点可以基于接收到的交易完成通知指令,删除交易池中的被提议区块包含的一个或多个交易数据,将该一个或多个交易数据添加进已上链交易缓冲池中。其中,已上链交易缓冲池用于记录已经写入区块链账本中的交易数据,可以提高查询速度。

采用本申请实施例提供的方法,区块处理节点只需向交易处理节点发送交易打包请求,然后接收交易处理节点根据交易打包请求发送的交易数据包,然后解压接收到的交易数据包获取其中包含的一个或多个交易数据,即可根据该一个或多个交易数据生成提议区块,之后,区块处理节点对提议区块进行共识处理,共识通过后就可以执行该提议区块,并将得到的一个或多个交易数据对应的交易执行结果和提议区块写入区块链账本中。由此可见,区块处理节点无需负责交易数据的验证处理和存储,可以减少各功能同时执行时对资源的抢占而带来的系统调度的消耗,从而提高区块链性能。

进一步地,请参见图4,图4是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由交易处理节点(例如,上述图1所对应实施例中的交易处理节点)执行,也可以由区块处理节点(例如,上述图1所对应实施例中的区块处理节点)、交易处理节点、区块链网关节点(例如,上述图1所对应实施例中的区块链网关节点)、终端设备(例如,上述图1所对应实施例中的终端设备)共同执行。以下将以本方法由交易处理节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S201-步骤S204:

步骤S201,交易处理节点获取待验证交易数据,对所述待验证交易数据进行验证处理,得到所述待验证交易数据的验证处理结果。

具体的,交易处理节点接收第三区块链网关节点发送的待验证交易数据。

一个可行的实施例中,第三区块链网关节点接收到的待验证交易数据可以是由终端设备发送的,即终端设备生成的待验证交易数据会先发送至第三区块链网关节点,然后第三区块链网关节点会将待验证交易数据发送至交易处理节点。其中,第三区块链网关节点和交易处理节点具有关联关系,即第三区块链网关节点和交易处理节点属于同一区块链节点,例如,上述图1所示的同属同一区块链节点101的交易处理节点101b和区块链网关节点101a。同时,交易处理节点还会接收第三区块链网关节点发送的与待验证交易数据相关联的交易签名数据,其中,交易签名数据是终端设备通过交易发起对象的私钥对待验证交易数据进行签名得到的签名数据。交易处理节点会获取交易发起对象的公钥,通过公钥对交易签名数据进行验签处理,得到验签结果。若验签结果为验签通过结果,则交易处理节点还对待验证交易数据进行验重处理,得到验重处理结果。若验重处理结果为验重通过结果,则交易处理节点可以确定待验证交易数据的验证处理结果为验证合法结果。其中,交易处理节点对待验证交易数据进行验重处理的过程,可以为:在区块链账本中查找待验证交易数据;若在区块链账本中查找到待验证交易数据,则确定验重处理结果为验重不通过结果;若未在区块链账本中查找到待验证交易数据,则确定验重处理结果为验重通过结果。

一个可行的实施例中,第三区块链网关节点接收到的待验证交易数据可以是由区块链网络中的可通信区块链网关节点发送的。其中,可通信区块链网关节点是指区块链网络中的属于其他的区块链节点的区块链网关节点。可以理解的是,终端设备生成的待验证交易数据可以发给区块链网络中的任一区块链网关节点,由该区块链网关节点转发至与其具有关联关系的交易处理节点,同时,交易处理节点还需要将直接由终端设备发送来的待验证交易数据广播至其余交易处理节点,才能保证区块链网络中每个交易处理节点的交易池中存储的交易数据保持同步。因此,当终端设备生成的待验证交易数据是发送至可通信区块链网关节点时,在可通信区块链网关节点具有关联关系的可通信交易处理节点确定待验证交易数据进行验证合法后,可通信交易处理节点会通知可通信区块链网关节点将待验证交易数据转发至第三区块链网关节点。第三区块链网关节点接收到可通信区块链网关节点传来的待验证交易数据,会将该待验证交易数据转发至交易处理节点,交易处理节点依然需要对待验证交易数据进行验证处理,确定验证合法后才添加进交易池中。

步骤S202,若所述待验证交易数据的验证处理结果为验证合法结果,则将所述待验证交易数据添加进交易池中。

具体的,交易池中可以存储多条交易数据,每条交易数据均是交易处理节点验证合法后的才被添加进交易池中的。

步骤S203,当接收到区块处理节点发送的交易打包请求时,根据所述交易打包请求从所述交易池中获取一个或多个交易数据;所述交易处理节点和所述区块处理节点的硬件设备资源互相独立。

步骤S204,对所述一个或多个交易数据进行打包处理,得到交易数据包,将所述交易数据包发送给所述区块处理节点,以使所述区块处理节点根据所述交易数据包中的所述一个或多个交易数据生成提议区块。

具体的,交易处理节点负责交易数据的验证和存储,区块的生成、共识和记账交易处理节点无需负责。交易处理节点只需在接收到具有关联关系的区块处理节点发送的交易打包请求后,获取对应的一个或多个交易数据,然后打包成交易数据包发送给区块处理节点即可。区块处理节点接收到交易数据包后,会根据交易数据包中的一个或多个交易数据生成提议区块,然后对提议区块进行区块共识以及存入账本等一系列操作,具体可以参见上述图3所对应实施例中步骤S102到步骤S104的具体描述,这里不再进行赘述。

可选的,在区块处理节点对提议区块共识通过后,执行该提议区块,可以得到一个或多个交易数据对应的交易执行结果,随后区块处理节点将提议区块和交易执行结果写入区块链账本,区块处理节点会生成交易完成通知指令,然后将该交易完成通知指令发送给交易处理节点。交易处理节点接收到该交易完成通知指令后,会删除交易池中的一个或多个交易数据,将一个或多个交易数据添加进已上链交易缓冲池中。

可选的,当交易处理节点接收到终端设备生成的针对目标交易数据的交易查询请求,可以根据该交易查询请求,在已上链交易缓冲池中查找目标交易数据;若在已上链交易缓冲池中查找到目标交易数据,则将交易完成结果下发至终端设备;若在已上链交易缓冲池中未查找到目标交易数据,则从区块链账本中查找目标交易数据;若在区块链账本中查找到目标交易数据,则将目标交易数据添加进已上链交易缓冲池中,将交易完成结果下发至终端设备;若在区块链账本中未查找到目标交易数据,则将交易未完成结果下发至终端设备。

可选的,区块处理节点在对提议区块进行区块校验处理时,需要对提议区块中的交易数据进行校验,因此区块处理节点可以生成区块查询指令,然后发送给交易处理节点。交易处理节点会根据区块查询指令,对提议区块进行区块查询处理,得到区块校验结果。其中,区块校验结果包括校验通过结果或校验失败结果。其中,校验通过结果用于指示区块处理节点为提议区块生成共识通过投票;校验失败结果用于指示区块处理节点为提议区块生成共识失败投票。假设提议区块中包括交易数据M,则交易处理节点根据区块查询指令,对提议区块进行区块查询处理,得到区块校验结果的过程,可以为:根据区块查询指令,在交易池中查找交易数据M;若在交易池中查找到交易数据M,则确定交易数据M为有效交易数据;若未在交易池中查找到交易数据M,则对交易数据M进行验签和查重处理,得到交易数据M的验签和查重处理结果;若交易数据M的验签和查重处理结果为验证合法结果,则确定交易数据M为有效交易数据,否则确定交易数据M为无效交易数据。当交易处理节点确定完提议区块中的每个交易数据为有效交易数据还是无效交易数据后,若提议区块中的每个交易数据均为有效交易数据,则确定提议区块的区块查询结果为校验通过结果;若提议区块中存在一个或多个无效交易数据,则确定提议区块的区块查询结果为校验失败结果。

采用本申请实施例提供的方法,交易处理节点负责对接收到的待验证交易数据进行验证处理,得到待验证交易数据的验证处理结果,如果验证处理结果为验证合法结果,交易处理节点就将待验证交易数据添加进交易池中,因此,交易池可以存储有多个验证合法的交易数据,进一步地,当交易处理节点接收到区块处理节点的交易打包请求时,就从交易池中获取一个或多个交易数据打包成交易数据包发送给区块处理节点。由此可见,交易处理节点只需负责交易数据的验证处理和存储,可以减少区块链需实现的各功能同时执行时对资源的抢占而带来的系统调度的消耗,从而提高区块链性能。

进一步地,请参见图5,图5是本申请实施例提供的一种数据处理方法的整体交互示意图。如图5所示,区块链节点包含有区块链网关节点、交易处理节点1、交易处理节点2以及区块处理节点;可通信区块链节点包含有可通信区块链网关节点、可通信交易处理节点1、可通信交易处理节点2以及可通信区块处理节点。其中,区块链节点可以为上述图1所示的区块链节点集群100中的任一区块链节点,其余区块链节点均可以作为该区块链节点对应的可通信区块链节点。需要说明的是,一个区块链节点可以包含有一个或多个交易处理节点,这些交易处理节点是无状态的,可以同时工作,也可以仅有一个交易处理节点工作,剩余交易处理节点作为备选交易处理节点,在用于工作的交易处理节点发生故障时,顶替该交易处理节点继续工作。

如图5所示,终端设备可以将待验证交易数据发送至区块链网关节点,区块链网关节点接收到待验证交易数据后,会将待验证交易数据转发至交易处理节点。假设此时交易处理节点1处于工作状态,交易处理节点2处于备用状态,区块链网关节点会将待验证交易数据转发至交易处理节点1,交易处理节点1会将验证合法的待验证交易数据添加进交易池,具体验证处理过程可以参见上述图4所对应实施例中的步骤S201,这里不再进行赘述。当区块链节点作为出块节点时,区块处理节点和交易处理节点1之间会进行数据交互,生成提议区块,即区块处理节点向交易处理节点1发送交易打包请求,交易处理节点1将根据该交易打包请求,从交易池中获取一个或多个交易数据,然后打包成交易数据包,返回给区块处理节点,区块处理节点根据交易处理节点1发送的来自于交易池中的一个或多个交易数据,可以生成提议区块。区块处理节点和交易处理节点进行数据交互,生成提议区块的具体实现过程,可以参见上述图3所对应实施例中步骤S101和步骤S102的描述,这里不再进行赘述。区块处理节点会对提议区块进行签名处理,得到区块签名数据。区块处理节点会将提议区块和区块签名数据转发至区块链网关节点。

如图5所示,区块链网关节点接收到区块处理节点转发的区块签名数据和提议区块后,会获取可通信区块链网关节点的通信地址,然后基于该通信地址将区块签名数据以及提议区块转发至可通信区块链网关节点。可通信区块链网关节点在接收到区块签名数据以及提议区块,会基于该区块签名数据对提议区块进行共识投票,具体实现过程可以为:可通信区块链网关节点对该区块签名数据进行验签处理,如果验签成功,可通信区块链网关节点会向可通信交易处理节点1发送区块校验请求,然后等待可通信交易处理节点1返回的第一区块校验结果,可通信区块链网关节点会根据第一区块校验结果对提议区块进行投票,即若第一区块校验结果为校验通过结果,则为提议区块生成共识通过投票;若第一区块校验结果为交易失败结果,则为提议区块生成共识失败投票。同样的,区块处理节点生成提议区块后,也需要对该提议区块进行共识投票,区块处理节点可以向交易处理节点1发送区块校验请求,然后等待交易处理节点1返回的第二区块校验结果,区块处理节点会根据第二区块校验结果对提议区块进行投票,即若第二区块校验结果为校验通过结果,则为提议区块生成共识通过投票;若第二区块校验结果为交易失败结果,则为提议区块生成共识失败投票。最后,区块处理节点和可通信区块处理节点均会根据区块处理节点的投票结果和可通信区块链网关节点的投票结果,确定提议区块的共识处理结果,如果共识通过,区块处理节点和可通信区块处理节点均会执行该提议区块,得到交易执行结果,并将提议区块和交易执行结果写入各自的区块链账本中。上述可通信交易处理节点1得到第一区块校验结果和交易处理节点1得到第二区块校验结果的具体实现过程,均可以参见上述图4所对应实施例中的可选数据处理过程的具体描述,这里不再进行赘述。

上述可知,数据处理方法的整体交互过程中,区块链网关节点可以分别同终端设备、可通信区块链网关节点、交易处理节点以及区块处理节点进行数据交互。可选的,区块链网关节点可以在交易处理节点1故障时,启用备用的交易处理节点2替换掉交易处理节点1。如图5所示,区块链网关节点可以向交易处理节点1发送心跳消息,交易处理节点1接收到心跳消息就会生成应答消息,返回给区块链网关节点。若在目标时间段内区块链网关节点未接收到交易处理节点1的应答消息,则区块链网关节点可以将交易处理节点1确定为故障交易处理节点,选择第一备用交易处理节点,例如,交易处理节点2。当区块链网关节点接收到终端设备发送的新的待验证交易数据时,将新的待验证交易数据发送至第一备用交易处理节点,即交易处理节点2,不再发送给交易处理节点1。区块链网关节点可以按照固定频率向交易处理节点1发送心跳消息,比如五分钟发送一次心跳消息。交易处理节点1故障后区块链网关节点启用交易处理节点2,这个过程对于可通信区块链节点来说是透明的,不会影响可通信区块链节点的工作。

可选的,区块链网关节点也可以起到负载均衡器的作用,如图5所示,区块链网关节点可以监测交易处理节点1的负载情况,当交易处理节点1的负载情况为超载情况时,选择第二备用交易处理节点,例如,交易处理节点2。当区块链网关节点接收到终端设备发送的第一待验证交易数据和第二待验证交易数据时,区块链网关节点可以将第一待验证交易数据发送至交易处理节点1,将第二待验证交易数据发送至第二备用交易处理节点,即交易处理节点2。交易处理节点1会将验证合法的第一待验证交易数据添加进交易池,交易处理节点2会将验证合法的第二待验证交易数据添加进备用交易池。

进一步地,为了更好的理解上述数据处理方法中数据交互过程,请一并参见图6a-图6f,是本申请实施例提供的一种数据处理方法的局部交互示意图。

图6a是本申请实施例提供的一种区块链网关节点转发交易的交互示意图,如图6a所示,交易发起对象可以通过终端设备中的去中心化应用发起交易,终端设备生成交易,即待验证交易数据后,会发送给区块链网关,区块链网关接收到待验证交易数据后,会转发至交易处理节点,由交易处理节点对待验证交易数据进行交易验证。其中,交易验证包括交易验签和交易验重过程,通过验证的交易将存入交易池中。交易验证的具体实现可以参见上述图4所对应实施例中步骤S201-步骤S202的具体描述,这里不再进行赘述。

图6b是本申请实施例提供的一种区块链网关转发提议区块的交互示意图,如图6b所示,提议区块生成以后,区块处理节点需要通过区块链网关来将提议区块转发至可通信区块处理节点。可通信区块处理节点接收到提议区块后会对其进行区块校验,然后生成共识投票信息。同时,区块处理节点和可通信区块处理节点针对该提议区块的共识投票信息也需要通过区块链网关来转发。

图6c是本申请实施例提供的一种交易处理节点和区块处理节点完成区块校验的交互示意图,如图6c所示,区块处理节点接收到提议区块,会向交易处理节点发送一个区块查询指令,然后由交易处理节点对提议区块中的交易进行区块查询处理,得到区块校验结果。区块查询处理的具体过程可以参见上述图4所对应实施例中的可选方法的描述,这里不再进行赘述。需要说明的是,区块处理节点作为出块节点生成提议区块时,可以对生成的提议区块进行区块校验;可通信处理节点作为非出块节点,接收到提议区块时,所做的区块校验过程同区块处理节点可以相同。

图6d是本申请实施例提供的一种交易处理节点和区块处理节点完成区块打包的交互示意图,如图6d所示,区块处理节点作为出块节点时,会转发交易打包请求给交易处理节点,交易处理节点从交易池中捞出交易,打包并返回给区块处理节点,区块处理节点接力完成区块组装工作,包括填充prehash(区块哈希值), 区块签名等,得到提议区块。然后区块处理节点对提议区块进行区块广播、区块共识等操作,当该提议区块的共识处理结果为共识通过结果时,执行该提议区块,得到交易执行结果,将提议区块和交易执行结果写入区块链账本中。然后,区块处理节点会通知交易处理节点,交易处理节点收到通知后,会从交易池中将已经写入区块链账本中的交易删除,放入已上链交易缓冲池中,便于后续快速查询。

图6e是本申请实施例提供的一种交易查询的数据交互示意图,如图6e所示,终端设备通过去中心化应用生成交易查询请求后,会发送给区块链网关,区块链网关会将该交易查询请求转发给交易处理节点,交易处理节点首先检查待查询交易是否存在于交易缓冲池中,如存在,则直接返回交易完成结果,否则从帐本查询这个交易,如查到数据,则返回交易完成结果并将其存入交易缓冲池。

图6f是本申请实施例提供的一种多个小交易广播的数据交互示意图,如图6f所示,终端设备可以生成多个交易,即N个待验证交易数据,一起发送给区块链网关。其中,N为正整数。区块链网关会将N个待验证交易数据一起发送给交易处理节点,交易处理节点会对N个待验证交易数据进行验证,将验证合法的N个待验证交易数据添加进交易池中。然后,交易处理节点会从添加进交易池中的N个待验证交易数据中,选择L个待验证交易数据进行交易打包处理,得到广播交易包。其中,L为正整数,L个待验证交易数据的总数据容量小于可配置容量阈值。然后,交易处理节点会将广播交易包发送至可通信区块链网关节点,再由可通信区块链网关节点将该广播交易包转发至可通信交易处理节点。其中,交易处理节点将广播交易包发送至可通信区块链网关节点的过程,可以为:交易处理节点将广播交易包发送给区块链网关节点,区块链网关节点会获取可通信区块链网关节点的通信地址,基于该通信地址将广播交易包转发至可通信交易处理节点。可通信交易处理节点会将该广播交易包解压为L个待验证交易数据,然后按照正常交易处理流程对接收到的L个待验证交易数据进行验证,将验证合法的L个待验证交易数据添加进自己的交易池中。

采用本申请实施例提供的方法,将交易验证、交易广播等操作分配给交易处理节点来完成,将区块打包、区块共识、交易执行、存入账本等操作分配给区块处理节点来完成,两者采用独立的硬件资源,使得部分功能同时实现时相互间不会抢占硬件资源,同时添加进区块链网关节点来配合完成数据的转发,使得区块链架构清晰,服务划分更为明确,节点之间的数据交互过程有理有条,可以减少系统调度消耗,提高区块链性能。另外,本申请实施例中,交易处理节点可以将多个小交易打包进广播交易包中一起进行广播,减少消息头,减少网络传递的次数,可以提高消息传递效率。

进一步地,请参见图7,图7是本申请实施例提供的一种区块链交易处理的过程示意图。区块链交易处理涉及到终端设备(例如,上述图1所示的终端设备集群10中的任一终端设备)以及区块链网络中的区块链节点集群(例如,上述图1所示的区块链节点集群100),为方便后续说明,仅以区块链节点集群包括区块链节点A、区块链节点B以及区块链节点C为例进行说明。可以理解,每个区块链节点均可以由区块链网关节点、交易处理节点和区块处理节点组成,在区块链节点内部,区块链网关节点和交易处理节点之间可以互相进行通信,交易处理节点和区块处理节点之间可以互相进行通信,区块链网关节点和区块处理节点之间可以互相进行通信;区块链节点之间的通信由区块链网关节点来实现。如图7所示,区块链交易处理可以包括以下步骤:

步骤S71,交易生成。

具体的,终端设备可以通过去中心化应用生成交易(也可以称为交易数据,即上述图4所对应实施例中的待验证交易数据)。

步骤S72,交易传播。

具体的,终端设备会将交易发送给区块链网络中的某个区块链节点,比如区块链节点A,然后区块链节点A会将该交易广播给区块链网络中的其余区块链节点,即区块链节点B和区块链节点C。其中,终端设备将交易发送给区块链节点A,实际是将交易发送给区块链节点A的区块链网关节点,然后由区块链节点A的区块链网关节点转发至区块链节点A的交易处理节点,具体交互过程可以参见上述图6a所对应实施例的描述,这里不再进行赘述。其中,区块链节点A将交易广播至其余区块链节点的过程,可以参见上述图6f所对应实施例中的描述,这里不再进行赘述。

步骤S73,交易池验证。

具体的,区块链网络中的每个区块链节点均需要对获取到的交易进行交易验证。交易失败,则忽略该交易;交易成功,则将该交易存入交易池中。区块链节点对交易进行交易验证是通过交易处理节点来实现的,具体交易验证的过程可以参见上述图4所对应实施例中步骤S201-步骤S202的具体描述,这里不再进行赘述。

步骤S74,交易打包到区块。

具体的,出块节点需要从交易池中获取一个或多个交易,然后根据这一个或多个交易生成提议区块。出块节点可以为区块链网络中的任一区块链节点,如图7所示,假设区块链节点C为出块节点,则区块链节点C的交易处理节点和区块处理节点会共同完成提议区块的生成,具体交互实现过程可以参见上述图6d所对应实施例中的具体描述,这里不再进行赘述。

步骤S75,区块共识。

具体的,区块链节点C生成提议区块后,需要先将提议区块广播至其余区块链节点,即区块链节点C的区块处理节点会将提议区块广播至其余区块链节点的区块处理节点,具体实现过程可以参见上述图6b所对应实施例中的具体描述,这里不再进行赘述。然后,每个区块链节点的区块处理节点均会对该提议区块进行区块校验,得到区块校验结果。其中,区块校验过程的实现可以参见上述图6c所对应实施例中的描述,这里不再进行赘述。

具体的,倘若区块校验结果为校验通过结果,则区块链节点的区块处理节点会为提议区块生成共识通过投票;倘若区块校验结果为校验失败结果,则区块链节点的区块处理节点会为提议区块生成共识失败投票。然后,每个区块链节点的投票结果会广播至其余区块链节点。当为该提议区块生成共识通过投票的区块链节点的数量超过共识阈值时,则确定该提议区块的共识通过。

步骤S76,交易执行。

具体的,每个区块链节点确认提议区块的共识通过后,均会执行提议区块内的一个或多个交易,得到交易执行结果。如图7所示,交易执行是由区块处理节点来实现的。

步骤S77,存入账本。

具体的,每个区块链节点的区块处理节点会将提议区块和交易执行结果写入区块链账本中。

本申请实施例将区块链节点的各个功能划分到区块处理节点和交易处理节点中,各节点运行在单独的进程或者硬件设备中,使用独立的硬件资源,从而减少因各功能抢占系统硬件资源带来的系统调度而消耗的时间,从而提高区块链性能和吞吐量。

请参见图8,是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图8所示,该数据处理装置1可以包括:请求生成模块11、区块生成模块12、区块共识模块13以及区块执行模块14。

请求生成模块11,用于生成交易打包请求,将交易打包请求发送至交易处理节点,以使交易处理节点基于交易打包请求生成交易数据包;交易数据包包含一个或多个交易数据;一个或多个交易数据是经过交易处理节点验证合法后存入交易池中的交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

区块生成模块12,用于接收交易处理节点发送的交易数据包,根据交易数据包中的一个或多个交易数据生成提议区块;

区块共识模块13,用于对提议区块进行共识处理,得到共识处理结果;

区块执行模块14,用于若共识处理结果为共识通过结果,则执行提议区块,得到一个或多个交易数据对应的交易执行结果,将提议区块和交易执行结果写入区块链账本中。

其中,请求生成模块11、区块生成模块12、区块共识模块13以及区块执行模块14的具体实现方式,可以参见上述图3所对应实施例中步骤S101-步骤S104的描述,这里将不再进行赘述。

请参见图8,区块共识模块13可以包括:签名单元131、转发单元132、校验单元133以及确定单元134。

签名单元131,用于对提议区块进行签名处理,得到区块签名数据;

转发单元132,用于将区块签名数据以及提议区块转发至第一区块链网关节点,以使第一区块链网关节点获取第二区块链网关节点的通信地址,基于通信地址将区块签名数据以及提议区块转发至第二区块链网关节点;第二区块链网关节点用于将提议区块转发至可通信区块处理节点;可通信区块处理节点在对区块签名数据验签成功后,对提议区块进行区块校验处理,得到第一区块校验结果;

校验单元133,用于对提议区块进行区块校验处理,得到第二区块校验结果;

确定单元134,用于根据第一区块校验结果和第二区块校验结果,确定针对提议区块的共识处理结果。

其中,签名单元131、转发单元132、校验单元133以及确定单元134的具体实现方式,可以参见上述图3所对应实施例中步骤S103的描述,这里将不再进行赘述。

请参见图8,校验单元133可以包括:查询子单元1331以及接收子单元1332。

查询子单元1331,用于生成针对提议区块的区块查询指令;

查询子单元1331,还用于将区块查询指令发送至交易处理节点,以使交易处理节点根据区块查询指令对提议区块进行区块查询处理,得到第二区块校验结果;

接收子单元1332,用于接收交易处理节点发送的第二区块校验结果。

其中,查询子单元1331以及接收子单元1332的具体实现方式,可以参见上述图3所对应实施例中步骤S103的描述,这里将不再进行赘述。

请参见图8,上述数据处理装置1,还可以包括:通知发送模块15。

通知发送模块15,用于在将提议区块和交易执行结果写入区块链账本后,生成交易完成通知指令,将交易完成通知指令发送给交易处理节点,以使交易处理节点基于交易完成通知指令,删除交易池中的一个或多个交易数据,将一个或多个交易数据添加进已上链交易缓冲池中。

其中,通知发送模块15的具体实现方式,可以参见上述图3所对应实施例中步骤S104的可选描述,这里将不再进行赘述。

进一步地,请参见图9,图9是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,上述图8所对应实施例中的数据处理装置1可以应用于上述计算机设备9000,上述计算机设备9000可以包括:处理器9001,网络接口9004和存储器9005,此外,上述计算机设备9000还包括:用户接口9003,和至少一个通信总线9002。其中,通信总线9002用于实现这些组件之间的连接通信。其中,用户接口9003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口9003还可以包括标准的有线接口、无线接口。网络接口9004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器9005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器9005可选的还可以是至少一个位于远离前述处理器9001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器9005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图9所示的计算机设备9000中,网络接口9004可提供网络通讯功能;而用户接口9003主要用于为用户提供输入的接口;而处理器9001可以用于调用存储器9005中存储的设备控制应用程序,以实现:

生成交易打包请求,将交易打包请求发送至交易处理节点,以使交易处理节点基于交易打包请求生成交易数据包;交易数据包包含一个或多个交易数据;一个或多个交易数据是经过交易处理节点验证合法后存入交易池中的交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

接收交易处理节点发送的交易数据包,根据交易数据包中的一个或多个交易数据生成提议区块;

对提议区块进行共识处理,得到共识处理结果;

若共识处理结果为共识通过结果,则执行提议区块,得到一个或多个交易数据对应的交易执行结果,将提议区块和交易执行结果写入区块链账本中。

应当理解,本申请实施例中所描述的计算机设备1000可执行前文各个实施例中对该数据处理方法的描述,也可执行前文图8所对应实施例中对该数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,当上述处理器加载并执行上述计算机程序时,能够执行前文任一实施例对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。

进一步地,请参见图10,图10是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该数据处理装置2可以包括:交易验证模块21、交易添加模块22、请求接收模块23以及交易打包模块24。

交易验证模块21,用于获取待验证交易数据,对待验证交易数据进行验证处理,得到待验证交易数据的验证处理结果;

交易添加模块22,用于若待验证交易数据的验证处理结果为验证合法结果,则将待验证交易数据添加进交易池中;

请求接收模块23,用于当接收到区块处理节点发送的交易打包请求时,根据交易打包请求从交易池中获取一个或多个交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

交易打包模块24,用于对一个或多个交易数据进行打包处理,得到交易数据包,将交易数据包发送给区块处理节点,以使区块处理节点根据交易数据包中的一个或多个交易数据生成提议区块。

其中,交易验证模块21、交易添加模块22、请求接收模块23以及交易打包模块24的具体实现方式,可以参见上述图4所对应实施例中步骤S201-步骤S204的描述,这里将不再进行赘述。

请参见图10,交易验证模块21,可以包括:交易接收单元2101、验签单元2102、验重单元2103以及验证单元2104。

交易接收单元2101,用于接收第三区块链网关节点发送的待验证交易数据;第三区块链网关节点用于在接收到终端设备发送的待验证交易数据时,将待验证交易数据转发至交易处理节点;

交易接收单元2101,还用于接收第三区块链网关节点发送的与待验证交易数据相关联的交易签名数据;交易签名数据是终端设备通过交易发起对象的私钥对待验证交易数据进行签名得到的签名数据;

验签单元2102,用于获取交易发起对象的公钥,通过公钥对交易签名数据进行验签处理,得到验签结果;

验重单元2103,用于若验签结果为验签通过结果,则对待验证交易数据进行验重处理,得到验重处理结果;

验证单元2104,用于若验重处理结果为验重通过结果,则确定待验证交易数据的验证处理结果为验证合法结果。

其中,交易接收单元2101、验签单元2102、验重单元2103以及验证单元2104的具体实现方式,可以参见上述图4所对应实施例中步骤S201的描述,这里将不再进行赘述。

请参见图10,验重单元2103,可以包括:查找子单元21031以及验重处理子单元21032。

查找子单元21031,用于在区块链账本中查找待验证交易数据;

验重处理子单元21032,用于若在区块链账本中查找到待验证交易数据,则确定验重处理结果为验重不通过结果;

验重处理子单元21032,还用于若未在区块链账本中查找到待验证交易数据,则确定验重处理结果为验重通过结果。

其中,查找子单元21031以及验重处理子单元21032的具体实现方式,可以参见上述图4所对应实施例中步骤S201的描述,这里将不再进行赘述。

请参见图10,上述数据处理装置2,还可以包括:通知接收模块25以及通知执行模块26。

通知接收模块25,用于接收区块处理节点发送的交易完成通知指令;交易完成通知指令是区块处理节点在将提议区块和交易执行结果写入区块链账本后生成的;交易执行结果是区块处理节点在对提议区块共识通过后,执行提议区块,得到的一个或多个交易数据对应的交易执行结果;

通知执行模块26,用于根据交易完成通知指令,删除交易池中的一个或多个交易数据,将一个或多个交易数据添加进已上链交易缓冲池中。

其中,通知接收模块25以及通知执行模块26的具体实现方式,可以参见上述图4所对应实施例中步骤S204的可选描述,这里将不再进行赘述。

请参见图10,上述数据处理装置2,还可以包括:交易查询模块27。

交易查询模块27,用于接收终端设备生成的针对目标交易数据的交易查询请求,根据交易查询请求在已上链交易缓冲池中查找目标交易数据;

交易查询模块27,还用于若在已上链交易缓冲池中查找到目标交易数据,则将交易完成结果下发至终端设备;

交易查询模块27,还用于若在已上链交易缓冲池中未查找到目标交易数据,则从区块链账本中查找目标交易数据;

交易查询模块27,还用于若在区块链账本中查找到目标交易数据,则将目标交易数据添加进已上链交易缓冲池中,将交易完成结果下发至终端设备;

交易查询模块27,还用于若在区块链账本中未查找到目标交易数据,则将交易未完成结果下发至终端设备。

其中,交易查询模块27的具体实现方式,可以参见上述图4所对应实施例中步骤S204的可选描述,这里将不再进行赘述。

请参见图10,上述数据处理装置2,还可以包括:查询接收模块28、查询处理模块29以及结果发送模块210。

查询接收模块28,用于接收区块处理节点发送的区块查询指令;区块查询指令是区块处理节点在生成提议区块后生成的;

查询处理模块29,用于根据区块查询指令,对提议区块进行区块查询处理,得到区块校验结果;

结果发送模块210,用于将区块校验结果发送给区块处理节点,以使区块处理节点根据区块校验结果对提议区块进行共识投票。

其中,查询接收模块28、查询处理模块29以及结果发送模块210的具体实现方式,可以参见上述图4所对应实施例中步骤S204的描述,这里将不再进行赘述。

其中,区块校验结果包括校验通过结果或校验失败结果;校验通过结果用于指示区块处理节点为提议区块生成共识通过投票;校验失败结果用于指示区块处理节点为提议区块生成共识失败投票;提议区块包括交易数据M;

请参见图10,查询处理模块29,可以包括:数据查找单元291、数据确定单元292以及结果确定单元293。

数据查找单元291,用于根据区块查询指令,在交易池中查找交易数据M;

数据查找单元291,还用于若在交易池中查找到交易数据M,则确定交易数据M为有效交易数据;

数据查找单元291,还用于若未在交易池中查找到交易数据M,则对交易数据M进行验签和查重处理,得到交易数据M的验签和查重处理结果;

数据确定单元292,用于若交易数据M的验签和查重处理结果为验证合法结果,则确定交易数据M为有效交易数据,否则确定交易数据M为无效交易数据;

结果确定单元293,用于若提议区块中的每个交易数据均为有效交易数据,则确定提议区块的区块查询结果为校验通过结果;

结果确定单元293,还用于若提议区块中存在一个或多个无效交易数据,则确定提议区块的区块查询结果为校验失败结果。

其中,数据查找单元291、数据确定单元292以及结果确定单元293的具体实现方式,可以参见上述图4所对应实施例中步骤S204的可选描述,这里将不再进行赘述。

请参见图10,上述数据处理装置2,还可以包括:交易广播模块211。

交易广播模块211,用于从添加进交易池中的N个待验证交易数据中,选择L个待验证交易数据进行交易打包处理,得到广播交易包;L为正整数,L个待验证交易数据的总数据容量小于可配置容量阈值;

交易广播模块211,还用于将广播交易包发送至第四区块链网关节点,以使第四区块链网关节点获取第五区块链网关节点的通信地址,基于通信地址将广播交易包转发至第五区块链网关节点;第五区块链网关节点用于将广播交易包转发至可通信交易处理节点;可通信交易处理节点用于将广播交易包解压为L个待验证交易数据,对L个待验证交易数据验证合法后,将L个待验证交易数据添加进可通信交易处理节点所属的交易池中。

其中,交易广播模块211的具体实现方式,可以参见上述图6f所对应实施例的具体描述,这里将不再进行赘述。

进一步地,请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图。如图11所示,上述图10所对应实施例中的数据处理装置2可以应用于上述计算机设备2000,上述计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图11所示的计算机设备2000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:

获取待验证交易数据,对待验证交易数据进行验证处理,得到待验证交易数据的验证处理结果;

若待验证交易数据的验证处理结果为验证合法结果,则将待验证交易数据添加进交易池中;

当接收到区块处理节点发送的交易打包请求时,根据交易打包请求从交易池中获取一个或多个交易数据;交易处理节点和区块处理节点的硬件设备资源互相独立;

对一个或多个交易数据进行打包处理,得到交易数据包,将交易数据包发送给区块处理节点,以使区块处理节点根据交易数据包中的一个或多个交易数据生成提议区块。

应当理解,本申请实施例中所描述的计算机设备2000可执行前文各个实施例中对该数据处理方法的描述,也可执行前文图10所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置2所执行的计算机程序,当上述处理器加载并执行上述计算机程序时,能够执行前文任一实施例对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。

进一步地,请参见图12,图12是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图12所示,该数据处理装置3可以包括:第一交易转发模块31、区块接收模块32以及区块转发模块33。

第一交易转发模块31,用于接收终端设备发送的待验证交易数据,将待验证交易数据转发至交易处理节点,以使交易处理节点将验证合法的待验证交易数据添加进交易池;

区块接收模块32,用于接收区块处理节点转发的区块签名数据和提议区块;区块签名数据是区块处理节点对提议区块签名得到的;提议区块是区块处理节点根据交易处理节点发送的来自于交易池中的一个或多个交易数据生成的;

区块转发模块33,用于获取可通信区块链网关节点的通信地址,基于通信地址将区块签名数据以及提议区块转发至可通信区块链网关节点,以使可通信区块链网关节点将提议区块转发至可通信区块处理节点;可通信区块处理节点用于基于区块签名数据对提议区块进行共识投票。

其中,第一交易转发模块31、区块接收模块32以及区块转发模块33的具体实现方式,可以参见上述图5所对应实施例的具体描述,这里将不再进行赘述。

请参见图10,上述数据处理装置3,还可以包括:心跳发送模块34、应答响应模块35以及第二交易转发模块36。

心跳发送模块34,用于向交易处理节点发送心跳消息,以使交易处理节点基于心跳消息生成应答消息;

应答响应模块35,用于若在目标时间段内未接收到交易处理节点的应答消息,则将交易处理节点确定为故障交易处理节点,选择第一备用交易处理节点;

第二交易转发模块36,用于当接收到终端设备发送的新的待验证交易数据时,将新的待验证交易数据发送至第一备用交易处理节点。

其中,心跳发送模块34、应答响应模块35以及第二交易转发模块36的具体实现方式,可以参见上述图5所对应实施例的具体描述,这里将不再进行赘述。

请参见图10,上述数据处理装置3,还可以包括:节点监测模块37、节点选择模块38以及第三交易转发模块39。

节点监测模块37,用于监测交易处理节点的负载情况;

节点选择模块38,用于当交易处理节点的负载情况为超载情况时,选择第二备用交易处理节点;

第三交易转发模块39,用于当接收到终端设备发送的第一待验证交易数据和第二待验证交易数据时,将第一待验证交易数据发送至交易处理节点,以使交易处理节点将验证合法的第一待验证交易数据添加进交易池;

第三交易转发模块39,还用于将第二待验证交易数据发送至第二备用交易处理节点,以使第二备用交易处理节点将验证合法的第二待验证交易数据添加进备用交易池。

其中,节点监测模块37、节点选择模块38以及第三交易转发模块39的具体实现方式,可以参见上述图5所对应实施例的具体描述,这里将不再进行赘述。

进一步地,请参见图13,图13是本申请实施例提供的另一种计算机设备的结构示意图。如图13所示,上述图12所对应实施例中的数据处理装置3可以应用于上述计算机设备3000,上述计算机设备3000可以包括:处理器3001,网络接口3004和存储器3005,此外,上述计算机设备3000还包括:用户接口3003,和至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,用户接口3003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口3003还可以包括标准的有线接口、无线接口。网络接口3004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器3005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器3005可选的还可以是至少一个位于远离前述处理器3001的存储装置。如图13所示,作为一种计算机可读存储介质的存储器3005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图13所示的计算机设备3000中,网络接口3004可提供网络通讯功能;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序,以实现:

接收终端设备发送的待验证交易数据,将待验证交易数据转发至交易处理节点,以使交易处理节点将验证合法的待验证交易数据添加进交易池;

接收区块处理节点转发的区块签名数据和提议区块;区块签名数据是区块处理节点对提议区块签名得到的;提议区块是区块处理节点根据交易处理节点发送的来自于交易池中的一个或多个交易数据生成的;

获取可通信区块链网关节点的通信地址,基于通信地址将区块签名数据以及提议区块转发至可通信区块链网关节点,以使可通信区块链网关节点将提议区块转发至可通信区块处理节点;可通信区块处理节点用于基于区块签名数据对提议区块进行共识投票。

应当理解,本申请实施例中所描述的计算机设备2000可执行前文各个实施例中对该数据处理方法的描述,也可执行前文图10所对应实施例中对该数据处理装置3的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置3所执行的计算机程序,当上述处理器加载并执行上述计算机程序时,能够执行前文任一实施例对上述访问控制方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。

上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文任一个所对应实施例提供的方法。

本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:区块链对接平台的监测方法、区块链对接平台和电子装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!