区块链数据并行处理方法、装置、设备和存储介质制造方法及图纸

技术编号:19215714 阅读:4 留言:0更新日期:2018-10-20 06:43
本发明专利技术实施例提供了一种区块链数据并行处理方法、装置、设备及存储介质。其中,该方法包括:从当前待处理逻辑处理请求的任务队列中,确定下一个待处理逻辑处理请求;识别所述下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间的依赖关系;如果不存在依赖关系,则启动所述下一个待处理逻辑处理请求与当前处理中逻辑处理请求的并行处理;如果存在依赖关系,则等待所述依赖关系消除后启动对所述下一个待处理逻辑处理请求的处理。本发明专利技术实施例,在兼顾逻辑处理请求的依赖关系的同时,实现了部分逻辑处理请求的并行处理,提高了处理效率。

【技术实现步骤摘要】
区块链数据并行处理方法、装置、设备和存储介质
本专利技术实施例涉及区块链数据处理技术,尤其涉及一种区块链数据并行处理方法、装置、设备和存储介质。
技术介绍
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链技术的一个典型应用场景是交易,主要解决的交易的信任和安全问题,所以其中一个显著特点是分布式账本。具体是,在区块链系统中的节点,将一定时间内的交易请求或者一定数量的交易请求,交付给当前具有记账权的节点;记账节点对交易请求进行诸如信息转换、格式调整、或代码运行等处理,形成账本数据,而后将多个账本数据打包形成区块;记账节点将区块发送给区块链系统中的其他节点,其他节点进行同样的处理过程,以验证处理结果得到的区块是否与接收到的区块一致,若一致则认可该区块并存储,否则不认可该区块并丢弃。当然,区块链技术不限于处理交易请求,还可以处理其他逻辑处理请求,形成事务数据,打包到区块中。现有技术中,节点对大量逻辑处理请求进行处理形成区块或进行验证时,会存在部分逻辑处理请求之间存在依赖关系的情况,若存在依赖关系的逻辑处理请求被同时处理或处理顺序错误,则可能导致最终产生的事务数据和区块错误。现有技术为了避免因依赖关系而导致的处理中止或错误,可采用按逻辑处理请求的接收顺序、时间顺序等对逻辑处理请求逐一进行串行处理。显然,该方案串行处理所需时间长,若节点具有多核处理器时也无法发挥出处理能力的优势,会浪费资源。
技术实现思路
本专利技术实施例提供一种区块链数据并行处理方法、装置、设备和存储介质,实现了逻辑处理请求的并行处理,提高了处理效率。第一方面,本专利技术实施例提供了一种区块链数据并行处理方法,该方法包括:从当前待处理逻辑处理请求的任务队列中,确定下一个待处理逻辑处理请求;识别所述下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间的依赖关系;如果不存在依赖关系,则启动所述下一个待处理逻辑处理请求与当前处理中逻辑处理请求的并行处理;如果存在依赖关系,则等待所述依赖关系消除后启动对所述下一个待处理逻辑处理请求的处理。第二方面,本专利技术实施例还提供了一种区块链数据并行处理装置,该装置包括:逻辑处理请求确定模块,用于从当前待处理逻辑处理请求的任务队列中,确定下一个待处理逻辑处理请求;依赖关系识别模块,用于识别所述下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间的依赖关系;处理模块,用于如果不存在依赖关系,则启动所述下一个待处理逻辑处理请求与当前处理中逻辑处理请求的并行处理;所述处理模块还用于如果存在依赖关系,则等待所述依赖关系消除后启动对所述下一个待处理逻辑处理请求的处理。第三方面,本专利技术实施例还提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意所述的区块链数据并行处理方法。第四方面,本专利技术实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意所述的区块链数据并行处理方法。本专利技术实施例提供的区块链数据并行处理方法、装置、设备及存储介质,通过将待处理逻辑处理请求与处理中逻辑处理请求的依赖性进行精准识别,为逻辑处理请求之间依赖关系识别提供了新思路,解决了现有技术中因依赖关系识别错误导致的处理中止或错误的问题,在兼顾逻辑处理请求的依赖关系的同时,实现了部分逻辑处理请求的并行处理,提高了处理效率。附图说明图1是本专利技术实施例一中提供的一种区块链数据并行处理方法的流程图;图2是本专利技术实施例二中提供的一种区块链数据并行处理方法的流程图;图3是本专利技术实施例三中提供的一种区块链数据并行处理方法的流程图;图4是本专利技术实施例四中提供的一种区块链数据并行处理方法的流程图;图5是本专利技术实施例五中提供的一种区块链数据并行处理装置的结构示意图;图6是本专利技术实施例六中提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种区块链数据的并行处理方法的流程图。该方法应用于区块链系统中的节点,区块链可以是公有链、联盟链或私有链,区块链系统通常都会包括多个节点,各个节点按照设定规则会竞争取得区块生成权,成为区块生成节点。本专利技术实施例的方案可以适用于区块生成节点进行区块生成过程的逻辑处理请求并行处理,也可以适用于其他的区块记录节点对区块进行验证过程中并行处理逻辑处理请求。该方法可以由本专利技术实施例提供的区块链数据并行处理装置来执行,该装置可采用软件和/或硬件的方式实现,并可集成于承载区块链系统节点的计算设备中。参见图1,该方法具体包括:S110,从当前待处理逻辑处理请求的任务队列中,确定下一个待处理逻辑处理请求。其中,待处理逻辑处理请求为区块链系统中的一段时间内待处理的交易请求或其他待处理事物请求如待版权登记信息处理请求等。任务队列是指将区块链系统中当前待处理逻辑处理请求按照一定顺序确定的队列。即,在S110之前,还包括将当前待处理逻辑处理请求按请求发生顺序、接收时间顺序、或转账金额手续费顺序进行排列,得到当前待处理逻辑处理请求的任务队列。队列顺序具体可以按照节点接收到逻辑处理请求的接收时间顺序,或按照逻辑处理请求中记录的请求产生的时间顺序,也可以按照转账金额手续费的数额大小顺序进行排序。当然,实际应用中也可采用其他顺序,例如随机顺序,只要最终能够确定具有一定顺序的任务队列即可。示例性的,节点处理器中配置有任务分配游标,该任务分配游标设置于当前待处理逻辑处理请求的任务处理队列上,沿任务队列顺序移动。当任务分配游标当前指向的逻辑处理请求被处理时,任务分配游标移动至下一个逻辑处理请求处。需要说明的是,节点启动记账处理时,控制任务分配游标首先定位于第一个逻辑处理请求处。S120,识别下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间是否存在依赖关系。如果不存在依赖关系,则执行步骤S130;如果存在依赖关系,则执行步骤S140。其中,当前处理中的逻辑处理请求是指当前处于处理状态的逻辑处理请求,该逻辑处理请求可以是一个或多个。对于交易请求,按照交易请求的数据展现方式和记账处理方式,可分为比特币形式或以太坊方式等。可以通过对交易请求数据本身的分析来确定交易请求之间的依赖关系,也可以识别或估测交易请求的特点,从而估测交易请求之间的依赖性关系。例如,对于比特币方式的交易请求,以比特币的流入和流出体现每笔交易请求,字段内容的可读性比较强,可根据每笔交易请求的数据字段和内容识别出各交易请求之间的依赖关系,例如通过流出账户地址来识别。示例性的,从各待处理交易请求中识别设定字段内容,根据各设定字段内容确定下一个待处理交易请求,与当前处理中交易请求之间的依赖关系。其中,设定字段内容为流出账户地址,且流出账户地址相同的两个交易请求之间确定为存在依赖关系。再例如,对于以太坊方式的交易请求,可以通过解析代码段中的特定内容,获取交易请求的某个交易属性,如交易货币的类型。若货币类型不相同,则可本文档来自技高网...

