CN113269542A - 区块链系统的共识方法、装置以及存储介质 - Google Patents

区块链系统的共识方法、装置以及存储介质 Download PDF

Info

Publication number
CN113269542A
CN113269542A CN202110558611.8A CN202110558611A CN113269542A CN 113269542 A CN113269542 A CN 113269542A CN 202110558611 A CN202110558611 A CN 202110558611A CN 113269542 A CN113269542 A CN 113269542A
Authority
CN
China
Prior art keywords
block
node
information
blockchain system
consensus
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.)
Pending
Application number
CN202110558611.8A
Other languages
English (en)
Inventor
张锦南
余泽峰
张永久
田锐
郭玉
张霞
颜鑫
袁学光
张阳安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Publication of CN113269542A publication Critical patent/CN113269542A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本申请公开了一种区块链系统的共识方法、装置以及存储介质。其中,区块链系统的共识方法包括:区块链系统的第一节点从远程的预定设备接收指派信息,其中指派信息用于指派第一节点作为区块链系统的记账节点;以及根据指派信息,第一节点与预定设备指派的其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作。从而缩小了共识的范围,限制了广播的次数,大幅度提高交易的处理速度。

Description

区块链系统的共识方法、装置以及存储介质
技术领域
本申请涉及区块链系统领域,特别是涉及一种区块链系统的共识方法、装置以及存储介质。
背景技术
区块链如今成为数字货币实现去中心化的核心,被定义为一种融合多种现有技术的新型分布式计算和存储范式。其基本思想是让单节点生产一个时段的数据变更结果(区块),之后让全网通过共识算法达成数据一致,形成存储意义上的链条。而区块链的热门应用领域为法定数字货币,目前各国都在争先恐后地研究数字货币,有很多学者也提出了自己对法定数字货币的设计理念,从不同的角度解决了传统公有数字货币中存在的性能和监管问题。
共识机制是区块链系统的核心,可以说大部分区块链架构的组成都是围绕共识机制展开设计的。共识机制规定了节点之间以何种方式进行账本的同步,这其中必须考虑每个节点可能出现的故障,以及可能被非法分子入侵,从而发布扰乱网络秩序的信号等情况。共识机制必须保证在任何极端情况下,网络中所剩下的正常节点仍然能进行正确的数据同步。需要说明的是,共识机制中的信道默认是可靠的,因为在不可靠信道中达成共识被证明是无法完成的。但是,证明类传统区块链共识比如工作证明共识机制和权益证明共识机制,无法满足数字货币对效率的需求,拜占庭容错算法在节点较多时的表现不佳,结合型的授权证明和拜占庭容错共识算法较为契合法定数字货币,但该共识算法在速率方面仍然有改进的空间。
针对上述的现有技术中存在的共识速率低和交易处理速度缓慢的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请的实施例提供了一种区块链系统的共识方法、装置以及存储介质,以至少解决现有技术中存在的共识速率低和交易处理速度缓慢的技术问题。
根据本申请实施例的一个方面,提供了一种区块链系统的共识方法,包括:区块链系统的第一节点从远程的预定设备接收指派信息。其中指派信息用于指派第一节点作为区块链系统的记账节点;以及根据指派信息,第一节点与预定设备指派的其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作。。
根据本申请实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本申请实施例的另一个方面,还提供了一种区块链系统的共识装置,包括:接收模块,用于区块链系统的第一节点从远程的预定设备接收指派信息。其中指派信息用于指派第一节点作为区块链系统的记账节点;以及出块模块,用于根据指派信息,第一节点与预定设备指派的其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作。
根据本申请实施例的另一个方面,还提供了一种区块链系统的共识装置,包括:第一处理器;以及第一存储器,与第一处理器连接,用于为第一处理器提供处理以下处理步骤的指令:区块链系统的第一节点从远程的预定设备接收指派信息。其中指派信息用于指派第一节点作为区块链系统的记账节点;以及根据指派信息,第一节点与预定设备指派的其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作。
在本申请实施例中,首先由核心数据中心直接指派记账节点。这样一方面省去了需要数字货币参与者随时准备投票的操作,记账节点的身份也更为稳定,拥有了核心数据中心的合法性担保;另一方面,不需要有其他候选人节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。其次,本技术方案将委托股权证明共识算法与拜占庭容错算法相结合进行区块链系统的出块操作,从而缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。从而解决了现有技术中存在的共识速率低和交易处理速度缓慢的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是用于实现根据本申请实施例1所述的方法的计算设备的硬件结构框图;
图2是根据本申请实施例1所述的区块链系统的共识系统的示意图;
图3是根据本申请实施例1的第一个方面所述的区块链系统的共识方法的流程示意图;
图4是根据本申请实施例1的第一个方面所述的基于委托股权证明和拜占庭容错共识机制的流程示意图;
图5是根据本申请实施例1的第一个方面所述的跳块机制的流程示意图;
图6是根据本申请实施例2的第一个方面所述的区块链系统的共识装置的示意图;以及
图7是根据本申请实施例3的第一个方面所述的区块链系统的共识装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,提供了一种区块链系统的共识方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现区块链系统的共识方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本申请实施例中的区块链系统的共识方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的区块链系统的共识方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2是根据本实施例所述的区块链系统的共识系统的示意图。参照图2所示,该系统包括:终端设备110以及区块链系统120。其中,终端设备110例如可以通过网络访问区块链系统120。区块链系统120包括:二级节点;一级节点(即记账节点);以及核心数据中心。其中核心数据中心例如可以是设置于中央银行等权威部门的数据中心,其可以任免指派一级节点。一级节点用于共识和区块生产,二级节点用于从终端设备110接收数据,并将数据发送给一级节点。其中二级节点隶属于一级节点。此外,区块链系统120中的一级节点在生成区块后,也会将区块同步到核心数据中心。从而核心数据中心也会存储区块链系统120的区块链数据。需要说明的是,系统中的终端设备110、一级节点、二级节点以及核心数据中心均可适用上面所述的硬件结构。
在上述运行环境下,根据本实施例的第一个方面,提供了一种区块链系统的共识方法,该方法由图2中所示的区块链系统120中的一级节点(例如一级节点C)实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:区块链系统的第一节点从远程的预定设备接收指派信息,其中指派信息用于指派第一节点作为区块链系统的记账节点;以及
S304:根据指派信息,第一节点与预定设备指派的其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作。
正如背景技术中所述的,常见的共识机制中,证明类传统区块链共识比如工作证明共识机制和权益证明共识机制,无法满足数字货币对效率的需求,拜占庭容错算法在节点较多时的表现不佳,结合型的授权证明和拜占庭容错共识算法较为契合法定数字货币,但该共识算法在速率方面仍然有改进的空间。
为了解决该技术问题,本申请提供了一种基于委托股权证明和拜占庭容错的区块链共识机制的技术方案。具体地,参考图4所示,节点C(即第一节点)可以从核心数据中心(即预定设备)接收指派信息,其中核心数据中心通过该指派信息指派节点C成为区块链系统的一级节点(即记账节点)(S302)。此外,核心数据中心指派的一级节点还包括节点A、节点B和节点D。从而一级节点C可以与一级节点A、一级节点B和一级节点D根据拜占庭容错算法,进行区块链系统的出块操作。
从而在本申请的技术方案中,首先由核心数据中心直接指派记账节点。这样一方面省去了需要数字货币参与者随时准备投票的操作,记账节点的身份也更为稳定,拥有了核心数据中心的合法性担保;另一方面,不需要有其他候选人节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。其次,本技术方案将委托股权证明共识算法与拜占庭容错算法相结合进行区块链系统的出块操作,从而缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。从而解决了现有技术中存在的共识速率低和交易处理速度缓慢的技术问题。
可选地,第一节点与其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作,包括:第一节点获取第一交易数据,并生成与第一交易数据对应的第一区块;第一节点将所生成的第一区块发送至其他记账节点,并从其他记账节点接收针对第一区块的验证签名信息;在根据验证签名信息的数量能够判定发生故障的记账节点的数量小于记账节点的总数的1/3的情况下,将第一区块写入区块链系统的区块链。
具体地,参考图4所示,一级节点C(即第一节点)例如从通信连接的二级节点获取交易数据(即第一交易数据),并将交易数据打包成交易组。然后,一级节点C根据交易组生产出一个新区块(即第一区块,对应于图中所述的预区块)。此时的区块只是一个预区块,仅在一级节点C本地保存,尚未得到其他一级节点的验证。一级节点C将该区块签名后广播给其他一级节点,一级节点D、一级节点A和一级节点B会先将区块存入自己的缓存中,然后对区块的合法性进行校验,若校验通过将返回自己对该区块的验证签名。一级节点C在收集到2/3的一级节点的签名后,该区块便达到了不可逆状态。之后一级节点C会生成一个签名集,并再次广播给其他一级节点,然后将预区块连同签名一起写入区块链。此时区块链系统120已经开始进行下一个区块周期了,即使其他一级节点没来得及将区块放入区块链,由于一级节点C的区块已经得到2/3的一级节点的验证,所以该区块是合法的。一级节点D、一级节点A和一级节点B收到签名集后,对签名集进行校验,并将缓存中的区块取出写入本地的区块链中。从而通过这样的方式,缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。
此外,尽管此处以一级节点C为例说明对新区块进行共识的过程,对于其他一级节点A、B和D,也同样适用于该过程。此处不再赘述。
可选的,区块链系统的共识方法还包括:第一节点从预定设备接收块号信息,其中块号信息用于确定由第一节点生成的区块的区块号。并且第一节点获取第一交易数据,并生成与第一交易数据对应的第一区块的操作,包括:第一节点根据块号信息确定待生成的第一区块的区块号;以及第一节点获取交易数据,并根据所确定的区块号生成第一区块。
具体地,参考图4以及图5所示,一级节点C(即第一节点)可以从核心数据中心(即预定设备)接收到块号信息,并且根据块号信息确定待生成的区块(即第一区块)的区块号。例如一级节点C可以根据块号信息确定待生成的区块的区块号为“3”。
在这种情况下,如果一级节点C根据区块链已生成的区块的区块号确定待生成的区块的区块号也为“3”,由于根据块号信息和已生成的区块的区块号所确定的待生成的区块的区块号均为“3”,因此一级节点C从隶属的二级节点中获取交易数据(即第一交易数据),并以序号“3”作为新生成的区块(即第一区块)的区块号生成新的区块。
如果一级节点C根据区块链已生成的区块的区块号确定待生成的区块(即第一区块)的区块号不是“3”,例如是“2”。由于根据区块链已生成的区块的区块号所确定的区块号与根据块号信息所确定的区块号不一致,因此意味着一级节点B可能存在宕机或网络延迟,导致一级节点B所产生的区块号为“2”的区块未能到达一级节点C。在这种情况下,一级节点C不生成区块号为“2”的区块,而是仍然以序号“3”作为新生成的区块的区块号,并生成区块号为“3”的区块。从而,避免区块链系统120出现两个区块号为“2”的区块。
也就是说,在本实施例中,区块链系统的记账节点不是按照区块链块号自由增长的方式来确定新生成的区块的区块号,而是根据从核心数据中心所接收的块号信息来确定新生成的区块的区块号。在这种情况下,即便是因为网络延迟或者由于其他记账节点宕机,导致出块的记账节点未能及时接收到其他记账节点生成的区块,记账节点也可以跳过该区块的区块号并按照所接收的块号信息确定新生成的区块的区块号,从而通过这种方式,避免了由于网络延迟或者其他节点宕机导致的分叉。并且还可以在避免区块链产生分叉的同时,减少共识的轮次,将拜占庭共识算法的两轮共识缩短为一轮。
可选地,块号信息包含第一节点在一个出块周期内,相对于其他记账节点的出块顺序。并且第一节点根据块号信息确定待生成的第一区块的区块号的操作,包括:第一节点根据出块顺序,确定第一区块的区块号。
具体地,参考图4以及图5所示,一级节点C(即第一节点)根据接收到的块号信息,确定一级节点(即记账节点)的出块顺序为:一级节点A、一级节点B、一级节点C和一级节点D。根据该顺序,在第一个出块周期内,一级节点A将要生成的区块为区块1,一级节点B将要生成的区块为区块2,一级节点C将要生成的区块为区块3,一级节点D将要生成的区块为区块4。在第二个出块周期内,一级节点A将要生成的区块为区块5,一级节点B将要生成的区块为区块6,一级节点C将要生成的区块为区块7,一级节点D将要生成的区块为区块8,并以次类推。
此外,如果在第一个出块周期内,一级节点中出现宕机的节点,例如节点B出现宕机,则核心数据中心会更新该块号信息,重新确定在后续周期中剩余的一级节点的出块顺序。例如,一级节点C根据更新的块号信息,重新确定剩余的一级节点的出块顺序为:一级节点A、一级节点C和一级节点D。从而在第二个出块周期内,一级节点A将要生成的区块为区块5,一级节点C将要生成的区块为区块6,一级节点D将要生成的区块为区块7,并以此类推。
从而一级节点C可以根据块号信息所包含的出块顺序,确定待生成的区块的区块号。从而避免了由于网络延迟或者其他节点宕机导致的分叉。并且还可以在避免区块链产生分叉的同时,减少共识的轮次,将拜占庭共识算法的两轮共识缩短为一轮。
可选地,区块链系统的共识方法还包括:第一节点从预定设备接收宕机信息。其中宕机信息用于指示其他记账节点中出现宕机的第二节点;以及第一节点根据宕机信息,代替第二节点执行与第二节点相关的验证签名操作。
具体地,参考图5所示,一级节点B(即第二节点)在产生区块2时发生宕机,并无法通知其他一级节点。核心数据中心(即预定设备)在同步区块2的过程中会发现区块2的缺失,此时将主动去检测一级节点B和其他一级节点的状态。当核心数据中心检测到一级节点B发生宕机的情况下,就会向其他一级节点广播宕机信息,将一级节点B发生宕机的情况通知其他一级节点。从而,一级节点C(即第一节点)会根据预先设置的指令,代替一级节点B执行与一级节点B相关的验证签名操作。例如,在后续的产生区块的过程中,当一级节点A生成区块5,并将区块5进行广播时,一级节点C不仅代表自己对区块5进行验证和签名,还代替一级节点B对区块5进行验证和签名。并且,一级节点C会替代一级节点B执行记账操作,以便一级节点B恢复正常工作后,将替代一级节点B进行验证和签名的区块同步至一级节点B。
从而通过这种方式,在区块链系统120中,当有一级节点出现宕机等故障时,可以由其他一级节点代为实现除了产生区块之外的其他功能。因此本实施例的技术方案不必再针对一级节点指派或确认候补节点。从而不需要有其他候补节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。
可选地,区块链系统的共识方法还包括:第一节点从预定设备接收跳块信息。其中跳块信息用于指示跳过第一区块之前的第二区块的区块号,在区块链系统的区块链中写入数据区块,其中第二区块由第二节点生成;以及第一节点根据跳块信息,跳过第二区块的区块号将第一区块写入区块链系统的区块链。
具体地,参考图5所示,一级节点(即记账节点)的出块顺序为:一级节点A、一级节点B(即第二节点)、一级节点C(即第一节点)和一级节点D。一级节点B在生产区块2时,出现了宕机。核心数据中心(即预定该设备)在同步区块2的过程中会发现区块2的缺失,此时将主动去检测一级节点B和其他一级节点的状态。当核心数据中心检测到一级节点B发生宕机的情况下,会向其他的一级节点A、一级节点C和一级节点D发送跳块信息,指示其他一级节点跳过区块2的区块号。从而一级节点C在接收到该跳块信息后,会跳过一级节点B的区块号“2”,将区块号“3”作为生成的区块(即第一区块)的区块号,并将该区块写入区块链。从而通过这种方式,本实施例可以在避免区块链产生分叉的同时,减少共识的轮次,将拜占庭共识算法的两轮共识缩短为一轮。
此外需要说明的是,由于一级节点B是在生产区块2的过程中发生宕机,因此一级节点C在生成区块3(即第一区块)时,不会拉取一级节点B为产生区块2而拉取的交易数据来打包生成区块,而仅仅拉取后续交易数据并写入区块3中。从而通过这种方式,避免了交易数据的重复记录。
可选地,区块链系统的共识方法还包括:第一节点根据宕机信息,重新确定由第一节点生成的后续区块的区块号。
具体地,如果有一级节点在出块过程中发生故障,暂时无法正常工作,其他一级节点则需要重新确定应该由自己生成的后续区块的区块号。参考图5所示,一级节点(即记账节点)的出块顺序为:一级节点A、一级节点B、一级节点C(即第一节点)和一级节点D。由此可知,由一级节点A生产区块1,一级节点B生产区块2,一级节点C生产区块3,一级节点D生产区块4,以此类推。如果一级节点B在生产区块2时发生宕机,核心数据中心向一级节点A、一级节点C和一级节点D发送宕机信息,指示一级节点跳过区块2的区块号。从而一级节点A、C和D会根据宕机信息重新确定后续生成的区块的区块后。例如之后一级节点D生产完成区块4后,又轮到一级节点A生产区块5,因为一级节点B发生故障还未恢复正常工作,并不参与生产区块。所以由一级节点C生产区块6,一级节点D生产区块7,一级节点A生产区块8。
此外,如果,一级节点B恢复正常重新加入时,首先必须对区块2进行共识操作,所以一级节点B继续生产区块2,并且其他一级节点A、C和D在接收区块2后会将区块2补充写入到区块链中。之后一级节点重新确定彼此出块的顺序从而重新确定各自生成的后续区块的区块号。例如,一级节点C生产区块9,一级节点D生产区块10。然后由一级节点A生产区块11,一级节点B生产区块12,一级节点C生产区块13,一级节点D生产区块14。从而通过这种方式,本技术方案可以在避免区块链产生分叉的同时,减少共识的轮次,提高共识速率。
可选地,在第二节点恢复正常工作的情况下,区块链系统的共识方法还包括:第一节点从第二节点接收第二区块;第一节点与其他记账节点对第二区块进行共识;以及第一节点将共识后的第二区块写入区块链系统的区块链。
具体地,参考图5所示,一级节点B(即第二节点)发生宕机后恢复正常工作后,需要先对未完成出块操作的区块2进行出块。例如一级节点B从通信连接的二级节点获取交易数据,并将交易数据打包成交易组。然后,一级节点B根据交易组生产出一个预区块,仅在一级节点B本地保存,尚未得到其他一级节点的验证。一级节点B将该区块签名后广播给其他一级节点,一级节点A、一级节点B和一级节点C(即第一节点)会先将区块存入自己的缓存中,然后对区块的合法性进行校验,若校验通过将返回自己对该区块的验证签名。一级节点B在收集到2/3的一级节点的签名后,该区块便达到了不可逆状态。之后一级节点B会生成一个签名集,并再次广播给其他一级节点,然后将预区块连同签名一起写入区块链。一级节点A、一级节点C和一级节点D收到签名集后,对签名集进行校验,并将缓存中的区块取出放在本地的区块链中。从而通过这样的方式,在发生宕机的一级节点恢复后,其他一级节点可以及时地对恢复正常的一级节点在发生宕机时所生成的区块进行保存,从而保障了区块链系统数据的完整。
可选地,在第二节点恢复正常工作的情况下,区块链系统的共识方法还包括:第一节点将代替第二节点进行验证签名的数据区块同步至第二节点。具体地,参考图5所示,当一级节点B(即第二节点)宕机时,一级节点C(即第一节点)则代替一级节点B继续工作。例如,当一级节点A生成区块5,并将区块5进行广播时,一级节点C不仅代表自己对区块5进行验证和签名,还代替一级节点B对区块5进行验证和签名。一级节点B恢复正常工作后,一级节点C将替代一级节点B进行验证和签名的数据区块同步至一级节点B。从而通过这种方式,本技术方案可以在一级节点从宕机中恢复后,将区块链系统在该一级节点宕机期间生成的数据同步到该一级节点,从而保证了区块链系统中的节点即便是发生过宕机也不会影响其数据的完整性。
从而根据本实施例的第一个方面,首先由核心数据中心直接指派记账节点。这样一方面省去了需要数字货币参与者随时准备投票的操作,记账节点的身份也更为稳定,拥有了核心数据中心的合法性担保;另一方面,不需要有其他候选人节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。其次,本技术方案将委托股权证明共识算法与拜占庭容错算法相结合进行区块链系统的出块操作,从而缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。从而解决了现有技术中存在的共识速率低和交易处理速度缓慢的技术问题。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,首先由核心数据中心直接指派记账节点。这样一方面省去了需要数字货币参与者随时准备投票的操作,记账节点的身份也更为稳定,拥有了核心数据中心的合法性担保;另一方面,不需要有其他候选人节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。其次,本技术方案将委托股权证明共识算法与拜占庭容错算法相结合进行区块链系统的出块操作,从而缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。从而解决了现有技术中存在的共识速率低和交易处理速度缓慢的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图6示出了根据本实施例的第一个方面所述的区块链系统的共识装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:接收模块610,用于区块链系统的第一节点从远程的预定设备接收指派信息,其中指派信息用于指派第一节点作为区块链系统的记账节点;以及出块模块620,用于根据指派信息,第一节点与预定设备指派的其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作。
可选地,出块模块620,包括:出块子模块,用于第一节点获取第一交易数据,并生成与第一交易数据对应的第一区块;第一节点将所生成的第一区块发送至其他记账节点,并从其他记账节点接收针对第一区块的验证签名信息;在根据验证签名信息的数量能够判定发生故障的记账节点的数量小于记账节点的总数的1/3的情况下,将第一区块写入区块链系统的区块链。
可选地,出块模块620,还包括:确定子模块,用于第一节点从预定设备接收块号信息,其中块号信息用于确定由第一节点生成的区块的区块号,并且出块子模块,包括:判定子模块,用于第一节点根据块号信息确定待生成的第一区块的区块号;以及第一节点获取交易数据,并根据所确定的区块号生成第一区块。
可选地,出块模块620,包括:用于块号信息包含第一节点在一个出块周期内,相对于其他记账节点的出块顺序,并且判定子模块,包括:第一节点根据出块顺序,确定第一区块的区块号。
可选地,出块模块620,还包括:指示子模块,用于第一节点从预定设备接收宕机信息,其中宕机信息用于指示其他记账节点中出现宕机的第二节点;以及代替子模块,用于第一节点根据宕机信息,代替第二节点执行与第二节点相关的验证签名操作。
可选地,出块模块620,还包括:接收子模块,用于第一节点从预定设备接收跳块信息,其中跳块信息用于指示跳过第一区块之前的第二区块的区块号,在区块链系统的区块链中写入数据区块,其中第二区块由第二节点生成;以及写入子模块,用于第一节点根据跳块信息,跳过第二区块的区块号将第一区块写入区块链系统的区块链。
可选地,出块模块620,还包括:确定子模块,用于第一节点根据宕机信息,重新确定由第一节点生成的后续区块的区块号。
可选地,出块模块620,还包括:接收子模块,用于在第二节点恢复正常工作的情况下,第一节点从第二节点接收第二区块;共识子模块,用于第一节点与其他记账节点对第二区块进行共识;以及写入子模块,用于第一节点将共识后的第二区块写入区块链系统的区块链。
可选地,出块模块620,还包括:同步子模块,用于在第二节点恢复正常工作的情况下,第一节点将代替第二节点进行验证签名的数据区块同步至第二节点。
从而根据本实施例,首先由核心数据中心直接指派记账节点。这样一方面省去了需要数字货币参与者随时准备投票的操作,记账节点的身份也更为稳定,拥有了核心数据中心的合法性担保;另一方面,不需要有其他候选人节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。其次,本技术方案将委托股权证明共识算法与拜占庭容错算法相结合进行区块链系统的出块操作,从而缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。从而解决了现有技术中存在的共识速率低和交易处理速度缓慢的技术问题。
实施例3
图7示出了根据本实施例的第一个方面所述的区块链系统的共识装置700,该装置700与根据实施例1的第一个方面所述的方法相对应。参考图7所示,该装置700包括:第一处理器710;以及第一存储器720,与第一处理器710连接,用于为第一处理器710提供处理以下处理步骤的指令:区块链系统的第一节点从远程的预定设备接收指派信息,其中指派信息用于指派第一节点作为区块链系统的记账节点;以及根据指派信息,第一节点与预定设备指派的其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作。
可选地,第一节点与其他记账节点根据拜占庭容错算法,进行区块链系统的出块操作,包括:第一节点获取第一交易数据,并生成与第一交易数据对应的第一区块;第一节点将所生成的第一区块发送至其他记账节点,并从其他记账节点接收针对第一区块的验证签名信息;在根据验证签名信息的数量能够判定发生故障的记账节点的数量小于记账节点的总数的1/3的情况下,将第一区块写入区块链系统的区块链。
可选地,装置还包括:第一节点从预定设备接收块号信息,其中块号信息用于确定由第一节点生成的区块的区块号,并且第一节点获取第一交易数据,并生成与第一交易数据对应的第一区块的操作,包括:第一节点根据块号信息确定待生成的第一区块的区块号;以及第一节点获取交易数据,并根据所确定的区块号生成第一区块。
可选地,块号信息包含第一节点在一个出块周期内,相对于其他记账节点的出块顺序,并且第一节点根据块号信息确定待生成的第一区块的区块号的操作,包括:第一节点根据出块顺序,确定第一区块的区块号。
可选地,装置还包括:第一节点从预定设备接收宕机信息,其中宕机信息用于指示其他记账节点中出现宕机的第二节点;以及第一节点根据宕机信息,代替第二节点执行与第二节点相关的验证签名操作。
可选地,装置还包括:第一节点从预定设备接收跳块信息,其中跳块信息用于指示跳过第一区块之前的第二区块的区块号,在区块链系统的区块链中写入数据区块,其中第二区块由第二节点生成;以及第一节点根据跳块信息,跳过第二区块的区块号将第一区块写入区块链系统的区块链。
可选地,装置还包括:第一节点根据宕机信息,重新确定由第一节点生成的后续区块的区块号。
可选地,在第二节点恢复正常工作的情况下,装置还包括:第一节点从第二节点接收第二区块;第一节点与其他记账节点对第二区块进行共识;以及第一节点将共识后的第二区块写入区块链系统的区块链。
可选地,在第二节点恢复正常工作的情况下,装置还包括:第一节点将代替第二节点进行验证签名的数据区块同步至第二节点。
从而根据本实施例,首先由核心数据中心直接指派记账节点。这样一方面省去了需要数字货币参与者随时准备投票的操作,记账节点的身份也更为稳定,拥有了核心数据中心的合法性担保;另一方面,不需要有其他候选人节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。其次,本技术方案将委托股权证明共识算法与拜占庭容错算法相结合进行区块链系统的出块操作,从而缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。从而解决了现有技术中存在的共识速率低和交易处理速度缓慢的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种区块链系统的共识方法,其特征在于,包括:
区块链系统的第一节点从远程的预定设备接收指派信息,其中所述指派信息用于指派所述第一节点作为所述区块链系统的记账节点;以及
根据所述指派信息,所述第一节点与所述预定设备指派的其他记账节点根据拜占庭容错算法,进行所述区块链系统的出块操作。
2.根据权利要求1所述的方法,其特征在于,所述第一节点与所述其他记账节点根据拜占庭容错算法,进行所述区块链系统的出块操作,包括:
所述第一节点获取第一交易数据,并生成与所述第一交易数据对应的第一区块;
所述第一节点将所生成的第一区块发送至所述其他记账节点,并从所述其他记账节点接收针对所述第一区块的验证签名信息;以及
在根据所述验证签名信息的数量能够判定发生故障的记账节点的数量小于记账节点的总数的1/3的情况下,将所述第一区块写入所述区块链系统的区块链,并且
方法还包括:所述第一节点从所述预定设备接收块号信息,其中所述块号信息用于确定由所述第一节点生成的区块的区块号,并且
所述第一节点获取第一交易数据,并生成与所述第一交易数据对应的第一区块的操作,包括:所述第一节点根据所述块号信息确定待生成的所述第一区块的区块号;以及所述第一节点获取所述交易数据,并根据所确定的区块号生成所述第一区块。
3.根据权利要求2所述的方法,其特征在于,所述块号信息包含所述第一节点在一个出块周期内,相对于其他记账节点的出块顺序,并且
所述第一节点根据所述块号信息确定待生成的所述第一区块的区块号的操作,包括:所述第一节点根据所述出块顺序,确定所述第一区块的区块号。
4.根据权利要求2所述的方法,其特征在于,方法还包括:
所述第一节点从所述预定设备接收宕机信息,其中所述宕机信息用于指示所述其他记账节点中出现宕机的第二节点;以及
所述第一节点根据所述宕机信息,代替所述第二节点执行与所述第二节点相关的验证签名操作。
5.根据权利要求4所述的方法,其特征在于,方法还包括:
所述第一节点从所述预定设备接收跳块信息,其中所述跳块信息用于指示跳过所述第一区块之前的第二区块的区块号,在所述区块链系统的区块链中写入数据区块,其中所述第二区块由所述第二节点生成;以及
所述第一节点根据所述跳块信息,跳过所述第二区块的区块号将所述第一区块写入所述区块链系统的区块链,并且其中
在所述第二节点恢复正常工作的情况下,方法还包括:
所述第一节点从所述第二节点接收所述第二区块;
所述第一节点与所述其他记账节点对所述第二区块进行共识;以及
所述第一节点将共识后的所述第二区块写入所述区块链系统的区块链。
6.根据权利要求4所述的方法,其特征在于,方法还包括:所述第一节点根据所述宕机信息,重新确定由所述第一节点生成的后续区块的区块号。
7.根据权利要求4所述的方法,其特征在于,在所述第二节点恢复正常工作的情况下,方法还包括:
所述第一节点将代替所述第二节点进行验证签名的数据区块同步至所述第二节点。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至7中任意一项所述的方法。
9.一种区块链系统的共识装置,其特征在于,包括:
接收模块,用于区块链系统的第一节点从远程的预定设备接收指派信息,其中所述指派信息用于指派所述第一节点作为所述区块链系统的记账节点;以及
出块模块,用于根据所述指派信息,所述第一节点与所述预定设备指派的其他记账节点根据拜占庭容错算法,进行所述区块链系统的出块操作。
10.一种区块链系统的共识装置,其特征在于,包括:
第一处理器;以及
第一存储器,与所述第一处理器连接,用于为所述第一处理器提供处理以下处理步骤的指令:
区块链系统的第一节点从远程的预定设备接收指派信息,其中所述指派信息用于指派所述第一节点作为所述区块链系统的记账节点;以及
根据所述指派信息,所述第一节点与所述预定设备指派的其他记账节点根据拜占庭容错算法,进行所述区块链系统的出块操作。
CN202110558611.8A 2021-04-07 2021-05-21 区块链系统的共识方法、装置以及存储介质 Pending CN113269542A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021103729579 2021-04-07
CN202110372957 2021-04-07

