一种基于区块链生成区块的方法以及系统技术方案

技术编号:17304258 阅读:27 留言:0更新日期:2018-02-18 22:07
本发明专利技术提供一种基于区块链生成区块的方法、系统、计算机设备以及计算机可读存储介质,涉及数据处理技术领域。所述方法包括共识节点接收交易发送节点发送的多个交易信息,放入交易池中;从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;启动多线程逐包进行并行处理,得到交易处理结果;根据所述交易处理结果生成区块。本发明专利技术极大提高了区块链系统的处理效率,使单线程的运行速度不再是区块链系统的性能瓶颈。

A method and system for generating blocks based on block chains

The invention provides a method, system, computer equipment and computer readable storage medium based on block chain to generate blocks, and relates to the field of data processing technology. A plurality of transaction information including consensus node receives sending node sends the transaction method into the transaction pool; obtain the plurality of transaction information from the transaction in the pool, the plurality of transaction information packed into multiple packages; starting multi thread packet parallel processing, transaction processing according to the obtained results; the transaction processing result generation block. The invention greatly improves the processing efficiency of block chain system, and makes the running speed of single thread no longer the performance bottleneck of block chain system.

【技术实现步骤摘要】
一种基于区块链生成区块的方法以及系统
本专利技术关于数据处理
,特别是关于区块链系统的生成技术,具体的讲是一种基于区块链生成区块的方法、基于区块链生成区块的系统、计算机设备以及计算机可读存储介质。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。目前,性能是区块链系统的一大弱点,其主要原因在于区块链系统中往往存在很多影响整体性能的关键路径上都采用了串行架构,比如区块的生成过程。在不同共识机制下,区块的生成过程会略有不同。但总体来说,各节点在处理接收到的区块信息后,交易过程大致都是按照如下流程:①节点接收到若干交易信息,放入交易池中;②节点从交易池中获取当前收到的交易信息,对交易进行排序并按顺序执行;③执行完毕之后,节点生成完整区块,最终将其广播。在第二步执行交易的过程中,传统的区块链系统交易按顺序逐笔执行,每笔交易在执行完毕后才会执行下一笔交易。这样的串行架构导致区块链系统无法有效利用现在多线程计算的优势。因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。
技术实现思路
有鉴于此,本专利技术提供了一种基于区块链生成区块的方法、基于区块链生成区块的系统、计算机设备以及计算机可读存储介质,通过将从交易池中获取多个交易信息打包为多个包,然后启动多线程逐包进行并行处理,得到交易处理结果,最后根据交易处理结果生成区块,极大提高了区块链系统的处理效率。为了实现上述目的,本专利技术提供了一种基于区块链生成区块的方法,所述方法包括:共识节点接收交易发送节点发送的多个交易信息,放入交易池中;从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;启动多线程逐包进行并行处理,得到交易处理结果;根据所述交易处理结果生成区块。在本专利技术的优选实施方式中,将所述多个交易信息打包为多个包包括:获取所述多个交易信息的交易复杂度;获取所述共识节点所在服务器的性能指标;根据所述交易复杂度以及所述性能指标将所述多个交易信息打包为多个包。在本专利技术的优选实施方式中,启动多线程逐包进行并行处理,得到交易处理结果包括:启动多线程,逐包按顺序将各个包中的多个交易并行处理,产生交易处理结果。在本专利技术的优选实施方式中,所述方法在得到交易处理结果后,根据所述交易处理结果生成区块之前,还包括:检查所述交易处理结果,确定出是否发生死锁;当发生死锁时,根据所述交易处理结果获取出发生死锁的交易信息;将所述发生死锁的交易信息进行串行处理,得到执行结果;将所述执行结果添加至所述交易处理结果。在本专利技术的优选实施方式中,检查所述交易处理结果,确定出是否发生死锁包括:获取预先设定的所述交易信息的执行时间阈值;获取所述交易信息的实际执行时间;判断所述实际执行时间是否超出所述执行时间阈值;当判断为是时,确定并行处理过程中发生死锁。在本专利技术的优选实施方式中,根据所述交易处理结果生成区块后,所述方法还包括:广播所述区块。本专利技术的目的之一是,提供了一种基于区块链生成区块的系统,所述系统包括:交易信息接收模块,用于接收交易发送节点发送的多个交易信息,放入交易池中;交易信息打包模块,用于从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;交易信息处理模块,用于启动多线程逐包进行并行处理,得到交易处理结果;区块生成模块,用于根据所述交易处理结果生成区块。在本专利技术的优选实施方式中,所述交易信息打包模块包括:复杂度获取模块,用于获取所述多个交易信息的交易复杂度;性能指标获取模块,用于获取所述共识节点所在服务器的性能指标;信息打包模块,用于根据所述交易复杂度以及所述性能指标将所述多个交易信息打包为多个包。在本专利技术的优选实施方式中,所述交易信息处理模块用于启动多线程,逐包按顺序将各个包中的多个交易并行处理,产生交易处理结果。在本专利技术的优选实施方式中,所述系统还包括死锁检查模块,包括:处理结果检查模块,用于检查所述交易处理结果,确定出是否发生死锁;交易信息确定模块,用于当所述处理结果检查模块确定发生死锁时,根据所述交易处理结果获取出发生死锁的交易信息;交易串行处理模块,用于将所述发生死锁的交易信息进行串行处理,得到执行结果;执行结果添加模块,用于将所述执行结果添加至所述交易处理结果。在本专利技术的优选实施方式中,所述处理结果检查模块包括:时间阈值获取模块,用于获取预先设定的所述交易信息的执行时间阈值;执行时间获取模块,用于获取所述交易信息的实际执行时间;执行时间判断模块,用于判断所述实际执行时间是否超出所述执行时间阈值;死锁确定模块,用于当所述执行时间判断模块判断为是时,确定并行处理过程中发生死锁。在本专利技术的优选实施方式中,根所述系统还包括:区块广播模块,用于广播所述区块。本专利技术的目的之一是,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现一种基于区块链生成区块的方法。本专利技术的目的之一是,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行一种基于区块链生成区块的方法。本专利技术的有益效果在于,提供了一种基于区块链生成区块的方法、基于区块链生成区块的系统、计算机设备以及计算机可读存储介质,通过将从交易池中获取多个交易信息打包为多个包,然后启动多线程逐包进行并行处理,得到交易处理结果,最后根据交易处理结果生成区块,极大提高了区块链系统的处理效率,使单线程的运行速度不再是区块链系统的性能瓶颈。为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种基于区块链生成区块的系统的结构示意图;图2为本专利技术实施例提供的一种基于区块链生成区块的系统中交易信息打包模块的结构示意图;图3为本专利技术实施例提供的一种基于区块链生成区块的系统中死锁检查模块的结构示意图;图4为本专利技术实施例提供的一种基于区块链生成区块的系统中处理结果检查模块的结构示意图;图5为本专利技术实施例提供的一种基于区块链生成区块的系统的实施方式二的结构示意图;图6为本专利技术实施例提供的一种基于区块链生成区块的方法的流程图;图7为图6中的步骤S102的部分具体流程示意图;图8为本专利技术实施例提供的一种基于区块链生成区块的方法的实施方式二的流程图;图9为图8中的步骤S304的具体流程示意图;图10为图9中的步骤S401的具体流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本领域技术技术人员知道,本专利技术的实施方式可以实现为一种系统、装置、方法或计算机程序产品。因此,本专利技术公开可以具体实现为以下形本文档来自技高网...
一种基于区块链生成区块的方法以及系统

