一种区块链共识方法、装置和电子设备与流程

文档序号:21368572发布日期:2020-07-04 04:44阅读:166来源:国知局
一种区块链共识方法、装置和电子设备与流程

本文件涉及区块链技术领域,尤其涉及一种区块链共识方法、装置和电子设备。



背景技术:

区块链,是利用分布式账本技术解决多方信任问题的去中心化创新性的解决方案,是当前社会的前沿技术。

在区块链技术中,根据共识协议的特点通常分为联盟链和公链,在联盟链中一般会采用拜占庭bft类的共识算法,这类共识算法的整体流程可包括:选举主节点leader,leader打包交易组成新区块,leader广播新区块并和其它共识节点进行共识,如果最终达成共识则共识成功完成;否则进入新一轮共识,重新选择leader并重新打包交易组成新区块,然后重新进行共识,如果本轮依然没有达成共识,则重复以上流程进入新一轮共识,直至共识完成。

然而,以上共识算法的实现过程,参照图1所示,打包和共识均是串行执行的,当本轮共识失败后,在新一轮共识算法过程中,仍需要重新执行一次打包和共识,可见,目前的共识方案的共识流程较为复杂,基于一次交易所需整体共识时间较长。



技术实现要素:

本说明书一个或多个实施例的目的是提供一种区块链共识方法、装置和电子设备,以优化打包交易的流程,减少基于交易实现的整体共识时间。

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

第一方面,提出了一种区块链共识方法,包括:

区块链中所有共识节点分别并行打包本次交易组成新区块;

基于主节点广播所述主节点已打包组成的新区块进行共识;

如果达成共识,则共识成功;

否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。

第二方面,提出了一种区块链共识装置,包括:

打包模块,用于区块链中所有共识节点分别并行打包本次交易组成新区块;

共识模块,用于基于主节点广播所述主节点已打包组成的新区块进行共识;

判断模块,用于在判断如果达成共识,则共识成功;

否则,跳转至共识模块,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。

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

处理器;以及

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

区块链中所有共识节点分别并行打包本次交易组成新区块;

基于主节点广播所述主节点已打包组成的新区块进行共识;

如果达成共识,则共识成功;

否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。

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

区块链中所有共识节点分别并行打包本次交易组成新区块;

基于主节点广播所述主节点已打包组成的新区块进行共识;

如果达成共识,则共识成功;

否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。

由以上本说明书一个或多个实施例提供的技术方案可见,在共识算法中,区块链中所有共识节点分别并行打包本次交易组成新区块;基于主节点广播所述主节点已打包组成的新区块进行共识;如果达成共识,则共识成功;否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。在整个共识过程中,只需要在第一轮共识开始时,所有共识节点执行并行打包交易组成新区块,一旦当前共识失败,则后续共识流程中不需要再次花费时间与资源执行打包交易的步骤,直接进入共识步骤即可,从而,简化且优化了打包交易步骤,减少了打包交易的时间,进而,节省了整体共识时长,提高了共识效率与性能。

附图说明

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

图1是现在技术中共识算法的打包和共识步骤原理示意图。

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

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

图3是本说明书的一个实施例提供的共识算法的打包和共识步骤原理示意图。

图4是本说明书的一个实施例提供的区块链共识算法的步骤示意图。

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

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

具体实施方式

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

实施例一

参照图2a所示,为本说明书实施例提供的一种区块链共识方法的步骤示意图,应理解,该方法应用在区块链网络中,且其执行主体可以是区块链共识装置,该区块链共识装置通过智能合约部署在区块链网络中。所述共识方法可以包括以下步骤:

步骤202:区块链中所有共识节点分别并行打包本次交易组成新区块。

换言之,在共识协议的第一轮共识之初,区块链网络中的所有共识节点都会打包本次交易,且打包交易的操作是并行执行的,最终每个共识节点都组成新区块。

一种可实现的方案,在执行步骤202中基于区块链中所有共识节点分别并行打包本次交易组成新区块的操作时,可具体包括:

