并行区块链共识方法、系统、电子设备和计算机可读存储介质与流程

文档序号:17069575发布日期:2019-03-08 23:12阅读:191来源:国知局
并行区块链共识方法、系统、电子设备和计算机可读存储介质与流程

本发明属于区块链技术领域,具体涉及一种并行区块链共识方法、系统、电子设备和计算机可读存储介质。



背景技术:

区块链技术也称为分布式账本技术,本质上是一种去中心化的分布式互联网数据库。在区块链技术中,共识机制是区块链网络中实现不同区块链节点之间建立信任,获取权益的重要方法。

当前区块链系统大多采用先执行再共识再执行的方式,其中的共识方法大多采用三阶段协议,即预准备阶段,准备阶段和提交阶段。在准备阶段之前,区块链系统的打包交易模块将交易数据打包传给共识模块进行共识。在共识的提交阶段之后,共识模块将共识后的交易提交给执行模块进行执行,对执行结果还需要再一次进行共识。在整个过程中,在共识的三阶段协议的过程中,执行模块都处在空闲状态。而在打包交易模块将交易打包的过程中和执行模块的执行过程中,共识模块也处于空闲状态,区块链系统的效率较低。

对此,本发明提出了一种并行区块链共识方法、系统、电子设备和计算机可读存储介质,将共识模块的运行和打包交易模块还有执行模块的运行并行,以提高区块链系统的效率。



技术实现要素:

为克服上述技术问题或至少部分地解决上述技术问题,特提出以下技术方案:

第一方面,本申请实施例提供一种并行区块链共识方法,包括以下步骤:

在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点;

每个共识节点对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求;

每个共识节点根据收到的预投票结果得到该共识节点的预提交结果;

每个共识节点接收校验模块发送的校验结果,如果校验成功,则将所述预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点;

每个共识节点根据接收到的预提交结果得到该共识节点的共识结果。

优选地,所述预投票结果包括两种类型:空块和合法;

所述共识节点在预设时间内没有收到所述提议或收到不合法提议时,则所述预投票结果为空块;所述共识节点在预设时间内收到合法提议时,则所述预投票结果为合法;

每个共识节点根据接收到的预投票结果得到该共识节点的预提交结果,具体包括:

每个共识节点对所述接收到的预投票结果按照类型进行数量统计,其数量达到共识节点总数预设比例的类型即为所述该共识节点的预提交结果。

优选地,每个共识节点根据接收到的预提交结果得到该共识节点的共识结果,具体包括:

每个共识节点对接收到的预提交结果的类型进行数量统计,当合法类型的数量达到所述共识节点总数预设比例时,则共识成功;当空块类型的数量达到所述共识节点总数预设比例时,则共识失败。

优选地,其中,所述共识节点总数预设比例为三分之二。

优选地,所述共识节点中提议者的共识结果为成功时,所述提议者将所述提议区块发送给执行模块,以得到执行结果;当所述共识节点中的提议者的共识结果为共识失败时,则进入下一轮共识。

优选地,所述执行结果将随固定延迟高度上的提议区块一起,进行新一轮的提议和共识。

第二方面,本发明实施例还提供了一种并行区块链共识系统,包括校验模块和包含多个共识节点的共识模块,

在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点;

每个共识节点对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求;

每个共识节点根据收到的预投票结果得到该共识节点的预提交结果;

每个共识节点接收校验模块发送的校验结果,如果校验成功,则将所述预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点;

每个共识节点根据接收到的预提交结果得到该共识节点的共识结果。

优选地,所述预投票结果包括两种类型:空块和合法;

所述共识节点在预设时间内没有收到所述提议或收到不合法提议时,则所述预投票结果为空块;所述共识节点在预设时间内收到合法提议时,则所述预投票结果为合法;

每个共识节点根据接收到的预投票结果得到该共识节点的预提交结果,具体包括:

每个共识节点对所述接收到的预投票结果按照类型进行数量统计,其数量达到共识节点总数预设比例的类型即为所述该共识节点的预提交结果。

优选地,每个共识节点根据接收到的预提交结果得到该共识节点的共识结果,具体包括:

每个共识节点对接收到的预提交结果的类型进行数量统计,当合法类型的数量达到所述共识节点总数预设比例时,则共识成功;当空块类型的数量达到所述共识节点总数预设比例时,则共识失败。

优选地,其中,所述共识节点总数预设比例为三分之二。

优选地,进一步包括执行模块,所述共识节点中提议者的共识结果为成功时,所述提议者将所述提议区块发送给执行模块,以得到执行结果;当所述共识节点中的提议者的共识结果为共识失败时,则进入下一轮共识。

