CN111741121A - 区块链中的垃圾信息的处理方法和系统 - Google Patents
区块链中的垃圾信息的处理方法和系统 Download PDFInfo
- Publication number
- CN111741121A CN111741121A CN202010629736.0A CN202010629736A CN111741121A CN 111741121 A CN111741121 A CN 111741121A CN 202010629736 A CN202010629736 A CN 202010629736A CN 111741121 A CN111741121 A CN 111741121A
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- message
- target
- nodes
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书公开了一种区块链中的垃圾信息的处理方法和系统,该方法包括:在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,所述第一消息携带所述目标提议对应的目标区块号,所述第一共识节点是对所述目标提议达成共识的共识节点之一;接收到所述第一消息的第二共识节点,向所述第一共识节点发送第二消息,所述第二消息中携带所述第二共识节点中上一个已达成共识的提议对应的区块号;所述第一共识节点基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量;当所述共识节点数量达到N‑f个时,所述第一共识节点对所述目标提议进行共识操作过程中产生的垃圾信息进行清理。
Description
技术领域
本文件涉及计算机技术领域,尤其涉及一种区块链中的垃圾信息的处理方法和系统。
背景技术
目前,在区块链网络中,蜜獾拜占庭容错算法(Honey Badger Byzantine FaultTolerance,HoneyBadgerBFT)共识算法通常依赖于异步网络,即该网络中所有忠诚共识节点之间发送的消息都必须最终到达。在对HoneyBadgerBFT拜占庭容错算法中异步网络的实现方案中,在每轮共识操作,发送端共识节点发送给接收端共识节点的消息都会被预先存储下来,然后持续重发,直到接收端共识节点返回确认消息。
那么在每轮共识操作完成之后,一方面,如果接收端共识节点在接收到发送端共识节点发送的消息之后没有及时返回确认消息,则会导致接收端共识节点会存在一些垃圾消息;另一方面,由于发送端共识节点对于已发送的消息在本地也会存储下来,因此,在消息达成共识之后,发送端共识节点也会累积一些垃圾消息。
发明内容
本说明书实施例提供了一种区块链中的垃圾信息的处理方法和系统,以解决现有的区块链中在每轮共识操作完成之后,都会产生一些垃圾信息的问题。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种区块链中的垃圾信息的处理方法,包括:
在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,所述第一消息携带所述目标提议对应的目标区块号,所述第一共识节点是对所述目标提议达成共识的共识节点之一;
接收到所述第一消息的第二共识节点,向所述第一共识节点发送第二消息,所述第二消息中携带所述第二共识节点中上一个已达成共识的提议对应的区块号;
所述第一共识节点基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量;
当所述共识节点数量达到N-f个时,所述第一共识节点对所述目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为所述区块链中参与对所述目标提议进行共识的节点数量,f为所述区块链中允许的异常共识节点最大数量。
第二方面,提出了一种区块链系统,包括:
区块链中的第一共识节点,在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,所述第一消息携带所述目标提议对应的目标区块号,所述第一共识节点是对所述目标提议达成共识的共识节点之一;
接收到所述第一消息的第二共识节点,向所述第一共识节点发送第二消息,所述第二消息中携带所述第二共识节点中上一个已达成共识的提议对应的区块号;
所述第一共识节点,基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量;以及当所述共识节点数量达到N-f个时,对所述目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为所述区块链中参与对所述目标提议进行共识的节点数量,f为所述区块链中允许的异常共识节点最大数量。
本说明书实施例采用上述技术方案至少可以达到下述技术效果:
在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,该第一消息携带目标提议对应的目标区块号,第一共识节点是对目标提议达成共识的共识节点之一;接收到第一消息的第二共识节点,向第一共识节点发送第二消息,该第二消息中携带第二共识节点中上一个已达成共识的提议对应的区块号;第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量;当共识节点数量达到N-f个时,第一共识节点对目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为区块链中参与对目标提议进行共识的节点数量,f为区块链中允许的异常共识节点最大数量。采用本说明书实施例提供的方法,一方面能够及时清理了一轮共识操作过程中,共识节点中产生的垃圾信息;另一方面,在N-f个共识节点对目标提议都完成共识之后再进行垃圾清理,也能保证绝大多数共识节点对目标提议达成共识,且不会对共识节点中的下一轮共识操作产生不良影响。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书一个实施例提供的一种区块链中的垃圾信息的处理方法的实施流程示意图;
图2为本说明书一个实施例提供的区块链中的垃圾信息的处理方法应用于实际场景中的示意图;
图3为本说明书一个实施例提供的一种区块链系统的结构示意图。
具体实施方式
为使本文件的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本文件一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文件保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
如背景技术中所述,在采用HoneyBadgerBFT共识算法对发起的共识提议进行共识操作过程中,由于HoneyBadgerBFT共识算法的机制决定了区块链网络中所有忠诚共识节点之间发送的消息都必须最终到达,那么在每轮共识操作,发送端共识节点发送给接收端共识节点的消息都会被预先存储下来,然后由发送端共识节点持续重发消息至接收端阶段,直到接收端共识节点向发送端共识节点返回确认消息,此时发送端共识节点才会停止向接收端共识节点发送消息。
显然,在每轮共识操作结束且对共识的数据成块之后,区块链中参与共识操作的共识节点本地都会存在一些垃圾信息,比如已发送且保存在本地的消息,多次重复接收到的消息,这些消息日积月累将会占用共识节点本地越来越大的内存空间,如果不及时清理,则会导致共识节点本地的存储空间不足,进而影响下一阶段的共识操作。
目前,有些技术人员提出使用f+1个聚合签名来实现CHECKPOINT机制,用于垃圾回收,清理共识节点中的垃圾消息。但是该方案未完全考虑对系统活跃度和可用性的影响,仅使用f+1个聚合签名虽然能够确保f+1个共识节点的完成共识操作,但如果此时就垃圾回收,且假设区块链中的其他共识节点此时未完成共识操作,就会导致这些共识节点会将本来应该发送的消息删除,这就需要通过sync或recovery机制来追块。这对于未完成共识的共识节点对下一个提议的共识操作会造成不良后果,即此时f+1个共识节点已进入下一轮共识操作,而这些未完成共识操作的共识节点还需要从其他已完成共识操作的共识节点处追块,影响了系统的可用性。
本说明书一个或多个实施例为了解决这一问题,提出一种区块链中的垃圾信息的处理方法。在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,该第一消息携带目标提议对应的目标区块号,第一共识节点是对目标提议达成共识的共识节点之一;接收到第一消息的第二共识节点,向第一共识节点发送第二消息,该第二消息中携带第二共识节点中上一个已达成共识的提议对应的区块号;第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量;当共识节点数量达到N-f个时,第一共识节点对目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为区块链中参与对目标提议进行共识的节点数量,f为区块链中允许的异常共识节点最大数量。
采用本说明书实施例提供的方法,一方面能够及时清理了一轮共识操作过程中,共识节点中产生的垃圾信息;另一方面,在N-f个共识节点对目标提议都完成共识之后再进行垃圾清理,也能保证绝大多数共识节点对目标提议达成共识,且不会对共识节点中的下一轮共识操作产生不良影响。
具体地,本说明书一个或多个实施例提供的一种区块链中的垃圾信息的处理方法的实现流程示意图如图1所示,包括:
S110,在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,第一消息携带目标提议对应的目标区块号,第一共识节点是对目标提议达成共识的共识节点之一。
应理解,区块链中参与对目标提议进行共识的共识节点的数量往往有多个,在对目标提议进行共识的过程中,这多个共识节点之间往往需要进行多次信息交互才能完成对目标提议的共识操作。那么在目标提议达成共识之后,即第一共识节点收到来自区块链中参与对目标提议共识的共识节点的至少2f+1个签名,则可达成对目标提议的共识。此时,第一共识节点可基于达成共识后的目标提议进行交易执行和写块操作,而在共识过程中已发送给其他共识节点的信息或者从其他共识节点处重复接收到的信息,则就成为了第一共识节点本地的垃圾信息。
本说明书实施例为了及时清理共识节点本地的垃圾信息,且减少对区块链网络中的共识节点的下一轮共识操作的影响,在目标提议达成共识之后,增加一轮信息交互,快速确认与共识节点之间存在信息交互的其他共识节点是否已完成对目标提议的共识操作。具体地,在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,该第一消息携带目标提议对应的目标区块号,即目标提议在达成共识后将要写入的区块号,该第一消息用于触发接收到第一消息的共识节点对第一消息进行响应,从而获取接收到第一消息的共识节点当前已完成共识的提议对应的区块号。
可选地,由于本说明书实施例提供的方法不区分共识主节点和共识备份节点,即所应用的场景为每个参与共识的节点都可以发起提议,并能够达成一致,比如,一个共识节点M发起提议,其它共识节点N都可以配合发起提议的共识主节点M完成共识;同时,其它共识节点N发起提议,共识节点M都配合完成共识。基于该特定的应用场景,本说明书实施例提供的方法可应用于HoneyBadgerBFT共识算法场景中。具体地,在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,包括:
在目标提议通过HoneyBadgerBFT共识算法达成共识之后,第一共识节点在区块链中广播第一消息。
其中,目标提议通过HoneyBadgerBFT共识算法达成共识的过程包括:
第一共识节点将目标提议采用纠删码处理后拆分成N个数据块,假设为block00~block03四个数据块;
第一共识节点基于拆分成的4个数据块(block00 ~ block03)的哈希值(分别是Hash000~Hash003)构建一个默克尔树,第一个叶子节点为block00的哈希值Hash000、第二个叶子节点为block01的哈希值Hash001、……、第四个叶子节点为block03的哈希值Hash003,且哈希值Hash000和哈希值Hash001的二次哈希值为Hash00,哈希值Hash002和哈希值Hash003的二次哈希值为Hash01,Hash00和哈希值Hash01的二次哈希值为Hash0(即默克尔根);
第一共识节点将block00保存在本地,将(block01和Hash000,Hash01,Hash0)发送至第二共识节点a,将(block02和Hash003 , Hash00 , Hash0 )发送至第二共识节点b,将(block03和Hash002 , Hash00 , Hash0 )发送至第二共识节点c。
上述消息(block01和Hash000,Hash01,Hash0)记为Rval (h,bj,sj ),其中,h是根哈希,bj是第j个数据块,sj是第j个数据块在对应的默克尔路径的默克尔证明。
第二共识节点在接收到Rval (h,bj,sj)消息后,将接收到的(h,bj,sj)通过Echo消息广播给其它共识节点,消息格式为Echo(h,bj,sj),每个共识节点j,对于收到的Echo消息,检查该消息是否合法,如果不合法就抛弃;
例如,对于第二共识节点a,计算收到Block01的Hash001,将Hash001与接收到的Hash000计算得到Hash00,用该Hash00与接收到的Hash01计算得到Hash0,与收到的Hash0相比,相同则合法,不相同则丢弃Echo(h,bj,sj );
以此类推,对接收到的所有(h,bj,sj)进行校验,如果不合法即丢弃。
每个共识节点,当收到N-f个共识节点的Echo消息后(加上本地之前保存的),选取N-2f个数据块来还原消息,并重构默克尔树;校验重构的默克尔树的树根与之前的树根是否一致,不一致则丢弃;一致则广播Ready消息,并保存消息内容。
通过BA协议对目标提议进行共识处理和反馈,包括:
i,对于区块链中每个参与共识的节点,BA初始化,首轮r初始化为0,之后每轮递增,用input初始化est;
ii,对于区块链中每个参与共识的节点,广播本节点对某一提议的看法,使用Bval消息发送est,消息格式为Bvalr(estr);
iii,对于区块链中每个参与共识的节点,当收到≥f+1个共识节点的相同estr值(不包含自己的意见)时,如果自身没有广播过该estr值,则广播Bvalr(estr),本次广播的estr值与第一次广播的estr值不一样,这是为了纠正自己的观点;
iv,当收到≥2f+1个共识节点的相同estr值(包含自己当前的意见)时,将estr值保存到{bin_valuesr}集合中。{bin_valuesr}集合可能有四种状态,分别是:∅、{0}、{1}、{0,1},其中后三种是最终状态。
v,当{bin_valuesr}集合不为空(第一个放进来的值导致集合不为空)时,该值作为下一阶段的输入,下一个阶段开始;同时,本阶段也有可能继续进行,从而继续向{bin_valuesr}中添加值。
vii,当{bin_valuesr}集合不为空时,共识节点从{bin_valuesr}集合中取出值W,广播给其它共识节点,广播消息为Aux消息,消息格式为Auxr(W)。
viii,第一共识节点接收从第二共识节点发来的Aux消息,并将其中的W值存入本地的valuesr集合(不同于{bin_valuesr}集合),直到满足以下两个条件:
条件1、valuesr中的值必须存在于{bin_valuesr},这样可以确保valuesr中的值来自于非错误共识节点的广播;
条件2、至少收到N-f个共识节点发出的Auxr消息。
ix,第一共识节点通过抛币做决定,抛币过程是用一个各共识节点都一致的与r有关的公共因子sr对2取模的结果(即sr%2,sr例如可以是取当前r的值),抛币的结果是0或1,存在以下两种分支:
分支一:如果valuesr中只有一个值v(0或者1),当v等于sr%2时,则v是BA协议的output;当v不等于sr%2时,进入下轮共识,这时r加1(即r=r+1),之后设置下一轮的初始值estr=v;
分支二:如果valuesr中包含两个值{0,1},第一共识节点不做最终决定,直接进入下轮共识,r加1(即r=r+1),之后设置下一轮的初始值estr=sr%2。
本说明书实施例中,目标提议达成共识,具体可以是指所有的BA都有了结果,所有BA output为1的RBC也都完成了。
应理解,区块链中的共识节点数量是很庞大的,在对目标提议进行共识操作过程中,所参与的共识节点通常是区块链中的部分共识节点。具体地,在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,包括:
在目标提议达成共识之后,第一共识节点向所述区块链中参与目标提议的共识操作的节点发送第一消息。
S120,接收到第一消息的第二共识节点,向第一共识节点发送第二消息,第二消息中携带第二共识节点中上一个已达成共识的提议对应的区块号。
可选地,为了确定第二共识节点是否对目标提议已完成共识,本说明书实施例可通过第一共识节点向第二共识节点发送用于请求第二共识节点当前已完成共识的提议对应的区块号,如果当前已完成共识的提议对应的区块号大于或等于目标提议对应的目标区块号,则表明第二共识节点在接收第一消息时,已完成对目标提议的共识操作。具体地,接收到第一消息的第二共识节点,向第一共识节点发送第二消息,包括:
接收到第一消息的第二共识节点,确定第二共识节点中上一个已达成共识的提议对应的区块号;
接收到第一消息的第二共识节点,基于第二共识节点中上一个已达成共识的提议对应的区块号,生成第二消息,并向第一共识节点发送第二消息。
S130,第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量。
可选地,在第一共识节点和第二共识节点交互过程中,为了确保第二共识节点能够接收到第一共识节点发送的第二消息,第二共识节点可能会在第一共识节点对接收到的第二消息返回确认消息之后,持续重发第二消息,以确保第一共识节点接收到第二共识节点发送的第二消息。在这种情况下,第一共识节点就可能会接收到同一个第二共识节点重复发送的至少两个第二消息。本说明书实施例为了避免第一共识节点在统计第二消息时,重复统计同一个第二共识节点发送的多个同一第二消息,可在第二消息中添加共识节点标识,即表明第二消息来源于哪个第二共识节点。
具体地,第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量,包括:
第一共识节点在第一消息广播之后的预设时间段内接收第二消息;
第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量。
可选地,为了确保第一共识节点在进行垃圾信息清理时,影响下一轮提议的共识操作,本说明书实施例在第一共识节点确定接收到的来自不同第二节点的第二消息中区块号小于目标区块号的第二消息数量小于N-f时,继续等待一段时间,直到满足区块号小于目标区块号的共识节点数量小于N-f,才开始进行垃圾消息的清理。具体地,在第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量之后,本说明书实施例提供的方法还包括:
若第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号小于目标区块号的共识节点数量小于N-f,则第一共识节点在区块链中广播第一消息,并充值预设时间段以延长预设时间段。
S140,当共识节点数量达到N-f个时,第一共识节点对目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为区块链中参与对目标提议进行共识的节点数量,f为区块链中允许的异常共识节点最大数量。
为了及时清理掉参与对目标提议共识的共识节点中的垃圾信息,在第一共识确定收到了N-f个来自不同第二共识节点(含第一共识节点自身)的视图大于等于目标提议的视图,即N-f个来自不同第二共识节点(含第一共识节点自身)的区块号大于等于目标区块号,第一共识节点则立即进行垃圾信息的清理。具体地,第一共识节点对目标提议进行共识操作过程中产生的垃圾信息进行清理,包括:
第一共识节点确定在目标提议进行共识操作过程中存储在本地的垃圾消息,垃圾消息包括第一共识节点在目标提议进行共识操作过程中发送的消息、和/或重复接收到的消息;
第一共识节点删除目标提议进行共识操作过程中存储在本地的垃圾消息。
下面以图2所示的区块链中的垃圾信息的处理方法应用于实际场景中的示意图为例,对本说明书实施例提供的方法进行详细介绍,如图2所示,该区块链网络包括多个第一共识主节点和多个第二共识节点,为便于描述,第一共识节点以其中一个为例,第二共识节点以其中两个为例,应理解,在实际场景中,第一共识节点和第二共识节点的数量通常为多个。该区块链中的垃圾信息的处理方法的实施流程包括:
S1,第一共识节点完成对目标提议的共识之后,在区块链网络中广播第一消息,即将第一消息发送给第二共识节点,在实际应用中可以命名为exchange_state消息,该第一消息的消息内容为当前view,即目标提议对应的区块号。
S2,第二共识节点收到exchange_state消息后,返回第二消息,该第二消息在实际应用中可命名为reply_state消息,消息内容为当前已经共识完成的区块号,也就是说,如果第二节点中当前正在共识的提议未完成共识时,则返回第二节点中上一个达成共识的提议对应的区块号。
第一共识节点根据接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量。
如果第一共识节点确定接收到N-f个来自不同共识节点(包含第一共识节点本身)的view值大于或等于目标提议的view值的第二消息,第一节点则开始清理第一节点中的垃圾信息。
如果第一共识节点在广播第一消息的预设时间段之后,确定接收到不足N-f个来自不同共识节点(包含第一共识节点本身)的view值大于或等于目标提议的view值的第二消息,那么第一共识节点继续在区块链网络中广播exchange_state消息至第二共识节点,并充值需要等待的超时时间段,以延长预设时间段。
在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,该第一消息携带目标提议对应的目标区块号,第一共识节点是对目标提议达成共识的共识节点之一;接收到第一消息的第二共识节点,向第一共识节点发送第二消息,该第二消息中携带第二共识节点中上一个已达成共识的提议对应的区块号;第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量;当共识节点数量达到N-f个时,第一共识节点对目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为区块链中参与对目标提议进行共识的节点数量,f为区块链中允许的异常共识节点最大数量。采用本说明书实施例提供的方法,一方面能够及时清理了一轮共识操作过程中,共识节点中产生的垃圾信息;另一方面,在N-f个共识节点对目标提议都完成共识之后再进行垃圾清理,也能保证绝大多数共识节点对目标提议达成共识,且不会对共识节点中的下一轮共识操作产生不良影响。
图3是本说明书实施例提供的区块链系统300的结构示意图。请参考图3,在一种软件实施方式中,区块链系统300可包括第一共识节点310和第二共识节点320,其中:
区块链中的第一共识节点310,在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,所述第一消息携带所述目标提议对应的目标区块号,所述第一共识节点是对所述目标提议达成共识的共识节点之一;
所述区块链中的第二共识节点320,在接收到所述第一消息时,向所述第一共识节点发送第二消息,所述第二消息中携带所述第二共识节点中上一个已达成共识的提议对应的区块号;
所述第一共识节点310,基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量;以及当所述共识节点数量达到N-f个时,对所述目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为所述区块链中参与对所述目标提议进行共识的节点数量,f为所述区块链中允许的异常共识节点最大数量。
基于本说明书实施例提供的区块链系统可以知道:
在目标提议达成共识之后,区块链中的第一共识节点在区块链中广播第一消息,该第一消息携带目标提议对应的目标区块号,第一共识节点是对目标提议达成共识的共识节点之一;接收到第一消息的第二共识节点,向第一共识节点发送第二消息,该第二消息中携带第二共识节点中上一个已达成共识的提议对应的区块号;第一共识节点基于接收到的第二消息中的区块号及共识节点标识,确定区块号不小于目标区块号的共识节点数量;当共识节点数量达到N-f个时,第一共识节点对目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为区块链中参与对目标提议进行共识的节点数量,f为区块链中允许的异常共识节点最大数量。采用本说明书实施例提供的方法,一方面能够及时清理了一轮共识操作过程中,共识节点中产生的垃圾信息;另一方面,在N-f个共识节点对目标提议都完成共识之后再进行垃圾清理,也能保证绝大多数共识节点对目标提议达成共识,且不会对共识节点中的下一轮共识操作产生不良影响。
可选地,在一种实施方式中,所述第一共识节点310,用于:
在所述目标提议通过蜜獾拜占庭容错算法达成共识之后,所述区块链中广播所述第一消息。
可选地,在一种实施方式中,所述第一共识节点310,用于:
在所述第一消息广播之后的预设时间段内接收所述第二消息;
基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量。
可选地,在一种实施方式中,所述第一共识节点310,用于:
在所述第一消息广播之后的预设时间段内接收所述第二消息;
基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量。
可选地,在一种实施方式中,所述第一共识节点310基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量之后,所述第一共识节点310还用于:
基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号小于所述目标区块号的共识节点数量小于N-f,则所述第一共识节点在所述区块链中广播所述第一消息,并充值所述预设时间段以延长所述预设时间段。
可选地,在一种实施方式中,所述第一共识节点310,用于:
确定在所述目标提议进行共识操作过程中存储在本地的垃圾消息,所述垃圾消息包括所述第一共识节点在所述目标提议进行共识操作过程中发送的消息、和/或重复接收到的消息;
所述第一共识节点删除所述目标提议进行共识操作过程中存储在本地的垃圾消息。
可选地,在一种实施方式中,第二共识节点320,用于:
确定所述第二共识节点中上一个已达成共识的提议对应的区块号;
基于所述第二共识节点中上一个已达成共识的提议对应的区块号,生成所述第二消息,并向所述第一共识节点发送所述第二消息。
可选地,在一种实施方式中,所述第一共识节点310,用于:
在目标提议达成共识之后,向所述区块链中参与所述目标提议的共识操作的节点发送所述第一消息。
区块链系统300能够实现图1~图2的方法实施例的方法,具体可参考图1~图2所示实施例的区块链中的垃圾信息的处理方法,不再赘述。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种区块链中的垃圾信息的处理方法,包括:
在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,所述第一消息携带所述目标提议对应的目标区块号,所述第一共识节点是对所述目标提议达成共识的共识节点之一;
接收到所述第一消息的第二共识节点,向所述第一共识节点发送第二消息,所述第二消息中携带所述第二共识节点中上一个已达成共识的提议对应的区块号;
所述第一共识节点基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量;
当所述共识节点数量达到N-f个时,所述第一共识节点对所述目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为所述区块链中参与对所述目标提议进行共识的节点数量,f为所述区块链中允许的异常共识节点最大数量。
2.如权利要求1所述的方法,在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,包括:
在所述目标提议通过蜜獾拜占庭容错算法达成共识之后,所述第一共识节点在所述区块链中广播所述第一消息。
3.如权利要求1或2所述的方法,所述第一共识节点基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量,包括:
所述第一共识节点在所述第一消息广播之后的预设时间段内接收所述第二消息;
所述第一共识节点基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量。
4.如权利要求3所述的方法,所述第一共识节点基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量之后,所述方法还包括:
若所述第一共识节点基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号小于所述目标区块号的共识节点数量小于N-f,则所述第一共识节点在所述区块链中广播所述第一消息,并充值所述预设时间段以延长所述预设时间段。
5.如权利要求1或2所述的方法,所述第一共识节点对所述目标提议进行共识操作过程中产生的垃圾信息进行清理,包括:
所述第一共识节点确定在所述目标提议进行共识操作过程中存储在本地的垃圾消息,所述垃圾消息包括所述第一共识节点在所述目标提议进行共识操作过程中发送的消息、和/或重复接收到的消息;
所述第一共识节点删除所述目标提议进行共识操作过程中存储在本地的垃圾消息。
6.如权利要求1或2所述的方法,接收到所述第一消息的第二共识节点,向所述第一共识节点发送第二消息,包括:
接收到所述第一消息的第二共识节点,确定所述第二共识节点中上一个已达成共识的提议对应的区块号;
接收到所述第一消息的第二共识节点,基于所述第二共识节点中上一个已达成共识的提议对应的区块号,生成所述第二消息,并向所述第一共识节点发送所述第二消息。
7.如权利要求1或2所述的方法,在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,包括:
在目标提议达成共识之后,所述第一共识节点向所述区块链中参与所述目标提议的共识操作的节点发送所述第一消息。
8.一种区块链系统,包括:
区块链中的第一共识节点,在目标提议达成共识之后,区块链中的第一共识节点在所述区块链中广播第一消息,所述第一消息携带所述目标提议对应的目标区块号,所述第一共识节点是对所述目标提议达成共识的共识节点之一;
所述区块链中的第二共识节点,在接收到所述第一消息时,向所述第一共识节点发送第二消息,所述第二消息中携带所述第二共识节点中上一个已达成共识的提议对应的区块号;
所述第一共识节点,基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量;以及当所述共识节点数量达到N-f个时,对所述目标提议进行共识操作过程中产生的垃圾信息进行清理;其中,N为所述区块链中参与对所述目标提议进行共识的节点数量,f为所述区块链中允许的异常共识节点最大数量。
9.如权利要求8所述的系统,所述第一共识节点,用于:
在所述目标提议通过蜜獾拜占庭容错算法达成共识之后,所述区块链中广播所述第一消息。
10.如权利要求8或9所述的系统,所述第一共识节点,用于:
在所述第一消息广播之后的预设时间段内接收所述第二消息;
基于接收到的所述第二消息中的区块号及共识节点标识,确定区块号不小于所述目标区块号的共识节点数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010629736.0A CN111741121A (zh) | 2020-07-03 | 2020-07-03 | 区块链中的垃圾信息的处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010629736.0A CN111741121A (zh) | 2020-07-03 | 2020-07-03 | 区块链中的垃圾信息的处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111741121A true CN111741121A (zh) | 2020-10-02 |
Family
ID=72652629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010629736.0A Pending CN111741121A (zh) | 2020-07-03 | 2020-07-03 | 区块链中的垃圾信息的处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111741121A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596767A (zh) * | 2018-05-09 | 2018-09-28 | 中国工商银行股份有限公司 | 区块链历史数据清理方法及装置 |
CN108764870A (zh) * | 2018-05-29 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN109194493A (zh) * | 2018-08-13 | 2019-01-11 | 北京邮电大学 | 一种信息管理系统、方法及装置 |
-
2020
- 2020-07-03 CN CN202010629736.0A patent/CN111741121A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596767A (zh) * | 2018-05-09 | 2018-09-28 | 中国工商银行股份有限公司 | 区块链历史数据清理方法及装置 |
CN108764870A (zh) * | 2018-05-29 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN109194493A (zh) * | 2018-08-13 | 2019-01-11 | 北京邮电大学 | 一种信息管理系统、方法及装置 |
Non-Patent Citations (2)
Title |
---|
ANDREW MILLER等: "The Honey Badger of BFT protocols", 《PROCEEDINGS OF THE 2016 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY》 * |
刘懿中等: "区块链共识机制研究综述", 《密码学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7154234B2 (ja) | ブロックチェーン・ネットワークにおける高速伝搬のための方法及び特殊ネットワーク・ノード | |
CN111526217B (zh) | 一种区块链中的共识方法和系统 | |
CN111600965B (zh) | 区块链中的共识方法和系统 | |
CN109474682B (zh) | 一种区块链网络传输方法、装置及电子设备 | |
CN108550038A (zh) | 一种应用于区块链的数据传播系统及方法 | |
CN108876384B (zh) | 一种交易数据的处理方法及装置 | |
US10581967B2 (en) | Chandra-Toueg consensus in a content centric network | |
CN104767782A (zh) | 一种关联照片事件的方法和装置 | |
Bonomi et al. | Practical Byzantine reliable broadcast on partially connected networks | |
CN110311855B (zh) | 用户消息处理方法、装置、电子设备及存储介质 | |
CN113885797B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN113836232A (zh) | 联盟链中的共识方法和系统 | |
CN108108126B (zh) | 一种数据处理方法、装置及设备 | |
CN111431952A (zh) | 消息推送方法、装置及系统,计算机存储介质和电子设备 | |
CN111526165B (zh) | 联盟链中的共识方法和系统 | |
CN111741121A (zh) | 区块链中的垃圾信息的处理方法和系统 | |
CN103503358B (zh) | 一种群组资源交互消息的方法及其装置 | |
CN110557453B (zh) | 一种数据分发方法、装置、设备和存储介质 | |
CN116846888A (zh) | 区块链网络的共识处理方法、装置、设备及存储介质 | |
CN114157670A (zh) | 消息传输方法及装置 | |
CN106210035A (zh) | 一种推广信息的代理方法及装置 | |
CN102868700B (zh) | 一种控制dhcp并发上线速度的方法和通信设备 | |
CN113645008A (zh) | 一种基于链表的报文协议超时重发方法及系统 | |
CN112991066A (zh) | 联盟链中的共识方法、装置和电子设备 | |
CN112488836B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40038360 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201002 |