本发明专利技术公开一种区块链平台的区块流水线执行方法,该方法包括:区块链平台对于一批待执行的交易,首先进行交易的验签,再进行交易的执行,然后进行世界状态Hash的计算,将Hash以及执行结果经过后续的共识后生成区块。与此同时,第一线程任务、第二线程任务、第三线程任务可连续执行交易的验签、交易的执行、Hash的计算,即本发明专利技术的方法实现了区块的流水线执行,将区块执行的过程拆成多个部分,然后并行执行,从而提升了区块链节点的执行效率。
A block pipeline execution method for blockchain platform
【技术实现步骤摘要】
一种区块链平台的区块流水线执行方法
本专利技术涉及去中心化区块链区块交易执行过程的设计领域,尤其涉及一种区块链平台的区块流水线执行方法。
技术介绍
区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改;区块是一个一个的存储单元,区块链由一个个区块“链接”而成,区块中包含执行的交易,区块的Hash值,世界状态的Hash值等信息。对于区块链平台,对于受到的交易会经过定序,得到一批交易,这批交易在执行完成,经过结果共识后最终会生成一个区块。传统联盟区块链在一批区块交易的执行都是串行的,也就是说在这批交易没有执行完成之前是无法处理下一批交易的。对于当前绝大部分计算机来说,都拥有多个cpu核心,而当前的串行执行并没有很好的利用这一特点,如果能将区块交易执行并行起来,将会极大的提高区块链的执行效率,充分发挥计算机的多核特性,从而提升区块链的性能。
技术实现思路
针对现有技术存在的问题,本专利技术提出了一种区块链平台的区块流水线执行方法,能够将区块执行的过程进行拆分,各个过程并行执行,从而充分发挥计算机的多核特性,提高区块链平台性能。本专利技术的目的是通过以下技术方案实现的:一种区块链平台的区块流水线执行方法,其特征在于,该方法具体包括如下步骤:步骤一:在区块链平台启动时,开启第一线程任务、第二线程任务、第三线程任务,所述第一线程任务用于一批交易的验签,所述第二线程任务用于一批交易的执行、所述第三线程任务用于一批交易执行完成后世界状态Hash的计算。步骤二:区块链平台对于一批待执行的交易,首先进入第一线程任务,进行交易的验签,即验证交易的签名是否合法,如果签名验证不合法直接将其标记为非法交易,跳过第二线程任务、第三线程任务,而对于签名验证合法的交易,将其传入第二线程任务进行交易的执行;步骤三:第二线程任务收到第一线程任务抛入的一批交易之后,对这批交易进行执行,此执行过程根据交易内容进行真正的执行,如调用虚拟机进行合约的执行,对区块链上的数据进行修改。交易执行完成后,将对区块链上数据修改的结果以及执行结果移交给第三线程任务。步骤四:第三线程任务收到区块链数据修改的结果后,依据其进行世界状态Hash的计算,得到当前世界状态的Hash值,然后将Hash以及执行结果经过后续的共识后生成区块。进一步地,所述的步骤一中,三个线程任务必须在区块链平台启动完成时就已经开启完毕;进一步地,所述的步骤二中,在交易验签的线程任务将当前批交易验签结束,将验签完成的交易传入下一个线程任务执行后,交易验签的线程可以立即进行下一批交易的验签;进一步地,所述的步骤三中,在将交易执行线程将交易执行完毕,将结果移交给世界状态Hash计算的线程任务后,交易执行线程可以立即进行下一批已经验证完成的交易的执行。进一步地,所述的步骤四中,世界状态Hash计算线程处理完当前批交易执行结束后的世界状态计算后,可以立即进行下一批交易执行结束后的世界状态计算。与现有技术相比,本专利技术的有益效果如下:本专利技术的区块链平台的区块流水线执行应用于有区块执行过程的区块链平台上,当前的区块链平台的区块执行完全是顺序执行的,即一个区块完全执行完成,进行下一阶段之后才能进行下一个区块的执行。相比于现有技术,本专利技术将区块的执行过程进行更加细粒度的拆分为多部分,然后将这多个部分进行流水线并行执行。本专利技术能够通过充分利用计算机的多核特性,大大提升区块链平台的性能。附图说明图1是本专利技术的区块执行流水线的时空图。具体实施方式为了使本专利技术的目的和效果将变得更加明白,下面结合附图和详细描述本专利技术。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1为本专利技术区块执行流水线时空图,该方法为基于Java智能合约的并行执行方法,所述智能合约包含跨合约调用的注解,该方法具体包括如下步骤:步骤一:在区块链平台启动时,在区块链平台启动时,开启第一线程任务、第二线程任务、第三线程任务,所述第一线程任务用于一批交易的验签,所述第二线程任务用于一批交易的执行、所述第三线程任务用于一批交易执行完成后世界状态Hash的计算。第一线程任务、第二线程任务、第三线程任务必须在区块链平台启动完成时就已经开启完毕。开启多线程是并行的前提。步骤二:区块链平台对于一批待执行的交易,首先进入第一线程任务,进行交易的验签,即验证交易的签名是否合法,如果签名验证不合法直接将其标记为非法交易,跳过第二线程任务、第三线程任务,而对于签名验证合法的交易,将其传入第二线程任务进行交易的执行。第一线程任务将当前批交易验签结束,验签完成的交易传入第二线程任务执行后,第一线程任务进行下一批交易的验签,这样同时刻下,就可以并行处理验签和执行。步骤三:第二线程任务收到第一线程任务抛入的一批交易之后,对这批交易进行执行,此执行过程根据交易内容进行真正的执行,如调用虚拟机进行合约的执行,对区块链上的数据进行修改。交易执行完成后,将对区块链上数据修改的结果以及执行结果移交给第三线程任务。第二线程任务将交易执行完毕,执行结果移交给第三线程任务后,第二线程任务进行下一批已经验证完成的交易的执行。步骤四:第三线程任务收到区块链数据修改的结果后,依据其进行世界状态Hash的计算,得到当前世界状态的Hash值,然后将Hash以及执行结果经过后续的共识后生成区块。第三线程任务处理完当前批交易执行结束后的世界状态计算后,进行下一批交易执行结束后的世界状态计算。本专利技术将区块的执行过程进行更加细粒度的拆分为多部分,然后将这多个部分进行流水线并行执行,能够通过充分利用计算机的多核特性,大大提升区块链平台的性能。本领域普通技术人员可以理解,以上所述仅为专利技术的优选实例而已,并不用于限制专利技术,尽管参照前述实例对专利技术进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在专利技术的精神和原则之内,所做的修改、等同替换等均应包含在专利技术的保护范围之内。本文档来自技高网...
【技术保护点】
1.一种区块链平台的区块流水线执行方法,其特征在于,具体包括如下步骤:/n步骤一:在区块链平台启动时,开启第一线程任务、第二线程任务、第三线程任务,所述第一线程任务用于一批交易的验签,所述第二线程任务用于一批交易的执行、所述第三线程任务用于一批交易执行完成后世界状态Hash的计算。/n步骤二:区块链平台对于一批待执行的交易,首先进入第一线程任务,进行交易的验签,即验证交易的签名是否合法,如果签名验证不合法直接将其标记为非法交易,跳过第二线程任务、第三线程任务,而对于签名验证合法的交易,将其传入第二线程任务进行交易的执行;/n步骤三:第二线程任务收到第一线程任务抛入的一批交易之后,对这批交易进行执行,此执行过程根据交易内容进行真正的执行,如调用虚拟机进行合约的执行,对区块链上的数据进行修改。交易执行完成后,将对区块链上数据修改的结果以及执行结果移交给第三线程任务。/n步骤四:第三线程任务收到区块链数据修改的结果后,依据其进行世界状态Hash的计算,得到当前世界状态的Hash值,然后将Hash以及执行结果经过后续的共识后生成区块。/n
【技术特征摘要】
1.一种区块链平台的区块流水线执行方法,其特征在于,具体包括如下步骤:
步骤一:在区块链平台启动时,开启第一线程任务、第二线程任务、第三线程任务,所述第一线程任务用于一批交易的验签,所述第二线程任务用于一批交易的执行、所述第三线程任务用于一批交易执行完成后世界状态Hash的计算。
步骤二:区块链平台对于一批待执行的交易,首先进入第一线程任务,进行交易的验签,即验证交易的签名是否合法,如果签名验证不合法直接将其标记为非法交易,跳过第二线程任务、第三线程任务,而对于签名验证合法的交易,将其传入第二线程任务进行交易的执行;
步骤三:第二线程任务收到第一线程任务抛入的一批交易之后,对这批交易进行执行,此执行过程根据交易内容进行真正的执行,如调用虚拟机进行合约的执行,对区块链上的数据进行修改。交易执行完成后,将对区块链上数据修改的结果以及执行结果移交给第三线程任务。
步骤四:第三线程任务收到区块链数据修改的结果后,依据其进行...
【专利技术属性】
技术研发人员:邱炜伟,尹可挺,匡立中,李伟,何奇,
申请(专利权)人:杭州趣链科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。