优选地,进一步包括打包交易模块,所述打包交易模块将所述执行结果随固定延迟高度上的提议区块一起打包,进行新一轮的提议和共识。

第三方面,还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行上述的并行区块链共识方法。

第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的并行区块链共识方法。

采用本发明具有如下的有益效果:

1、校验模块的校验过程与共识节点发送和接收预投票的过程并行执行,提升了交易的处理能力;

2、在共识的提交阶段将区块发送给执行模块进行执行,对执行结果的共识跟随固定延迟高度上提议区块一起进行新一轮的提议和共识,提高了系统的执行效率。

附图说明

图1为本发明第一实施例的并行的区块链共识方法的流程图;

图2为本发明第二实施例的并行的区块链共识方法的流程图;

图3为本发明第三实施例的并行的区块链共识系统的系统框图;

图4为本发明第四实施例的并行的区块链共识系统的系统框图;

图5为本发明实施例的电子设备的结构示意图;

图6为本发明实施例的区块链共识装置的结构示意图。

具体实施方式

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

参见图1,本发明第一实施例公开了一种并行区块链共识方法,包括以下步骤:

s101,在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点。

具体的,每一个共识节点都通过确定性算法确定自己是不是提议者。以此设置,共识节点可唯一确定一个提议者。具体应用实例中,提议区块可包含多个交易的提议区块。

s102,每个共识节点对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求。

具体应用实例中,预投票有三种情况:一定时间内没收到提议的共识节点,其预投票结果为:空块;收到不合法提议的共识节点,其预投票结果为:空块;收到合法提议的共识节点,其预投票结果为:合法。即共识节点在预设时间内没有收到提议或提议不合法时,预投票结果为空块;共识节点在预设时间内收到合法提议时,则预投票结果为合法。

s103,每个共识节点根据收到的预投票结果得到该共识节点的预提交结果。

具体应用实例中,包括:每个共识节点对接收到的预投票结果按照类型进行数量统计,其数量达到共识节点总数预设比例的类型即为所述该共识节点的预提交结果。

s104,每个共识节点接收校验模块发送的校验结果,如果校验成功,则将预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点。

根据前述技术方案描述可知,空块的预提交结果有两种来源:一是共识节点得到了空块的预提交结果,且校验成功;又一是共识节点得到了合法的预提交结果,但校验失败。

s105,每个共识节点根据接收到的预提交结果得到该共识节点的共识结果。

具体应用实例中,每个共识节点对接收到的预提交结果的类型进行数量统计,当合法类型预提交结果的数量达到所述共识节点总数预设比例时,则共识成功;当空块类型预提交结果的数量达到所述共识节点总数预设比例时,则共识失败。通常情况下,共识节点总数预设比例为三分之二。即,三分之二以上的共识节点提交了合法的预提交则共识成功;三分之二以上的共识节点提交为空块的预提交则共识失败。本领域技术人员可以理解的是共识节点总数预设比例可以根据实际需求进行设置。

通过以上实施的并行的区块链共识方法,为拜占庭容错算法的一种,在每个高度上,都有多个节点参与当前高度的共识,在达到共识节点总数预设比例个节点诚实的情况下,共识节点经过至少一轮共识达到最终共识。以上步骤实施的并行的区块链共识方法,节点投出合法的预投票的同时向校验模块发送校验请求,提升了交易的处理能力。

参见图2,所示为本发明第二实施例的并行的区块链共识方法,包括以下步骤:

s101,在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点;

s102,每个共识节点对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求;

s103,每个共识节点根据收到的预投票结果得到该共识节点的预提交结果;

s104,每个共识节点接收校验模块发送的校验结果,如果校验成功,则将所述预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点;

s105,每个共识节点根据接收到的预提交结果得到该共识节点的共识结果;

s106,每个共识节点对接收到的预提交结果的类型进行数量统计,当合法类型的数量达到所述共识节点总数预设比例时,则共识成功;当空块类型的数量达到所述共识节点总数预设比例时,则共识失败。

通常情况下,共识节点总数预设比例为三分之二。即,三分之二以上的共识节点提交了合法的预提交则共识成功;三分之二以上的共识节点提交为空块的预提交则共识失败。

参见图3,所示为本发明第三实施例的并行的区块链共识方法,包括以下步骤:

s101,在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点;

s102,每个共识节点对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求;

s103,每个共识节点根据收到的预投票结果得到该共识节点的预提交结果。

s104,每个共识节点接收校验模块发送的校验结果,如果校验成功,则将预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点;

s105,每个共识节点根据接收到的预提交结果得到该共识节点的共识结果;

s106,每个共识节点对接收到的预提交结果的类型进行数量统计,当合法类型的数量达到共识节点总数预设比例时,则共识成功;当空块类型的数量达到共识节点总数预设比例时,则共识失败;