Publications (1)

Publication Number Publication Date
CN113269542A true CN113269542A (zh) 2021-08-17

Family

ID=77232289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110558611.8A Pending CN113269542A (zh) 2021-04-07 2021-05-21 区块链系统的共识方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN113269542A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124410A (zh) * 2021-11-30 2022-03-01 上海华能电子商务有限公司 一种适用于供应链场景下多方验证的改进型poa共识方法
CN114640462A (zh) * 2022-02-17 2022-06-17 北京邮电大学 区块链隐私保护方法、装置、电子设备及存储介质
CN114710507A (zh) * 2022-03-30 2022-07-05 蚂蚁区块链科技(上海)有限公司 一种共识方法和区块链节点
CN114640462B (zh) * 2022-02-17 2024-05-17 北京邮电大学 区块链隐私保护方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259078A (zh) * 2020-01-15 2020-06-09 广州运通链达金服科技有限公司 区块链共识方法、装置、计算机设备和存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259078A (zh) * 2020-01-15 2020-06-09 广州运通链达金服科技有限公司 区块链共识方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JINNAN ZHANG: ""A Hybrid Model for Central Bank Digital Currency Based on Blockchain"", 《IEEE》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124410A (zh) * 2021-11-30 2022-03-01 上海华能电子商务有限公司 一种适用于供应链场景下多方验证的改进型poa共识方法
CN114640462A (zh) * 2022-02-17 2022-06-17 北京邮电大学 区块链隐私保护方法、装置、电子设备及存储介质
CN114640462B (zh) * 2022-02-17 2024-05-17 北京邮电大学 区块链隐私保护方法、装置、电子设备及存储介质
CN114710507A (zh) * 2022-03-30 2022-07-05 蚂蚁区块链科技(上海)有限公司 一种共识方法和区块链节点
CN114710507B (zh) * 2022-03-30 2023-10-27 蚂蚁区块链科技(上海)有限公司 一种共识方法、区块链节点、介质和共识节点