第一步,从所述区块链的共识节点中选举一个共识节点作为主节点。

第二步,所述主节点以及所述区块链中除所述主节点外的其它共识节点,分别并行打包本次交易,并分别组成新区块。

另一种可实现的方案,在执行步骤202中基于区块链中所有共识节点分别打包本次交易组成新区块之后,以及在执行步骤204基于主节点广播所述主节点已打包组成的新区块进行共识之前,所述方法还包括:

从所述区块链的共识节点中选举一个共识节点作为主节点。

这样,在步骤202中,可以先选举主节点leader,然后,包括leader在内的所有共识节点分别打包本次交易的内容,每个共识节点均组成一个新区块,且打包组成新区块的过程是并行执行的;或者,也可以先以所有共识节点分别打包本次交易的内容,每个共识节点均组成一个新区块,且这些共识节点打包组成新区块的过程是并行执行的,然后,从这些共识节点中选举leader。无论是先选举leader,再并行打包交易,还是先并行打包交易,再选举leader,都可以在一个打包交易的时长内,以并行的方式实现所有共识节点打包交易的目的。

应理解,在本说明书实施例中,关于涉及到打包交易以及组成新区块的方案可以参照现有方案实现,在此不做赘述。

步骤204:基于主节点广播所述主节点已打包组成的新区块进行共识。

主节点leader会将步骤202中该主节点已打包本次交易而组成的新区块广播给区块链网络中的其它共识节点,以进行网络共识。具体共识操作可参照现有方案实现,在此不做赘述。

如果达成共识,则共识成功;否则,执行步骤206,并跳转至步骤204,直至共识成功。

步骤206:重新选举主节点。

参照图3所示,在第一轮未达成共识后,需要进入第二轮共识。而考虑到针对本次交易其它共识节点已在步骤202中分别并行打包交易并组成新区块,因此,不需要重新执行打包交易的步骤,而只需要重新选举主节点leader,并直接执行共识的步骤,即直接跳转至步骤204,以重新选举的主节点leader广播自身已打包组成的新区块进行共识,如果第二轮共识仍未达成,则再次进入第三轮共识……,即从第二轮开始,后续每一轮共识流程只包含共识步骤,而不包含打包过程,直至共识成功。

通过上述技术方案,在共识算法中,区块链中所有共识节点分别并行打包本次交易组成新区块;基于主节点广播所述主节点已打包组成的新区块进行共识;如果达成共识,则共识成功;否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。在整个共识过程中,只需要在第一轮共识开始时,所有共识节点执行并行打包交易组成新区块,一旦当前共识失败,则后续共识流程中不需要再次花费时间与资源执行打包交易的步骤,直接进入共识步骤即可,从而,简化且优化了打包交易步骤,减少了打包交易的时间,进而,节省了整体共识时长,提高了共识效率与性能。

需要说明的是,本说明书共识方案主要应用于可能涉及多轮共识流程的区块链共识方案中。

一种可实现的方案,参照图2b所示,在共识成功之后,所述方法还包括:

步骤208:将除当前进行共识的新区块对应的主节点外,其它共识节点分别基于所述本次交易组成的新区块删除。

从而,删除已完成共识上块的交易对应的位于其它共识节点上的新区块,恢复共识节点上的资源空间。

下面通过具体的实例对本说明书所涉及的共识算法进行详述。

参照图4所示,假设基于本次交易可能执行n轮共识,其中n的取值未知。且打包步骤(一次打包交易组成新区块)的时间为d,共识步骤的时间为c。那么,该共识算法可以包括:

步骤402:选举主节点leader。

步骤404:主节点leader以及其它共识节点,并行打包本次交易组成新区块。

步骤406:主节点leader广播自身打包的新区块进行共识。

如果共识达成,则共识成功;如果共识未达成,则执行步骤408。

步骤408:重新选举主节点leader,并跳转至步骤406。