【技术保护点】
一种基于区块链生成区块的方法,其特征是,所述方法包括:共识节点接收交易发送节点发送的多个交易信息,放入交易池中;从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;启动多线程逐包进行并行处理,得到交易处理结果;根据所述交易处理结果生成区块。

【技术特征摘要】
1.一种基于区块链生成区块的方法,其特征是,所述方法包括:共识节点接收交易发送节点发送的多个交易信息,放入交易池中;从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;启动多线程逐包进行并行处理,得到交易处理结果;根据所述交易处理结果生成区块。2.根据权利要求1所述的方法,其特征是,将所述多个交易信息打包为多个包包括:获取所述多个交易信息的交易复杂度;获取所述共识节点所在服务器的性能指标;根据所述交易复杂度以及所述性能指标将所述多个交易信息打包为多个包。3.根据权利要求2所述的方法,其特征是,启动多线程逐包进行并行处理,得到交易处理结果包括:启动多线程,逐包按顺序将各个包中的多个交易并行处理,产生交易处理结果。4.根据权利要求3所述的方法,其特征是,所述方法在得到交易处理结果后,根据所述交易处理结果生成区块之前,还包括:检查所述交易处理结果,确定出是否发生死锁;当发生死锁时,根据所述交易处理结果获取出发生死锁的交易信息;将所述发生死锁的交易信息进行串行处理,得到执行结果;将所述执行结果添加至所述交易处理结果。5.根据权利要求4所述的方法,其特征是,检查所述交易处理结果,确定出是否发生死锁包括:获取预先设定的所述交易信息的执行时间阈值;获取所述交易信息的实际执行时间;判断所述实际执行时间是否超出所述执行时间阈值;当判断为是时,确定并行处理过程中发生死锁。6.根据权利要求3或4所述的方法,其特征是,根据所述交易处理结果生成区块后,所述方法还包括:广播所述区块。7.一种基于区块链生成区块的系统,其特征是,所述系统包括共识节点,包括:交易信息接收模块,用于接收交易发送节点发送的多个交易信息,放入交易池中;交易信息打包模块,用于从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;交易信息处理模块,用于启动多线程逐包进...

【专利技术属性】
技术研发人员:张航王继武张国华
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京,11

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

1