一种区块链共识算法中的出块方法和装置

文档序号:1738612 发布日期:2019-12-20 浏览:15次 >En<

阅读说明:本技术 一种区块链共识算法中的出块方法和装置 (Block output method and device in block chain consensus algorithm ) 是由 叶嘉雨 于 2019-08-19 设计创作,主要内容包括:本说明书实施例公开了一种区块链共识算法中出块方法和装置,该方法包括:在共识算法的出块过程中,充分利用多核系统,并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作,从而提升出块速度,提高共识效率。(The embodiment of the specification discloses a block outlet method and a block outlet device in a block chain consensus algorithm, wherein the method comprises the following steps: in the block-out process of the consensus algorithm, a multi-core system is fully utilized to execute transaction execution operation and transaction persistence operation in parallel, and after the transaction execution is successful and the transaction persistence is successful, the content persistence operation and the transaction result persistence operation of the proposal block are executed in parallel, so that the block-out speed is increased, and the consensus efficiency is improved.)

一种区块链共识算法中的出块方法和装置

技术领域

本说明书涉及计算机软件技术领域,尤其涉及一种区块链共识算法中的出块方法和装置。

背景技术

目前,共识协议被视为区块链技术的核心内容。无论是对区块链平台的交易处理能力、扩展性影响还是激励模型的设计,共识协议都会起到至关重要的作用。

共识协议可简单划分为:自比特币诞生以来产生的工作量证明(Proof of Work,PoW)共识协议和拜占庭容错(Byzantine Fault Tolerance,BFT)共识协议这两大类协议。其中,BFT共识协议的共识机制中出块过程通常包括以下三个阶段:

1.共识节点提案一个块,广播到全网共识;

2.共识达成,串行执行提案块中的交易;

3.保存提案块的内容以及交易、执行结果、交易结果到数据库。

现有的出块方案中,上述阶段中的交易执行以及各类存储操作都是串行执行,交易执行操作结束才可以执行存储操作,而且一个阶段完成才能进入下一阶段,这就导致出块速度受到限制,出块时间较长,影响共识效率。

发明内容

本说明书实施例的目的是提供一种区块链共识算法中的出块方法和装置,以有效提升区块链共识算法中的出块速度,提高共识效率。

为解决上述技术问题,本说明书实施例是这样实现的:

第一方面,提出了一种区块链共识算法中的出块方法,应用于拜占庭共识算法协议中,所述方法包括:

提案一个区块,广播到区块链网络进行共识;

在共识达成之后,并行执行交易执行操作以及交易持久化操作;

在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

第二方面,提出了一种区块链共识算法中的出块装置,应用于拜占庭共识算法协议中,所述装置括:

提案模块,用于提案一个区块,广播到区块链网络进行共识;

第一执行模块,用于在共识达成之后,并行执行交易执行操作以及交易持久化操作;

第二执行模块,用于在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

第三方面,提出了一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

提案一个区块,广播到区块链网络进行共识;

在共识达成之后,并行执行交易执行操作以及交易持久化操作;

在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

提案一个区块,广播到区块链网络进行共识;

在共识达成之后,并行执行交易执行操作以及交易持久化操作;

在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

通过上述技术方案,在共识算法的出块过程中,充分利用多核系统,并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作,从而提升出块速度,提高共识效率。

附图说明

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

图1是本说明书实施例提供的一种区块链共识算法中的出块方法步骤示意图之一。

图2是本说明书实施例提供的一种区块链共识算法中的出块方法步骤示意图之二。

图3是本说明书的一个实施例提供的电子设备的结构示意图。

图4是本说明书的一个实施例提供的区块链共识算法中的出块装置的结构示意图。

具体实施方式

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

实施例一

参照图1所示,为本说明书实施例提供的一种区块链共识算法中的出块方法步骤示意图。其中,所述出块方法主要适用于拜占庭共识算法协议中,所述方法可以包括以下步骤:

步骤102:提案一个区块,广播到区块链网络进行共识。

在该步骤102中,由任一共识节点提案一个区块,通过广播的方式发送给区块链网络中的其它共识节点进行共识。在这里所涉及的共识方式可以参照现有技术中的共识方案实现,在此不做赘述。

步骤104:在共识达成之后,并行执行交易执行操作以及交易持久化操作。

在共识达成之后,意味着该共识节点提案的区块可以上链。考虑到交易内容以及交易执行顺序已经被区块链网络进行全网验证且不可篡改,因此,可以同时开启两个线程,并行执行交易执行操作以及交易持久化操作。从而,利用并行执行的两个线程将执行操作与持久化操作同时进行,缩小处理时长,提升处理速度。

可选地,步骤104在并行执行交易执行操作以及交易持久化操作时,可具体执行为:

依次执行已完成共识排序的所有交易,同时持久化所述所有交易中除正在执行的交易以外的其它交易。

可选地,步骤104在并行执行交易执行操作以及交易持久化操作时,还包括:

同时持久化已执行完交易后的执行结果,其中,所述执行结果用于表征交易执行成功与否。

举例说明,假设有已完成共识排序的交易a1、a2、a3、a4,在执行步骤104时,可以在执行交易a2的同时,持久化交易a4,同时,还持久化已执行完成的交易a1的执行结果。

步骤106:在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

在本说明书实施例中,步骤106在并行执行提案区块的内容持久化操作以及交易结果持久化操作时,可具体执行为:

持久化基于交易结果构建的提案区块内容至数据库,同时持久化交易回执以及交易位置。

其中,步骤106在持久化基于交易结果构建的提案区块内容至数据库时,可具体执行为:

将基于交易结果构建的提案区块的区块头持久化至数据库。