【技术保护点】
1.一种区块链数据并行处理方法,应用于区块链系统中的节点,其特征在于,包括:从当前待处理逻辑处理请求的任务队列中,确定下一个待处理逻辑处理请求;识别所述下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间的依赖关系;如果不存在依赖关系,则启动所述下一个待处理逻辑处理请求与当前处理中逻辑处理请求的并行处理;如果存在依赖关系,则等待所述依赖关系消除后启动对所述下一个待处理逻辑处理请求的处理。

【技术特征摘要】
1.一种区块链数据并行处理方法,应用于区块链系统中的节点,其特征在于,包括:从当前待处理逻辑处理请求的任务队列中,确定下一个待处理逻辑处理请求;识别所述下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间的依赖关系;如果不存在依赖关系,则启动所述下一个待处理逻辑处理请求与当前处理中逻辑处理请求的并行处理;如果存在依赖关系,则等待所述依赖关系消除后启动对所述下一个待处理逻辑处理请求的处理。2.根据权利要求1所述的方法,其特征在于,从当前待处理逻辑处理请求的任务队列中,确定下一个待处理逻辑处理请求之前,还包括:将当前待处理逻辑处理请求按请求发生顺序、接收时间顺序、或转账金额手续费顺序进行排列,得到当前待处理逻辑处理请求的任务队列。3.根据权利要求1所述的方法,其特征在于,识别所述下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间的依赖关系,包括:根据状态哈希表中记录的当前处理中逻辑处理请求的哈希值查找对应的至少一个逻辑处理请求;识别所述下一个待处理逻辑处理请求与当前处理中逻辑处理请求之间的依赖关系。4.根据权利要求1所述的方法,其特征在于,识别所述下一个待处理逻辑处理请求,与当前处理中逻辑处理请求之间的依赖关系,包括:根据所述下一个待处理逻辑处理请求的调整变量,在状态哈希表中查找相同的变量;将相同变量所对应的逻辑处理请求确定为存在依赖关系的逻辑处理请求;其中,所述状态哈希表中包括当前处理中逻辑处理请求的至少一个键值对,每个所述键值对包括逻辑处理请求的哈希值和一个调整变量。5.根据权利要求3或4所述的方法,其特征在于,如果存在依赖关系,则等待所述依赖关系消除后启动对所述下一个待处理逻辑处理请求的处理,包括:如果存在依赖关系,则将所述下一个待处理逻辑处理请求添加至监听队列;当前处理中逻辑处理请求处理完毕时,将对应的哈希值或键值对从状态哈希表中清除,并激活监听队列;从监听队列中提取所述下一个待处理逻辑处理请求,返回执行所述下一个待处理逻辑处理请求与当前处理中逻辑处理请...

【专利技术属性】
技术研发人员:肖伟
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1