CN109903048A - 一种出块方法、共识方法和装置 - Google Patents
一种出块方法、共识方法和装置 Download PDFInfo
- Publication number
- CN109903048A CN109903048A CN201910151106.4A CN201910151106A CN109903048A CN 109903048 A CN109903048 A CN 109903048A CN 201910151106 A CN201910151106 A CN 201910151106A CN 109903048 A CN109903048 A CN 109903048A
- Authority
- CN
- China
- Prior art keywords
- block
- height
- father
- consensus information
- reached
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链共识方法和装置,该方法包括:见证节点接收第h高度的第一区块;根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h‑1高度的区块是否已达成共识。解决了现有的区块网络共识效率低的问题。另外,本申请还提供一种出块方法和装置。
Description
技术领域
本发明涉及通信领域,尤其涉及一种出块方法、装置、电子设备和存储介质,以及一种共识方法、装置、电子设备和存储介质。
背景技术
在区块链技术中,会通过共识机制来保证各节点的链上数据一致。在现有的拜占庭容错BFT(Byzantine Fault Tolerance,BFT)共识机制中,出块节点会将数据打包为区块,并全网广播给见证节点,见证节点在收到区块后,对区块进行投票,并全网广播投票信息。
针对某一高度的区块,见证节点在约定时间内收到一定数量的见证节点投票后,会确定该高度的区块达成共识。而如果见证节点由于网络等原因没有收到一定数量的投票,则该见证节点即使收到下一高度的区块,也无法对其进行共识操作,导致该高度下出块耗时较长,出块效率较低。
发明内容
本发明实施例提供一种共识方法、装置、存储介质和电子设备,以解决现有的共识机制共识效率较低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,提供了一种共识方法,该方法包括:
见证节点接收第h高度的第一区块;
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
第二方面,提供了一种共识装置,该装置包括:
第一接收模块,接收第h高度的区块;
第一确定模块,根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
第三方面,提供了一种电子设备,该电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
见证节点接收第h高度的第一区块;
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
见证节点接收第h高度的第一区块;
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
本发明实施例还提供一种出块方法、装置、存储介质和电子设备,以解决现有的共识机制共识效率较低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,提供了一种出块方法,该方法包括:
出块节点接收第h-1高度的区块的共识信息;
将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
第二方面,提供了一种出块装置,该装置包括:
第二接收模块,接收第h-1高度的区块的共识信息;
添加模块,将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
第三方面,提供了一种电子设备,该电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收第h-1高度的区块的共识信息;
将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
接收第h-1高度的区块的共识信息;
将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
本发明实施例还提供一种共识方法、装置、存储介质和电子设备,以解决现有的共识机制共识效率较低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,提供了一种共识方法,该方法包括:
在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
将所述第一目标区块添加至主链。
第二方面,提供了一种共识装置,该装置包括:
第二确定模块,在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
第二添加模块,将所述第一目标区块添加至主链。
第三方面,提供了一种电子设备,该电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
将所述第一目标区块添加至主链。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
将所述第一目标区块添加至主链。
在本发明实施例中,在出块节点出第h高度的区块时,会将块的父块的共识信息添加到区块中,然后进行全网广播;见证节点在收到第h高度的区块后,会根据区块中包含的父块的共识信息,确定本地的第h-1高度的区块是否已达成共识。而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能进行下一区块高度的共识,本发明在见证节点收到区块后,即可根据区块中父块的共识信息,确定父块已达成共识,即可进行下一轮共识,无需等待接收到一定数量的节点发送的投票信息,提高了出块效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例提供的一种出块方法的流程示意图;
图2是本发明实施例提供的一种共识方法的流程示意图;
图3是本发明实施例提供的又一种共识方法的流程示意图;
图4是本发明实施例提供的一种共识装置的结构示意图;
图5为本发明实施例提供的电子设备的一种结构示意图;
图6是本发明实施例提供的一种共识装置的结构示意图;
图7为本发明实施例提供的又一种电子设备的结构示意图;
图8是本发明实施例提供的又一种共识装置的结构示意图;
图9为本发明实施例提供的又一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所描述的,现有的共识技术存在共识效率较低的问题,在本方案中见证节点在出块时,通过将区块父块的共识信息添加到区块中,这样见证节点在接收到区块后,便可以根据区块中的父块的共识信息,确定接收到的区块上一高度区块的共识情况。
下面先从见证节点的维度,详细描述本说明书一个或多个实施例中,见证节点出块的过程。
为便于描述,本说明书一个或多个实施例中,出块方法的执行主体可以是区块链网络中的出块节点。后文以出块方法的执行主体为区块链网络中的出块节点为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为区块链网络中的出块节点只是一种示例性的说明,并不应理解为对该方法的限定。
在本说明书一个或多个实施例中,区块链网络出块方法的实现流程示意图如图1所示,包括下述步骤:
步骤100:接收第h-1高度的区块的共识信息;
第h高度泛指区块链的某一区块高度,区块高度可以表征区块在链上的位置。区块高度往往以一个区块为单位,用主链上连接的区块的个数来表示,第h高度即可表示为第h个区块的位置,第h高度的区块即为主链上的第h个区块。
那么第h-1高度为第h高度的上一高度。
在本申请的一个或多个实施例中,出块节点会接收全网各节点发送的共识信息,该共识信息一般为投票信息,在一般情况下,如果收到的投票信息满足一定数量,则确定达成BFT共识。例如,在确定区块得到的票数达到f*2/3+1时,可以确定对该区块达成BFT共识,其中,f为见证节点可投的总票数。
步骤102,将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
在本说明书一个或多个实施例中,在出块节点出第h高度的区块时,即可将接收到的第h-1高度的共识信息添加到区块中。
具体来说,可以将共识信息存储到区块的创币交易的op_return中。
共识信息中可以包含表征区块是否达成共识的信息,表征区块是否达成共识的信息,比如可以是对区块的投票信息,或者是表征区块是否达成共识的字符。
在将第h-1高度的区块的共识信息添加到第h高度的区块后,便可以向区块链网络中广播第h高度的区块。
在本发明实施例中,在出块节点出第h高度的区块时,会将块的父块的共识信息添加到区块中,然后进行全网广播;以便见证节点在收到第h高度的区块后,根据区块中包含的父块的共识信息,确定本地的第h-1高度的区块是否已达成共识。而现有技术中见证节点需要收到一定数量的节点发送的投票信息后,才能进行下一轮共识,本发明在见证节点收到区块后,即可根据区块中父块的共识信息,确定父块已达成共识,即可进行下一轮共识,无需等待接收到一定数量的节点发送的投票信息,提高了出块效率。
区块链网络中的其它节点在收到该第h高度的区块后,便可以执行共识操作,下面对见证节点接收到第h高度的区块后的共识过程进行详细描述。
为便于描述,本说明书一个或多个实施例中,共识方法的执行主体可以是区块链网络中的见证节点。后文以共识方法的执行主体为区块链网络中的见证节点为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为区块链网络中的见证节点只是一种示例性的说明,并不应理解为对该方法的限定。
在本说明书一个或多个实施例中,区块链网络共识方法的实现流程示意图如图2所示,包括下述步骤:
步骤200:见证节点接收第h高度的第一区块;
为便于描述,这里将见证节点接收到的第h高度的区块称为第一区块。
见证节点可以接收第h高度的区块,也可以接收见证节点发送的投票信息,也可以发出自己的投票信息。
在本说明书一个或多个实施例中,见证节点获取共识信息的途径还可以是从接收到的第一区块中获取,从第一区块中获取到的共识信息是第一区块的父块的共识信息,见证节点可以根据接收到第一区块的父块的投票信息,判断该父块是否达成共识。
步骤202:根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
在本说明书一个或多个实施例中,达成共识可以是达成BFT共识。
在本说明书一个或多个实施例中,出块节点在出块时,父块往往是已经达成BFT共识的区块,即在出第h高度的区块时,第h-1高度的区块往往已经达成了BFT共识。
在这种情况下,第一区块中包含的共识信息,为第一区块的父块已经达成共识的信息,见证节点可以根据第一区块中包含的第一区块的父块已达成共识的信息,来确定本地第h-1高度的区块是否已达成共识。
具体来说,如果见证节点已经接收到了第一区块的父块,则可以确定第一区块的父块也达成了共识,并将第一区块的父块作为第h-1高度的区块添加到区块链上。如果见证节点未接收到第一区块的父块,则可以确定第一区块的父块已达成共识,但由于本地未接收到第一区块的父块,则无法将第一区块的父块添加到区块链上。
在确定第一区块的父块已经达成共识后,便可以对第一区块进行共识操作,比如可以对第一区块进行投票,并将投票信息广播出去。需要说明的是,在确定第一区块的父块已经达成共识后,即使本地未接收到第一区块的父块,也可以先对第一区块进行共识操作,以提高共识操作的效率。
另外,共识信息具体可以包含见证节点对区块的投票信息,即第一区块中可以包含见证节点对第一区块的父块的投票信息。那么节点在接收到第一区块后,可以根据第一区块中包含的父块的投票信息,来判断父块是否达成共识。
在本发明实施例中,在出块节点出第h高度的区块时,会将块的父块的共识信息添加到区块中,然后进行全网广播;见证节点在收到第h高度的区块后,可以根据区块中包含的父块的共识信息,确定本地的第h-1高度的区块是否已达成共识。而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能进行下一轮共识,本发明在见证节点收到区块后,即可根据区块中父块的共识信息,确定父块已达成共识,即可进行下一轮共识,无需等待接收到一定数量的节点发送的投票信息,提高了出块效率。
在本发明一个或多个实施例中,在同一出块顺序上可以有多个出块节点同时进行出块,这样,见证节点在第h高度下,可能会收到不止一个区块,那么可以发起多轮共识操作对第h高度下的不止一个区块进行共识,各轮共识操作所达成共识的区块可能不同,因此存在第h高度下有多个区块均达成共识的情况。
在这种情况下,可以从多个已达成共识的区块中选取一个较优的区块,作为添加至主链中的区块,在选取较优的区块时,可以选取父块具备较优的特征的区块。
为便于描述,这里将已达成共识的区块称为目标区块,将父块具备更优特征的块称为第一目标区块。
下面对见证节点从多个目标区块中选取第一目标区块的过程进行详细描述。
为便于描述,本说明书一个或多个实施例中,共识方法的执行主体可以是区块链网络中的见证节点。后文以共识方法的执行主体为区块链网络中的见证节点为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为区块链网络中的见证节点只是一种示例性的说明,并不应理解为对该方法的限定。
在本说明书一个或多个实施例中,区块链网络共识方法的实现流程示意图如图3所示,包括下述步骤:
步骤300:在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块;
其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块。
如前文所述,出块节点在出块时,可以将块的父块的共识信息添加至区块中,这里的共识信息还可以包括表征父块优劣的信息。
表征父块优劣的信息,可以是区块达成共识的轮数,轮数越小,表明父块更优。
在本申请一个或多个实施例中,由于见证节点会按照时间顺序接收到第h高度下的多个区块,当接收到一个区块时,便可能会发起一轮共识操作,因此可进行多轮共识操作。按照各轮共识操作开始的先后顺序,可将其称为第1轮、第2轮……第n轮共识操作。
那么,在本说明书一个或多个实施例中,出块节点在出块时,可以将其父块达成共识的轮数作为共识信息也加入到区块中。
见证节点在收到区块后,如果第h高度存在不止一个目标区块时,可以根据目标区块父块的共识轮数,确定父块共识轮数更小的目标区块,作为第一目标区块。
步骤302:将所述第一目标区块添加至主链。
在确定出第一目标区块后,便可以将第一目标区块添加至主链。
在本发明实施例中,在第h高度存在不止一个目标区块时,可以根据目标区块中包含的父块的共识信息,从所述目标区块中确定父块已达成共识且具备更优特征的块,作为第一目标区块。即可以从目标区块中确定其父块是否已经达成了共识,而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能确定区块是否已经达成共识,因此,相对于现有技术而言,提高了出块效率。
以上为本申请实施例提供的区块链共识方法,基于同样的思路,本申请实施例还提供相应的共识装置,如图4所示,该装置具体包括:
第一接收模块401,接收第h高度的区块;
第一确定模块402,根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
在一种实施方式中,第一确定模块402,具体用于:
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定所述父块是否已达成共识;
若所述父块已达成共识,且本地已接收到第h-1高度的所述父块,则确定本地第h-1高度的区块已达成共识。
在一种实施方式中,所述装置还包括:
共识模块,用于在确定所述父块已达成共识时,对所述第一区块进行共识操作。
本发明提供的共识装置,在出块节点出第h高度的区块时,会将块的父块的共识信息添加到区块中,然后进行全网广播;见证节点在收到第h高度的区块后,会根据区块中包含的父块的共识信息,确定本地的第h-1高度的区块是否已达成共识。而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能进行下一区块高度的共识,本发明在见证节点收到区块后,即可根据区块中父块的共识信息,确定父块已达成共识,即可进行下一轮共识,无需等待接收到一定数量的节点发送的投票信息,提高了出块效率。
图5是本申请的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共识装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收第h高度的第一区块;
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
上述如本申请图1所示实施例揭示的共识装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1中共识装置执行的方法,并实现共识装置在图1所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中共识装置执行的方法,并具体用于执行:
接收第h高度的第一区块;
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
本申请实施例提供的电子设备和计算机可读存储介质,在出块节点出第h高度的区块时,会将块的父块的共识信息添加到区块中,然后进行全网广播;见证节点在收到第h高度的区块后,会根据区块中包含的父块的共识信息,确定本地的第h-1高度的区块是否已达成共识。而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能进行下一区块高度的共识,本发明在见证节点收到区块后,即可根据区块中父块的共识信息,确定父块已达成共识,即可进行下一轮共识,无需等待接收到一定数量的节点发送的投票信息,提高了出块效率。
基于以上本申请实施例提供的出块方法,本申请实施例还提供相应的出块装置,如图6所示,该装置具体包括:
第二接收模块601,接收第h-1高度的区块的共识信息;
添加模块602,将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
本发明提供的出块装置,在出块节点出第h高度的区块时,会将块的父块的共识信息添加到区块中,然后进行全网广播;见证节点在收到第h高度的区块后,会根据区块中包含的父块的共识信息,确定本地的第h-1高度的区块是否已达成共识。而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能进行下一区块高度的共识,本发明在见证节点收到区块后,即可根据区块中父块的共识信息,确定父块已达成共识,即可进行下一轮共识,无需等待接收到一定数量的节点发送的投票信息,提高了出块效率。
图7是本申请的一个实施例电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成出块装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收第h-1高度的区块的共识信息;
将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
上述如本申请图1所示实施例揭示的出块装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1中出块装置执行的方法,并实现出块装置在图1所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中出块装置执行的方法,并具体用于执行:
接收第h-1高度的区块的共识信息;
将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
本申请实施例提供的电子设备和计算机可读存储介质,在出块节点出第h高度的区块时,会将块的父块的共识信息添加到区块中,然后进行全网广播;见证节点在收到第h高度的区块后,会根据区块中包含的父块的共识信息,确定本地的第h-1高度的区块是否已达成共识。而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能进行下一区块高度的共识,本发明在见证节点收到区块后,即可根据区块中父块的共识信息,确定父块已达成共识,即可进行下一轮共识,无需等待接收到一定数量的节点发送的投票信息,提高了出块效率。
基于本申请实施例提供的区块链共识方法,本申请实施例还提供相应的共识装置,如图8所示,该装置具体包括:
第二确定模块801,在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
第二添加模块802,将所述第一目标区块添加至主链。
在一种实施方式中,所述更优特征包括:区块的共识轮数更小。
本发明提供的共识装置,在第h高度存在不止一个目标区块时,可以根据目标区块中包含的父块的共识信息,从所述目标区块中确定父块已达成共识且具备更优特征的块,作为第一目标区块。即可以从目标区块中确定其父块是否已经达成了共识,而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能确定区块是否已经达成共识,因此,相对于现有技术而言,提高了出块效率。
图9是本申请的一个实施例电子设备的结构示意图。请参考图9,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共识装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
将所述第一目标区块添加至主链。
上述如本申请图3所示实施例揭示的共识装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图3中共识装置执行的方法,并实现共识装置在图3所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图3所示实施例中共识装置执行的方法,并具体用于执行:
在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
将所述第一目标区块添加至主链。
本申请实施例提供的电子设备和计算机可读存储介质,在第h高度存在不止一个目标区块时,可以根据目标区块中包含的父块的共识信息,从所述目标区块中确定父块已达成共识且具备更优特征的块,作为第一目标区块。即可以从目标区块中确定其父块是否已经达成了共识,而现有技术见证节点需要收到一定数量的节点发送的投票信息后,才能确定区块是否已经达成共识,因此,相对于现有技术而言,提高了出块效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种共识方法,其特征在于,包括:
见证节点接收第h高度的第一区块;
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
2.如权利要求1所述方法,其特征在于,根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识,具体包括:
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定所述父块是否已达成共识;
若所述父块已达成共识,且本地已接收到第h-1高度的所述父块,则确定本地第h-1高度的区块已达成共识。
3.如权利要求1或2所述方法,其特征在于,在确定本地第h-1高度的区块是否已达成共识后,所述方法还包括:
若确定所述父块已达成共识,则对所述第一区块进行共识操作。
4.一种出块方法,其特征在于,包括:
出块节点接收第h-1高度的区块的共识信息;
将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
5.一种共识方法,其特征在于,包括:
在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
将所述第一目标区块添加至主链。
6.如权利要求5所述的方法,其特征在于,所述更优特征包括:区块的共识轮数更小。
7.一种共识装置,其特征在于,包括:
第一接收模块,接收第h高度的区块;
第一确定模块,根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
8.一种出块装置,其特征在于,包括:
第二接收模块,接收第h-1高度的区块的共识信息;
添加模块,将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
9.一种共识装置,其特征在于,包括:
第二确定模块,在第h高度存在不止一个目标区块时,根据目标区块中包含的父块的共识信息,从所述目标区块中确定第一目标区块,其中,所述目标区块为已达成共识的区块,所述第一目标区块为父块已达成共识且具备更优特征的块;
第二添加模块,将所述第一目标区块添加至主链。
10.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收第h高度的区块;
根据所述第一区块中包含的所述第一区块的父块的共识信息,确定本地第h-1高度的区块是否已达成共识。
11.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收第h-1高度的区块的共识信息;
将所述共识信息添加到第h高度的区块中,并向区块链网络中的其它节点广播所述第h高度的区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910151106.4A CN109903048B (zh) | 2019-02-28 | 2019-02-28 | 一种出块方法、共识方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910151106.4A CN109903048B (zh) | 2019-02-28 | 2019-02-28 | 一种出块方法、共识方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109903048A true CN109903048A (zh) | 2019-06-18 |
CN109903048B CN109903048B (zh) | 2021-06-08 |
Family
ID=66945828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910151106.4A Active CN109903048B (zh) | 2019-02-28 | 2019-02-28 | 一种出块方法、共识方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109903048B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406896A (zh) * | 2016-09-27 | 2017-02-15 | 北京天德科技有限公司 | 一种并行PipeLine技术的区块链建块方法 |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN107395353A (zh) * | 2017-04-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
CN108769163A (zh) * | 2018-05-16 | 2018-11-06 | 深圳前海微众银行股份有限公司 | 联盟链共识达成方法、设备及计算机可读存储介质 |
WO2019011273A1 (zh) * | 2017-07-11 | 2019-01-17 | 成都励睿德企业管理有限公司 | 基于奖惩的数据区块链授权参与共识的拜占庭容错方法及其奖惩方法 |
CN109242685A (zh) * | 2018-08-29 | 2019-01-18 | 众安信息技术服务有限公司 | 基于区块链的共识和验证方法及装置 |
-
2019
- 2019-02-28 CN CN201910151106.4A patent/CN109903048B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106406896A (zh) * | 2016-09-27 | 2017-02-15 | 北京天德科技有限公司 | 一种并行PipeLine技术的区块链建块方法 |
CN107395353A (zh) * | 2017-04-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
WO2019011273A1 (zh) * | 2017-07-11 | 2019-01-17 | 成都励睿德企业管理有限公司 | 基于奖惩的数据区块链授权参与共识的拜占庭容错方法及其奖惩方法 |
CN108769163A (zh) * | 2018-05-16 | 2018-11-06 | 深圳前海微众银行股份有限公司 | 联盟链共识达成方法、设备及计算机可读存储介质 |
CN109242685A (zh) * | 2018-08-29 | 2019-01-18 | 众安信息技术服务有限公司 | 基于区块链的共识和验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109903048B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109447810A (zh) | 并行区块链共识方法、系统、电子设备和计算机可读存储介质 | |
CN109949157B (zh) | 一种业务数据的上链方法、装置及系统 | |
CN108648078B (zh) | 一种交易预处理方法、装置及电子设备 | |
CN109587131A (zh) | 一种区块链网络间数据通信方法和装置 | |
EP3321819B1 (en) | Device, method and program for securely reducing an amount of records in a database | |
CN109951534A (zh) | 一种共识方法、装置和系统 | |
CN109934712B (zh) | 应用于分布式系统的对账方法、对账装置和电子设备 | |
CN109525441A (zh) | 一种区块链网络链外数据上链方法和装置 | |
CN108550038A (zh) | 一种应用于区块链的数据传播系统及方法 | |
CN110012100A (zh) | 一种带宽优化的区块链共识方法、装置及电子设备 | |
CN109218352A (zh) | 一种区块链网络中交易信息的共识确认方法及装置 | |
CN113204432B (zh) | 区块链中的交易处理方法、装置及电子设备 | |
CN108765159A (zh) | 一种基于区块链的上链与状态处理方法、装置及互联系统 | |
CN108734469A (zh) | 确定待定用户风险标签的方法和装置 | |
CN110232637A (zh) | 基于区块链的保险理赔系统、方法、装置及电子设备 | |
CN110264332A (zh) | 账户出账的方法、装置和电子设备 | |
CN110505311A (zh) | 一种同构区块链跨链交互方法和系统 | |
CN107239403A (zh) | 一种问题定位方法和设备 | |
CN109389377A (zh) | 一种非接触式离线签名方法、装置、电子设备及系统 | |
CN110659905A (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN108334340A (zh) | 一种跨环境数据通信方法、装置和系统 | |
CN110489418A (zh) | 一种数据聚合方法和系统 | |
CN115037472B (zh) | 基于双层dag共识机制的交易处理方法及系统、服务设备 | |
CN102893263A (zh) | 内存检测方法和内存检测装置 | |
CN110457321A (zh) | 基于区块链的数据存储方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |