CN112818409B - 一种区块生成方法及共识节点 - Google Patents
一种区块生成方法及共识节点 Download PDFInfo
- Publication number
- CN112818409B CN112818409B CN202110033653.XA CN202110033653A CN112818409B CN 112818409 B CN112818409 B CN 112818409B CN 202110033653 A CN202110033653 A CN 202110033653A CN 112818409 B CN112818409 B CN 112818409B
- Authority
- CN
- China
- Prior art keywords
- consensus
- timestamp
- node
- proposal
- target
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Retry When Errors Occur (AREA)
Abstract
本说明书实施例提供一种区块生成方法及共识节点。方法包括:第一共识节点发起携带有自身提供的第一时间戳的目标共识提议。第二共识节点在接收到目标共识提议后,基于目标共识提议的接收时间,确定第二时间戳。第二共识节点基于本地结尾区块的第三时间戳和第二时间戳,对第一时间戳校验,以在校验通过后对目标共识提议的提议数据执行共识。若目标共识提议达成共识,则第一共识节点和第二共识节点将目标共识提议所属共识阶段中二进制协定BA值为1的所有共识提议中的时间戳组合一个集合,并基于集合中所有时间戳确定第四时间戳,以生成第四时间戳并记录有目标共识提议的提议数据的的新增区块,第四时间戳不早于所属共识节点本地的其他区块的时间戳。
Description
本文件是“一种区块生成方法及共识节点”的分案申请,母案的申请号为“202010629690.2”,申请日为“2020-07-03”。
技术领域
本文件涉及区块链技术领域,尤其涉及一种区块生成方法及共识节点。
背景技术
在区块链***中,每个区块的时间戳就像区块号一样必须是顺序递增的。目前绝大部分区块链***采用的是拜占庭容错(BFT,Byzantine Fault-Tolerant)共识协议。在BFT共识协议中,区块的时间戳是由提议发起者决定的,如果提议发起者作恶,会导致整条链区块的时间有序性遭到破坏。此外,对于一些需要追溯时间的区块链业务,也要在区块的时间戳正确的情况下,才能执行的业务决策。
为此,当前亟需一种保证新增区块的时间戳相对上一区块的时间戳呈递增的技术方案。
发明内容
本说明书实施例目的是提供一种区块生成方法及共识节点,能够保证新增区块的时间戳相对上一区块的时间戳呈递增。
为了实现上述目的,本说明书实施例是这样实现的:
第一方面,提供一种区块生成方法,包括:
区块链的第一共识节点发起携带有所述第一共识节点提供的第一时间戳的目标共识提议,其中,所述区块链采用基于蜜獾拜占庭容错算法的共识协议,所述目标共识提议所属的共识阶段还包括所述第二共识节点发起的共识提议;
所述区块链的第二共识节点在接收到所述目标共识提议后,基于所述目标共识提议的接收时间,确定第二时间戳;
所述第二共识节点基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验,以在校验通过后对所述目标共识提议的提议数据执行共识逻辑;
若所述目标共识提议达成共识,则所述第一共识节点和所述第二共识节点将所述目标共识提议所属共识阶段中二进制协定BA值为1的所有共识提议中的时间戳组合一个集合,并基于所述集合中的所有时间戳确定第四时间戳,以生成记录有所述目标共识提议的提议数据的新增区块,其中,生成的所述新增区块的第四时间戳不早于所属共识节点本地的其他区块的时间戳。
第二方面,提供一种区块链的共识节点,包括:
时间戳获取模块,在接收到区块链的其他共识节点发起的目标共识提议时,基于所述目标共识提议的接收时间,确定第二时间戳,其中,所述目标共识提议携带有所述其他共识节点提供的第一时间戳,所述区块链采用基于蜜獾拜占庭容错算法的共识协议,所述目标共识提议所属的共识阶段还包括所述第二共识节点发起的共识提议;
共识执行模块,基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验,以在校验通过后对所述目标共识提议的提议数据执行共识逻辑;
区块生成模块,若所述目标共识提议达成共识,则将所述目标共识提议所属共识阶段中二进制协定BA值为1的所有共识提议中的时间戳组合一个集合,并基于所述集合中的所有时间戳确定第四时间戳,以生成记录有所述目标共识提议的提议数据的新增区块,其中,生成的所述新增区块的第四时间戳不早于所属共识节点本地的其他区块的时间戳;
共识发起模块,若基于所述区块链的共识协议需要发起共识提议时,发起携带有本地提供的时间戳的共识提议。
本说明书实施例的方案中,目标共识节点在发起目标共识提议时,携带自身提供的第一时间戳,其他共识节点在接收到目标共识提议时,基于本地当前时刻的第二时间戳和本地结尾区块的第三时间戳对目标共识节点提供的第一时间戳进行校验,并在校验通过后,再对目标共识提议的提议数据执行共识逻辑。若达成共识,则各共识节点生成由第一时间戳所确定的第四时间戳的新生区块,以记录目标共识提议中的提议数据。整个方案可以有效保证新生区块的时间戳相对上一区块的时间戳呈顺序递增,从而使得区块链中的区块在时间维度上具有有序性,确保一些需要追溯时间的区块链业务能够正确执行业务决策。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的区块生成方法的第一种流程示意图。
图2为本说明书实施例提供的区块生成方法的第二种流程示意图。
图3为本说明书实施例提供的共识节点的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,在区块链***中,每个区块的时间戳就像区块号一样必须是顺序递增的。目前的BFT共识协议下,区块的时间戳是由提议发起者决定的,如果提议发起者作恶,会导致整条链区块的时间有序性遭到破坏。此外,对于一些需要追溯时间的区块链业务,也要在区块的时间戳正确的情况下,才能执行的业务决策。在此背景下,本文旨在提供一种适用于BFT共识协议的保证新增区块的时间戳相对上一区块的时间戳呈递增的技术方案。
图1是本说明书实施例区块生成方法的流程图。图1所示的方法可以由下文相对应的装置执行,包括如下步骤:
S102,区块链的第一共识节点发起携带有第一共识节点提供的第一时间戳的目标共识提议。
与传统的BFT共识协议一样,第一共识节点可以将自身提出的第一时间戳携带在目标共识提议中。若目标共识提议达成共识,则第一时间戳用于确定新增区块的时间戳。在本说明书实施例中,为了避免第一共识节点的作恶行为,其他节点后续需要对第一时间戳进行校验。
S104,区块链的第二共识节点在接收到目标共识提议后,基于目标共识提议的接收时间,确定第二时间戳。
具体地,本步骤中,第二共识节点可以在接收到目标共识提议后,可以确定本地***当前的时间戳,并将该当前的时间戳确定为第二时间戳。
S106,第二共识节点基于本地结尾区块的第三时间戳和第二时间戳,对第一时间戳进行校验,以在校验通过后对目标共识提议的提议数据执行共识逻辑。
应理解,如果第一共识节点按照区块的时间戳顺序递增的要求提供第一时间戳,则第一时间戳应晚于各共识节点的结尾区块的时间戳,并早于其他共识节点接收目标共识提议的时间。因此,第二共识节点可以基于这一特点对第一时间戳进行校验。若第一时间戳早于第二时间戳,且晚于第三时间戳,则校验通过;否则校验失败,可以直接拒绝第一共识节点提出的目标共识提议。
S108,若目标共识提议达成共识,则第一共识节点和第二共识节点生成记录有目标共识提议的提议数据的新增区块,其中,生成的新增区块的第四时间戳是至少基于第一时间戳确定得到的,且不早于所属共识节点本地的其他区块的时间戳。
具体地,目前常用的BFT共识协议主要包括:PBFT共识协议和HoneyBadgerBFT共识协议。
在HoneyBadgerBFT共识协议下,每轮共识中,所有共识节点均能够发起共识提议,因此生成的新增区块记录有共识阶段所有达成共识的共识提议的提议数据,对应的第四时间戳可以是基于包含第一时间戳在内的共识阶段所有达成共识的共识提议的时间戳所确定得到的。比如,第四时间戳为共识阶段所有达成共识的共识提议的时间戳的中值。
在PBFT共识协议下,共识节点需要划分出主共识节点和备份共识节点。在每轮共识中,只有主共识节点才能发起共识提议,因此生成的新增区块的第四时间戳可以直接采用第一时间戳。
基于图1所示的区块生成方法,本说明书实施例的方案中,目标共识节点在发起目标共识提议时,携带自身提供的第一时间戳,其他共识节点在接收到目标共识提议时,基于本地当前时刻的第二时间戳和本地结尾区块的第三时间戳对目标共识节点提供的第一时间戳进行校验,并在校验通过后,再对目标共识提议的提议数据执行共识逻辑。若达成共识,则各共识节点生成由第一时间戳所确定的第四时间戳的新生区块,以记录目标共识提议中的提议数据。整个方案可以有效保证新生区块的时间戳相对上一区块的时间戳呈顺序递增,从而使得区块链中的区块在时间维度上具有有序性,确保一些需要追溯时间的区块链业务能够正确执行业务决策。
下面对本说明书实施例的区块生成方法进行详细介绍。
应用场景一
本应用场景一中,区块链采用HoneyBadgerBFT共识协议。如前所述,HoneyBadgerBFT共识协议要求每个共识节点在共识节点均发起自己的共识提议,因此新增区块记录有本轮共识阶段所有达成共识的提议数据,而新增区块的时间戳所有达成共识的共识提议所携带的时间戳确定得到。
其中,HoneyBadgerBFT共识协议包括:可靠广播传输(RBC,Reliable Broadcast)协议阶段和二进协定(BA,BinaryAgreement)协议阶段。本应用场景一中,共识节点在RBC协议阶段完成后,且进入二进制协定BA协议阶段之前,对共识提议中的时间戳进行校验。具体地的区块生成流程包括如下步骤:
S201,区块链的第一共识节点在RBC协议阶段,发起携带有第一时间戳的目标共识提议。
具体地,本步骤中,第一共识节点获取本地***当前时间相关的第五时间戳和本地结尾区块的第六时间戳。其中,这里所述的当前时间相关的第五时间戳可以指当前时间的时间戳,也可以是与当前时间相近的时间戳,或者也可以是基于当前时间所确定的时间戳。
若第五时间戳晚于第六时间戳,则第一共识节点将第五时间戳作为第一时间戳,并发起发起携带有第一时间戳的目标共识提议;
若第五时间戳早于第六时间戳,则第一共识节点基于预设规则确定第一时间戳,并发起携带有第一时间戳的目标共识提议,其中,预设规则确定的第一时间戳是第六时间戳加上单位时间T获得的。
应理解,RBC协议阶段下,各共识节点均需要将自己的共识提供广播给其他共识节点,并接受其他节点发起的共识提议。这里,本文不再对(除目标共识提议以外的)其他共识提议作重复赘述。
S202,各共识节点执行RBC协议阶段的校验流程。
在RBC协议阶段的校验流程中,各共识节点基于其他共识节点的共识提议信息(即Echo信息)重构默克尔树,并校验重构的默克尔树。当校验通过后,共识节点向其他节点广播Ready消息。针对任一共识节点,当接收到来自收到f+1个相同的且来自于不同节点的Ready消息时(f是联盟链中作恶节点的数量),判断自身是否广播过Ready消息,没有则广播Ready消息;当收到2f+1个相同的且来自于不同节点的Ready消息时,则确认接收到正确的其他共识节点所发起的共识提议。
S203,第二共识节点在内的其他共识节点在RBC协议阶段的流程完成后,基于目标共识提议的接收时间,确定第二时间戳,并获取基于本地结尾区块的第三时间戳。
S204,第二共识节点在内的其他共识节点基于第二时间戳和第三时间戳和,对第一时间戳进行校验。其中,若第一时间戳早于第二时间戳,且晚于第三时间戳,则校验通过,执行S206;否则,校验失败执行S205。
S205,包含第二共识节点在内的其他共识节点将目标共识提议在协议阶段的BA取值设置为0。
其中,目标共识提议在BA取值0的情况下,无法通过本轮共识。
S206,各共识节点执行BA协议阶段的流程。
其中,BA协议是各共识节点对单个共识提议在集群中达成一致的协议。只有,BA值为1的共识提议会在最终共识结果里,其包含提议数据会成功上链。
S207,各共识节点将BA值为1的所有共识提议中的时间戳组合一个集合,并将集合中的所有时间戳的中值确定第四时间戳。
此外,如果特殊原因导致集合为空集,比如,共识节点在共识提议中为提供能够被解析的时间戳,则共识节点还可以将本地结尾区块的第三时间戳+单位时间T作为新增区块的第四时间戳。
S208,各共识节点生成第四时间戳的新增区块,新增区块记录有本轮共识阶段所有达成共识提议的提议数据。
应用场景二
本应用场景二中,区块链采用PBFT共识协议。如前所述,PBFT共识协议要求只有主共识节点能够发起共识提议,因此新增区块只记录有主共识节点发起的共识提议的提议数据,若主共识节点在共识提议中提供的时间戳校验通过,则可以直接将主共识节点提供的时间戳作为新增区块的时间戳。
其中,不同于上述HoneyBadgerBFT共识协议,PBFT共识协议主要包括:pre-prepare阶段、prepare阶段和commit阶段。本应用场景二中备份共识节点(即上文所述的第二共识节点)在预准备pre-prepare阶段,对主共识节点(即上文所述的第一共识节点)发起的目标共识提议中的第一时间戳进行校验。
具体地的区块生成流程包括:
区块链的第一共识节点发起携带有第一时间戳的目标共识提议。
其中,共识过程包括:
pre-prepare阶段:
主共识节点收到来自Client的一个请求,并分配一个编号给这个请求,然后主共识节点会广播一条pre-prepare消息给备份共识节点,这个pre-prepare消息包含该请求的编号、所在的视图(view)和主共识节点的摘要(digest),同时还有调用指定智能合约的请求,这个请求指示智能合约的地址。
每一个备份共识节点在接收到pre-prepare消息后,确定同不同意主共识节点分配给该请求的这个编号n,即,确认是否接受这条pre-prepare消息。
各备份共识节点如果接受了这条pre-prepare消息,调用指定智能合约,按照指定智能合约的逻辑,基于目标共识提议的接收时间,确定第二时间戳,并获取基于本地结尾区块的第三时间戳,之后基于第二时间戳和第三时间戳和,对第一时间戳进行校验。
若校验通过,则进入prepare阶段。若未通过校验,则甚至直接打回对目标共识提议,共识流程结束。
prepare阶段:
所有参与共识的备份共识节点中的每一个在接收到pre-prepare消息后,检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该共识提议在replica上的状态被确定为prepared,备份共识节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他参与共识的备份共识节点。
commit阶段:
所有共识节点中的每一个在进入prepared状态后,发送commit消息给其他共识节点,并将自己发送的commit消息添加到本地Log中(代表自己的认可)。当一个共识节点发现有一个quorum(quorum是为了能够确保所有replica数据一致性要求和容错要求需要的一定数量replica的集合)同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了2f+1(f是联盟链中作恶节点的数量)条commit消息(包括自身的一条,这些来自不同节点的commit携带相同的编号n和view v),就说名该共识节点拥有了一个名为committed certificate的证书,请求在这个共识节点上达到了committed状态。此时只通过这一个共识节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有共识节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
应用场景三
本应用场景三中,区块链采用PBFT共识协议。其中,备份共识节点(即上文所述的第二共识节点)在prepare阶段,对主共识节点(即上文所述的第一共识节点)发起的目标共识提议中的第一时间戳进行校验。具体地的区块生成流程包括:
区块链的第一共识节点发起携带有第一时间戳的目标共识提议。
其中,共识过程包括:
pre-prepare阶段:
主共识节点收到来自Client的一个请求,并分配一个编号给这个请求,然后主共识节点会广播一条pre-prepare消息给备份共识节点,这个pre-prepare消息包含该请求的编号、所在的视图(view)和主共识节点的摘要(digest)。
每一个备份共识节点在接收到pre-prepare消息后,确定同不同意主共识节点分配给该交易请求的这个编号n,即,确认是否接受这条pre-prepare消息。各备份共识节点如果接受了这条pre-prepare消息,则进入prepare阶段。
prepare阶段:
所有参与共识的备份共识节点中的每一个在接收到pre-prepare消息后,调用预先在联盟链部署的指定智能合约,按照指定智能合约的逻辑,基于目标共识提议的接收时间,确定第二时间戳,并获取基于本地结尾区块的第三时间戳,之后基于第二时间戳和第三时间戳和,对第一时间戳进行校验。
若第一时间戳未通过验,则直接打回对本次目标共识提议,共识流程结束。
若校验通过,再检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该共识提议在replica上的状态被确定为prepared,备份共识节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他备份共识节点。
commit阶段:
所有共识节点中的每一个在进入prepared状态后,发送commit消息给其他共识节点,并将自己发送的commit消息添加到本地Log中。当一个共识节点发现有一个quorum同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了2f+1条commit消息,就说名该共识节点拥有了一个名为committed certificate的证书,请求在这个共识节点上达到了committed状态。此时只通过这一个共识节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有共识节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
通过上述应用场景二和应用场景三可以知道,在传统的PBFT算法的共识过程中,备份共识节点在pre-prepare阶段开始执行共识逻辑,即备份共识节点在pre-prepare阶段检查主共识节点发送的第一时间戳是否合法。因此,备份共识节点业务校验的步骤可以在检查pre-prepare消息之前执行,一旦第一时间戳未能通过备份共识节点的校验,则拒绝执行后续的共识逻辑,从而避免造成不必要的资源开销。
以上是对本说明书实施例的方法的介绍。应理解,在不脱离本文上述原理基础之上,还可以进行适当的变化,这些变化也应视为本说明书实施例的保护范围。
与上述区块生成方法,本说明书实施例还提供一种区块链的共识节点。图3为共识节点300的结构示意图,包括:
时间戳获取模块310,在接收到区块链的其他共识节点发起的目标共识提议时,基于所述目标共识提议的接收时间,确定第二时间戳,其中,所述目标共识提议携带有所述其他共识节点提供的第一时间戳;
共识执行模块320,基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验,以在校验通过后对所述目标共识提议的提议数据执行共识逻辑;
区块生成模块330,若所述目标共识提议达成共识,则生成记录有所述目标共识提议的提议数据的新增区块,其中,生成的所述新增区块的第四时间戳是至少基于所述第一时间戳确定得到的,且不早于本地其他区块的时间戳;
共识发起模块340,若基于所述区块链的共识协议需要发起共识提议时,发起携带有本地提供的时间戳的共识提议。
本说明书实施例的共识节点在接收到其他节点发起目标共识提议时,基于本地当前时刻的第二时间戳和本地结尾区块的第三时间戳对目标共识节点中携带的其他节点提供的第一时间戳进行校验,并在校验通过后,再对目标共识提议的提议数据执行共识逻辑。若达成共识,则本地生成由第一时间戳所确定的第四时间戳的新生区块,以记录目标共识提议中的提议数据。整个方案可以有效保证新生区块的时间戳相对上一区块的时间戳呈顺序递增,从而使得区块链中的区块在时间维度上具有有序性,确保一些需要追溯时间的区块链业务能够正确执行业务决策。
可选地,共识执行模块320在执行时,具体若所述第一时间戳早于所述第二时间戳,且晚于所述第三时间戳,则校验通过,否则校验失败。
可选地,共识发起模块340在执行时,具体获取获取当前时间相关的第五时间戳和本地结尾区块的第六时间戳。若所述第五时间戳晚于所述第六时间戳,则发起发起携带有第五时间戳的共识提议;若若述第五时间戳早于所述第六时间戳,发起携带有第七时间戳的共识提议,其中,第七时间戳是第六时间戳加上单位时间获得的。
可选地,所述区块链采用基于蜜獾拜占庭容错算法的共识协议,所述目标共识提议所属的共识阶段还包括来自不同的其他共识节点所发起的共识提议,其中,生成的所述新增区块记录有所述共识阶段所有达成共识的共识提议的提议数据,且所述第四时间戳是基于包含所述第一时间戳在内的所述共识阶段所有达成共识的共识提议的时间戳所确定得到的。例如,所述第四时间戳为所述共识阶段所有达成共识的共识提议的时间戳的中值。
可选地,共识执行模块320在蜜獾拜占庭容错算法的可靠广播传输RBC协议阶段完成后,且进入二进制协定BA协议阶段之前,基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验。此外,若所述第一时间戳未通过校验,则共识执行模块320将所述目标共识提议在BA协议阶段的BA取值设置为0。
可选地,所述区块链采用实用拜占庭容错算法的共识协议,所述第一共识节点为所述区块链的主共识节点,所述第四时间戳等于所述第一时间戳。其中,共识执行模块320可以在实用拜占庭容错算法的预准备阶段或准备阶段,基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验。
应理解,本说明书实施例的共识节点可以作为图1所示的区块生成方法中的执行主体,因此能够实现区块生成方法在图1和图2所实现步骤和功能。由于原理相同,本文不再赘述。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
Claims (10)
1.一种区块生成方法,包括:
区块链的第一共识节点发起携带有所述第一共识节点提供的第一时间戳的目标共识提议,其中,所述区块链采用基于蜜獾拜占庭容错算法的共识协议,所述目标共识提议所属的共识阶段还包括第二共识节点发起的共识提议;
所述区块链的第二共识节点在接收到所述目标共识提议后,基于所述目标共识提议的接收时间,确定第二时间戳;
所述第二共识节点基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验,以在校验通过后对所述目标共识提议的提议数据执行共识逻辑;
若所述目标共识提议达成共识,则所述第一共识节点和所述第二共识节点将目标共识提议所属共识阶段中二进制协定BA值为1的所有共识提议中的时间戳组合一个集合,并基于集合中所有时间戳确定第四时间戳,以生成第四时间戳并记录有目标共识提议的提议数据的新增区块,第四时间戳不早于所属共识节点本地的其他区块的时间戳。
2.根据权利要求1所述的方法,包括:
区块链的第一共识节点发起携带有所述第一共识节点提供的第一时间戳的目标共识提议,包括:
区块链的第一共识节点在准备发起目标共识提议时,获取当前时间相关的第五时间戳和本地结尾区块的第六时间戳;
若所述第五时间戳晚于所述第六时间戳,则所述第一共识节点将所述第五时间戳作为第一时间戳,并发起携带有所述第一时间戳的目标共识提议;
若所述第五时间戳早于所述第六时间戳,则所述第一共识节点基于预设规则确定第一时间戳,并发起携带有所述第一时间戳的目标共识提议,其中,所述预设规则确定的第一时间戳是所述第六时间戳加上单位时间获得的。
3.根据权利要求1所述的方法,
在所述区块链的第二共识节点对所述第一时间戳进行校验的过程中,若所述第一时间戳早于所述第二时间戳,且晚于所述第三时间戳,则校验通过,否则校验失败。
4.根据权利要求1所述的方法,
在目标共识提议的共识阶段,第一共识节点基于可靠广播传输RBC协议中的Ready 消息,将所述第一时间戳提供给所述区块链的其他共识节点。
5.根据权利要求1所述的方法,
所述第四时间戳为所述集合中的所有时间戳的中值。
6.根据权利要求1所述的方法,
所述区块链的第二共识节点在蜜獾拜占庭容错算法的可靠广播传输RBC协议阶段完成后,且进入二进制协定BA协议阶段之前,基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验。
7.根据权利要求1所述的方法,还包括:
若所述第一时间戳未通过校验,则所述第二共识节点将所述目标共识提议在BA协议阶段的BA取值设置为0,从而使得所述目标共识提议达成共识失败。
8.根据权利要求1所述的方法,
所述区块链采用实用拜占庭容错算法的共识协议,所述第一共识节点为所述区块链的主共识节点,所述第四时间戳等于所述第一时间戳。
9.根据权利要求8所述的方法,
所述区块链的第二共识节点在实用拜占庭容错算法的预准备阶段或准备阶段,基于本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验。
10.一种区块链的共识节点,包括:
时间戳获取模块,在接收到区块链的其他共识节点发起的目标共识提议时,基于所述目标共识提议的接收时间,确定第二时间戳,其中,所述目标共识提议携带有所述其他共识节点提供的第一时间戳,所述区块链采用基于蜜獾拜占庭容错算法的共识协议,所述目标共识提议所属的共识阶段还包括所述其他共识节点发起的共识提议;
共识执行模块,基于所述共识节点的本地结尾区块的第三时间戳和所述第二时间戳,对所述第一时间戳进行校验,以在校验通过后对所述目标共识提议的提议数据执行共识逻辑;
区块生成模块,若所述目标共识提议达成共识,则将目标共识提议所属共识阶段中二进制协定BA值为1的所有共识提议中的时间戳组合一个集合,并基于集合中所有时间戳确定第四时间戳,以生成第四时间戳并记录有目标共识提议的提议数据的新增区块,第四时间戳不早于所属共识节点本地的其他区块的时间戳;
共识发起模块,若基于所述区块链的共识协议需要发起共识提议时,发起携带有本地提供的时间戳的共识提议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110033653.XA CN112818409B (zh) | 2020-07-03 | 2020-07-03 | 一种区块生成方法及共识节点 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010629690.2A CN111523153B (zh) | 2020-07-03 | 2020-07-03 | 一种区块生成方法及共识节点 |
CN202110033653.XA CN112818409B (zh) | 2020-07-03 | 2020-07-03 | 一种区块生成方法及共识节点 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010629690.2A Division CN111523153B (zh) | 2020-07-03 | 2020-07-03 | 一种区块生成方法及共识节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818409A CN112818409A (zh) | 2021-05-18 |
CN112818409B true CN112818409B (zh) | 2022-06-14 |
Family
ID=71911992
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110033653.XA Active CN112818409B (zh) | 2020-07-03 | 2020-07-03 | 一种区块生成方法及共识节点 |
CN202010629690.2A Active CN111523153B (zh) | 2020-07-03 | 2020-07-03 | 一种区块生成方法及共识节点 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010629690.2A Active CN111523153B (zh) | 2020-07-03 | 2020-07-03 | 一种区块生成方法及共识节点 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210314179A1 (zh) |
EP (1) | EP3934163A1 (zh) |
CN (2) | CN112818409B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220417044A1 (en) * | 2021-06-25 | 2022-12-29 | Prateek GOEL | System and method to manage large data in blockchain |
CN113783948B (zh) * | 2021-08-26 | 2024-05-31 | 浙商银行股份有限公司 | 一种联盟链组合共识方法、设备及存储介质 |
CN113821569B (zh) * | 2021-09-30 | 2024-02-06 | 广州智链未来科技有限公司 | 一种区块链的共识方法及区块链 |
CN114422137B (zh) * | 2021-12-10 | 2024-04-30 | 清华大学 | 安全分布式时间管理方法、*** |
CN114385761B (zh) * | 2022-03-23 | 2022-07-12 | 支付宝(杭州)信息技术有限公司 | 一种基于共识***的共识数据存储、获取方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108305170A (zh) * | 2018-03-07 | 2018-07-20 | 物数(上海)信息科技有限公司 | 基于区块链的外部服务访问方法、***、设备及存储介质 |
CN109246122A (zh) * | 2018-09-29 | 2019-01-18 | 上海海事大学 | 一种基于谣言传播协议的拜占庭容错区块链生成方法 |
CN110417502A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种区块链节点时钟共识方法及装置 |
CN110636113A (zh) * | 2019-08-23 | 2019-12-31 | 上海电力大学 | 区块链的拜占庭容错共识方法、***、设备和存储介质 |
CN110691077A (zh) * | 2019-09-24 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的业务校验方法及联盟链*** |
CN111008402A (zh) * | 2018-10-08 | 2020-04-14 | 国际商业机器公司 | 区块链时间戳协定 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542980B (zh) * | 2018-11-20 | 2020-12-18 | 北京磁云数字科技有限公司 | 一种区块链的数据处理方法、装置、设备及介质 |
WO2019072312A2 (en) * | 2018-12-29 | 2019-04-18 | Alibaba Group Holding Limited | SYSTEM AND METHOD FOR DETECTING REJECTION ATTACK |
CN109726597B (zh) * | 2018-12-29 | 2020-12-08 | 杭州趣链科技有限公司 | 基于区块链的可信时间戳*** |
US10681083B2 (en) * | 2018-12-29 | 2020-06-09 | Alibaba Group Holding Limited | System and method for detecting replay attack |
US20200193430A1 (en) * | 2019-04-30 | 2020-06-18 | Alibaba Group Holding Limited | Determining generation time for blockchain data |
-
2020
- 2020-07-03 CN CN202110033653.XA patent/CN112818409B/zh active Active
- 2020-07-03 CN CN202010629690.2A patent/CN111523153B/zh active Active
-
2021
- 2021-06-21 US US17/353,185 patent/US20210314179A1/en not_active Abandoned
- 2021-06-25 EP EP21181667.3A patent/EP3934163A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108305170A (zh) * | 2018-03-07 | 2018-07-20 | 物数(上海)信息科技有限公司 | 基于区块链的外部服务访问方法、***、设备及存储介质 |
CN109246122A (zh) * | 2018-09-29 | 2019-01-18 | 上海海事大学 | 一种基于谣言传播协议的拜占庭容错区块链生成方法 |
CN111008402A (zh) * | 2018-10-08 | 2020-04-14 | 国际商业机器公司 | 区块链时间戳协定 |
CN110417502A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种区块链节点时钟共识方法及装置 |
CN110636113A (zh) * | 2019-08-23 | 2019-12-31 | 上海电力大学 | 区块链的拜占庭容错共识方法、***、设备和存储介质 |
CN110691077A (zh) * | 2019-09-24 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的业务校验方法及联盟链*** |
Also Published As
Publication number | Publication date |
---|---|
CN111523153B (zh) | 2020-11-17 |
US20210314179A1 (en) | 2021-10-07 |
EP3934163A1 (en) | 2022-01-05 |
CN111523153A (zh) | 2020-08-11 |
CN112818409A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112818409B (zh) | 一种区块生成方法及共识节点 | |
CN108683539B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
CN111522800B (zh) | 蜜獾拜占庭容错共识机制的区块链共识方法、节点及*** | |
CN111523899B (zh) | 联盟链的共识方法、数据校验方法、装置及*** | |
CN110691077B (zh) | 一种联盟链的业务校验方法及联盟链*** | |
CN110022216B (zh) | 低通信复杂度的高效异步拜占庭共识方法、网络通信平台 | |
CN111275438B (zh) | 区块链网络的共识方法、装置、设备和存储介质 | |
CN111277627B (zh) | 一种基于贡献量权重证明共识机制的方法 | |
CN111679936A (zh) | 一种区块链网络分叉自动恢复方法、装置及*** | |
CN112329001A (zh) | 一种内外网之间的数据分发方法、***、终端及介质 | |
CN114936253A (zh) | 区块链的共识方法及装置、电子设备、存储介质 | |
CN113438092B (zh) | 一种交易广播方法及*** | |
WO2023160086A1 (zh) | 一种区块链的交易处理方法、区块链节点及电子设备 | |
CN116232893A (zh) | 分布式***的共识方法、装置、电子设备及存储介质 | |
CN111158956A (zh) | 一种集群***的数据备份方法及相关装置 | |
CN108933681B (zh) | 一种云计算***配置更新方法、控制中心及云计算节点 | |
CN112258184A (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN111966650A (zh) | 一种运维大数据共享数据表的处理方法、装置及存储介质 | |
CN110955509A (zh) | 一种金融并发交易处理装置 | |
CN112398885B (zh) | 数据传输方法和装置 | |
CN116846916B (zh) | 数据同步方法、装置、电子设备及计算机可读存储介质 | |
CN113965489B (zh) | 链路超时检测方法、装置、计算机设备和存储介质 | |
CN114357079A (zh) | 一种基于区块链的数据处理方法、节点设备、***及平台 | |
CN116610578A (zh) | 一种接入应用的自动化测试方法及装置 | |
CN115701601A (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 |