Similar Documents

Publication Publication Date Title
CN107396360B (zh) 区块验证方法及装置
CN110430087B (zh) 区块链热升级的架构设计与实现
CN113269542A (zh) 区块链系统的共识方法、装置以及存储介质
CN109327528A (zh) 一种基于区块链的节点管理方法和装置
CN108769264B (zh) 一种区块链分域方法
CN111224804B (zh) 物联网设备的初始化方法、装置、物联网设备及存储介质
CN111683118B (zh) 基于区块链的共识方法、装置、主节点设备及从节点设备
CN110557452B (zh) 区块链的节点管理方法、装置、存储介质和计算机设备
CN110086856B (zh) 区块链节点的控制方法、装置、存储介质及电子设备
CN101968744A (zh) 一种基于irf系统的盒式设备升级方法和系统
CN110784495A (zh) 基于区块链的大数据集群系统的发现与配置信息管理方法
CN112398956B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
US11722976B2 (en) Time code synchronization method
CN113220421B (zh) 一种服务器集群的管理方法、管理服务器及管理系统
CN111061813B (zh) 用于区块链网络中的数据同步的方法、装置和计算设备
EP4195033A1 (en) Method and apparatus for upgrading blockchain system, and terminal device
CN112381599A (zh) 一种基于区块链技术的共享充电宝租赁系统及方法
CN111865983A (zh) 一种基于区块链的数据安全追溯方法
CN103259639A (zh) 一种堆叠设备的时钟同步方法和设备
CN115037472B (zh) 基于双层dag共识机制的交易处理方法及系统、服务设备
CN113630445B (zh) 一种基于区块链网络的数据存储方法及装置
CN112258184B (zh) 冻结区块链网络的方法、装置、电子设备及可读存储介质
CN110377548B (zh) 一种地址空间复用方法、装置及多路复用器
CN114610545A (zh) 减少私有云计算的单点故障的方法、系统、设备及介质
CN112988882A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210817

RJ01 Rejection of invention patent application after publication