s107,共识节点中提议者的共识结果为成功时,提议者将提议区块发送给执行模块,以得到执行结果;当共识节点中的提议者的共识结果为共识失败时,则进入下一轮共识。

参见图4,所示为本发明第四实施例的并行的区块链共识方法,包括以下步骤:

s101,在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点;

s102,每个共识节点对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求;

s103,每个共识节点根据收到的预投票结果得到该共识节点的预提交结果;

s104,每个共识节点接收校验模块发送的校验结果,如果校验成功,则将所述预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点;

s105,每个共识节点根据接收到的预提交结果得到该共识节点的共识结果;

s106,每个共识节点对接收到的预提交结果的类型进行数量统计,当合法类型的数量达到所述共识节点总数预设比例时,则共识成功;当空块类型的数量达到共识节点总数预设比例时,则共识失败;

s107,共识节点中提议者的共识结果为成功时,提议者将提议区块发送给执行模块,以得到执行结果;当共识节点中的提议者的共识结果为共识失败时,则进入下一轮共识。

s108,执行结果将随固定延迟高度上的提议区块一起,进行新一轮的提议和共识。

具体应用实例中,固定延迟高度为下一个或下两个高度的交易。

本发明实施例提供的并行的区块链共识方法,在节点投出预投票的同时向校验模块发送校验请求的基础上,在共识的提交阶段将区块发送给执行模块进行执行,对执行结果的共识跟随下一个区块的提议一起进行,不仅提升了交易的处理能力,也提高了系统的执行效率。

下面参照图5详细介绍本发明实施例的电子设备。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口和存储器。其中,存储器可能包含能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器等。当然,该电子设备还可以包括其他业务所需的硬件。

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

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

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成内容推荐装置。处理器,执行存储器所存放的程序,并具体用于执行前文所述服务器作为执行主体时所执行的方法操作。

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

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

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点;

每个共识节点对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求;

每个共识节点根据收到的预投票结果得到该共识节点的预提交结果;

每个共识节点接收校验模块发送的校验结果,如果校验成功,则将预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点;

每个共识节点根据接收到的预提交结果得到该共识节点的共识结果。

其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等。

参照图6,所示为本发明实施例的并行的区块链共识装置10的结构示意图,该装置主要包括校验模块101和包含多个共识节点的共识模块102,

在一轮共识开始时,确定共识节点中的提议者,提议者将提议区块广播给其他共识节点;

每个共识节点(图示中为共识节点1,共识节点2至共识节点n)对接收到的提议区块进行预投票后,对其他的共识节点广播其预投票结果的同时,每个共识节点对校验模块发送校验请求;

每个共识节点根据收到的预投票结果得到该共识节点的预提交结果;

每个共识节点接收校验模块发送的校验结果,如果校验成功,则将所述预提交结果广播给其他共识节点;如果校验失败,则发送空块的预提交结果给其他共识节点;

每个共识节点根据接收到的预提交结果得到该共识节点的共识结果。

通过以上实施的并行的区块链共识装置,利用拜占庭容错算法的一种,在每个高度上,都有多个节点参与当前高度的共识,在达到共识节点总数预设比例个节点诚实的情况下,共识节点经过至少一轮共识达到最终共识。以上步骤实施的并行区块链共识装置,节点投出合法的预投票的同时向校验模块发送校验请求,提升了交易的处理能力。

进一步地,每个共识节点根据接收到的预提交结果得到该共识节点的共识结果,具体包括:每个共识节点对接收到的预提交结果的类型进行数量统计,当合法类型的数量达到所述共识节点总数预设比例时,则共识成功;当空块类型的数量达到所述共识节点总数预设比例时,则共识失败。

具体应用实例中,共识节点总数预设比例可设置为三分之二。当然,其他应用实例中可以设置需要的共识节点总数预设比例

进一步地,本发明实施例的并行的区块链共识装置进一步包括执行模块,所述共识节点中提议者的共识结果为成功时,所述提议者将所述提议区块发送给执行模块,以得到执行结果;当所述共识节点中的提议者的共识结果为共识失败时,则进入下一轮共识。

进一步地,本发明实施例的并行的区块链共识装置进一步包括打包交易模块,所述打包交易模块将所述执行结果随固定延迟高度上的提议区块一起打包,进行新一轮的提议和共识。

本发明实施例提供的并行的区块链共识装置,在节点投出预投票的同时向校验模块发送校验请求的基础上,在共识的提交阶段将区块发送给执行模块进行执行,对执行结果的共识跟随下一个区块的提议一起进行,不仅提升了交易的处理能力,也提高了系统的执行效率。

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

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

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

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

应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。

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