可选地,步骤106在并行执行提案区块的内容持久化操作以及交易结果持久化操作时,如果执行提案区块的内容持久化操作成功,则等待共识下一个区块;否则,重新并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,等待共识下一个区块。

可选地,步骤106在并行执行提案区块的内容持久化操作以及交易结果持久化操作时,如果执行交易结果持久化操作成功,则等待共识下一个区块;否则,重新并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,等待共识下一个区块。

在该步骤106中,由于交易已经在步骤104中被提前持久化(存储)到数据库中,而步骤106可以在程序上保证区块头存储成功即判断本次出块完成,其它数据的存储将会在后台执行,这样,即使后台执行失败也可以重新执行交易并持久化交易。

下面通过一个具体实例流程对本说明书所涉及的出块方案进行详述。

参照图2所示,该出块方案主要包括以下步骤:

步骤202:提案一个块,广播至全网共识。

步骤204:共识达成,并行执行交易执行操作以及交易持久化操作。

步骤206:判断交易执行操作与交易持久化操作是否均成功,若是,则执行步骤208,否则,跳转回步骤204。

步骤208:并行执行提案区块的内容持久化操作以及交易结果持久化操作。

步骤210:判断提案区块的内容持久化操作是否成功,若是,则开始准备共识下一个块,否则,执行步骤214;

步骤212:判断交易结果持久化操作是否成功,若是,则开始准备共识下一个块,否则,执行步骤214;

步骤214:并行执行交易执行操作以及交易持久化操作。

步骤216:判断交易执行操作与交易持久化操作是否均成功,若是,则开始准备共识下一个块,否则,跳转回步骤214。

应理解,在并行执行提案区块的内容持久化操作以及交易结果持久化操作的过程中,如果交易结果持久化操作,也就是持久化交易回执(receipts),以及交易位置(transaction_positions)的操作失败,程序依然可以正常运行,这时会使用event通知recall模块重新执行交易执行操作以及交易持久化操作。从而,保证与提案区块的内容持久化操作并行执行,互不干扰,并在成功之后也开始准备共识下一个块。

通过上述技术方案,在共识算法的出块过程中,充分利用多核系统,并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作,从而提升出块速度,提高共识效率。而且,在后续的数据持久化过程中,提案区块的内容存储仅依赖区块头的持久化,即在区块头持久化成功后就可以准备共识下一个区块,从而,进一步提升出块速度。在实际的出块过程中,采用该方案可以将出块速度提升200%。加大了对各种实际业务场景需要的覆盖,保证区块链上的各类应用得以落地实现。

实施例二

图3是本说明书的一个实施例电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

提案一个区块,广播到区块链网络进行共识;

在共识达成之后,并行执行交易执行操作以及交易持久化操作;

在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

上述如本说明书图1、图2所示实施例揭示的区块链共识算法中出块装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1的方法,并实现区块链共识算法中出块装置在图1、图2所示实施例的功能,本说明书实施例在此不再赘述。

当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

通过上述技术方案,在共识算法的出块过程中,充分利用多核系统,并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作,从而提升出块速度,提高共识效率。

实施例三

本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:

提案一个区块,广播到区块链网络进行共识;

在共识达成之后,并行执行交易执行操作以及交易持久化操作;

在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

通过上述技术方案,在共识算法的出块过程中,充分利用多核系统,并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作,从而提升出块速度,提高共识效率。

实施例四

图4为本说明书的一个实施例提供的区块链共识算法中的出块装置400的结构示意图。请参考图4,在一种软件实施方式中,适用于拜占庭共识算法协议中,该区块链共识算法中的出块装置400可包括:

提案模块402,用于提案一个区块,广播到区块链网络进行共识。

第一执行模块404,用于在共识达成之后,并行执行交易执行操作以及交易持久化操作。

第二执行模块406,用于在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作。

一种可实现的方案,第一执行模块404在并行执行交易执行操作以及交易持久化操作时,具体用于:

依次执行已完成共识排序的所有交易,同时持久化所述所有交易中除正在执行的交易以外的其它交易。

另一种可实现的方案,所述第一执行模块404,还用于:

同时持久化已执行完交易后执行结果,其中,所述执行结果用于表征交易执行成功与否。

在本说明书实施例的一种具体实现方式中,所述第二执行模块406在并行执行提案区块的内容持久化操作以及交易结果持久化操作时,可具体用于:

持久化基于交易结果构建的提案区块内容至数据库,同时持久化交易回执以及交易位置。

在本说明书实施例的再一种具体实现方式中,所述第二执行模块406在持久化基于交易结果构建的提案区块内容至数据库时,可具体用于:

将基于交易结果构建的提案区块的区块头持久化至数据库。

在本说明书实施例的再一种具体实现方式中,所述第二执行模块406,还用于如果执行提案区块的内容持久化操作成功,则等待共识下一个区块;否则重新并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,等待共识下一个区块。

在本说明书实施例的再一种具体实现方式中,所述第二执行模块406,还用于如果执行交易结果持久化操作成功,则等待共识下一个区块;否则,重新并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,等待共识下一个区块。

通过上述技术方案,在共识算法的出块过程中,充分利用多核系统,并行执行交易执行操作以及交易持久化操作,并在交易执行成功且交易持久化成功之后,并行执行提案区块的内容持久化操作以及交易结果持久化操作,从而提升出块速度,提高共识效率。

应理解,本说明书实施例的区块链共识算法中出块装置还可执行图1-图2中出块装置(或设备)执行的方法,并实现出块装置(或设备)在图1-图2所示实施例的功能,在此不再赘述。

总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数字货币的验证方法及系统

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!