当共识了n轮之后共识成功,由于在第一次共识之初,所有共识节点均并行打包交易组成新区块,从第二轮起每一轮不再需要额外的打包时间,这样原有的共识总时间n*(d+c)则可以减少为d+n*c,在多轮共识的情况下,可以显著提高共识的性能。

实施例二

参照图5所示,为本说明书实施例提供的区块链共识装置,该装置500可以包括:

打包模块502,用于基于区块链中所有共识节点分别并行打包本次交易组成新区块;

共识模块504,用于基于主节点广播所述主节点已打包组成的新区块进行共识;

判断模块506,用于在判断如果达成共识,则共识成功;

否则,跳转至共识模块504,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。

可选地,作为一个实施例,所述装置还包括:

删除模块,用于在共识成功之后,将除当前进行共识的新区块对应的主节点外,其它共识节点分别基于所述本次交易组成的新区块删除。

在本说明书实施例的一种具体实现方式中,所述打包模块602在基于区块链中所有共识节点分别并行打包本次交易组成新区块时,具体用于:

从所述区块链的共识节点中选举一个共识节点作为主节点;

所述主节点以及所述区块链中除所述主节点外的其它共识节点,分别并行打包本次交易,并分别组成新区块。

在本说明书实施例的再一种具体实现方式中,所述装置还包括:

选举模块,用于在打包模块基于区块链中所有共识节点分别打包本次交易组成新区块之后,以及共识模块基于主节点广播所述主节点已打包组成的新区块进行共识之前,从所述区块链的共识节点中选举一个共识节点作为主节点。

通过上述技术方案,在共识算法中,区块链中所有共识节点分别并行打包本次交易组成新区块;基于主节点广播所述主节点已打包组成的新区块进行共识;如果达成共识,则共识成功;否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。在整个共识过程中,只需要在第一轮共识开始时,所有共识节点执行并行打包交易组成新区块,一旦当前共识失败,则后续共识流程中不需要再次花费时间与资源执行打包交易的步骤,直接进入共识步骤即可,从而,简化且优化了打包交易步骤,减少了打包交易的时间,进而,节省了整体共识时长,提高了共识效率与性能。

实施例三

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

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

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

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

区块链中所有共识节点分别并行打包本次交易组成新区块;

基于主节点广播所述主节点已打包组成的新区块进行共识;

如果达成共识,则共识成功;

否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。

上述如本说明书图2a和图2b所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图2a和图2b的方法,并实现相应装置在图2和图2b所示实施例的功能,本说明书实施例在此不再赘述。

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

通过上述技术方案,在共识算法中,区块链中所有共识节点分别并行打包本次交易组成新区块;基于主节点广播所述主节点已打包组成的新区块进行共识;如果达成共识,则共识成功;否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。在整个共识过程中,只需要在第一轮共识开始时,所有共识节点执行并行打包交易组成新区块,一旦当前共识失败,则后续共识流程中不需要再次花费时间与资源执行打包交易的步骤,直接进入共识步骤即可,从而,简化且优化了打包交易步骤,减少了打包交易的时间,进而,节省了整体共识时长,提高了共识效率与性能。

实施例四

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

区块链中所有共识节点分别并行打包本次交易组成新区块;

基于主节点广播所述主节点已打包组成的新区块进行共识;

如果达成共识,则共识成功;

否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。

通过上述技术方案,在共识算法中,区块链中所有共识节点分别并行打包本次交易组成新区块;基于主节点广播所述主节点已打包组成的新区块进行共识;如果达成共识,则共识成功;否则,基于重新选举出的主节点广播自身已打包组成的新区块进行共识,直至共识成功。在整个共识过程中,只需要在第一轮共识开始时,所有共识节点执行并行打包交易组成新区块,一旦当前共识失败,则后续共识流程中不需要再次花费时间与资源执行打包交易的步骤,直接进入共识步骤即可,从而,简化且优化了打包交易步骤,减少了打包交易的时间,进而,节省了整体共识时长,提高了共识效率与性能。

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

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

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

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

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

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1