CN113206882A - 共识方法、计算机设备和存储介质 - Google Patents

共识方法、计算机设备和存储介质 Download PDF

Info

Publication number
CN113206882A
CN113206882A CN202110488617.2A CN202110488617A CN113206882A CN 113206882 A CN113206882 A CN 113206882A CN 202110488617 A CN202110488617 A CN 202110488617A CN 113206882 A CN113206882 A CN 113206882A
Authority
CN
China
Prior art keywords
block
temporary block
temporary
generating
voting
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
Application number
CN202110488617.2A
Other languages
English (en)
Other versions
CN113206882B (zh
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.)
Nanjing Benchain Information Technology Co ltd
Hangzhou Fuzamei Technology Co Ltd
Original Assignee
Nanjing Benchain Information Technology Co ltd
Hangzhou Fuzamei Technology Co Ltd
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 Nanjing Benchain Information Technology Co ltd, Hangzhou Fuzamei Technology Co Ltd filed Critical Nanjing Benchain Information Technology Co ltd
Priority to CN202110488617.2A priority Critical patent/CN113206882B/zh
Publication of CN113206882A publication Critical patent/CN113206882A/zh
Application granted granted Critical
Publication of CN113206882B publication Critical patent/CN113206882B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提供一种共识方法、计算机设备和存储介质,该方法包括:响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点;在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;将第二临时区块广播给投票节点;在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点。本申请降低共识耗时。

Description

共识方法、计算机设备和存储介质
技术领域
本申请涉及区块链技术领域,具体涉及一种共识方法、计算机设备和存储介质。
背景技术
在现有的多阶段共识投票的共识方法中,由于所有高度的区块都经历完整的共识流程,并且频繁切换提议节点,共识所耗费的时间在较长,影响整个区块链系统的TPS。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种降低共识耗时的共识方法、计算机设备和存储介质。
第一方面,本发明提供一种适用于区块链节点的共识方法,上述方法包括:
响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点,以供对第一临时区块进行两阶段投票;
在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;
将第二临时区块广播给投票节点,以供:
预执行第二临时区块的各交易,生成第一区块哈希,验证第一区块哈希与第二临时区块中的第二区块哈希是否相同:
否,则对第二临时区块生成反对票信息并广播;
在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;
将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点。
第二方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的共识方法。
第三方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的共识方法。
本发明诸多实施例提供的共识方法、计算机设备和存储介质通过响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点,以供对第一临时区块进行两阶段投票;在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;将第二临时区块广播给投票节点,以供:预执行第二临时区块的各交易,生成第一区块哈希,验证第一区块哈希与第二临时区块中的第二区块哈希是否相同:否,则对第二临时区块生成反对票信息并广播;在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点的方法,降低共识耗时。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种共识方法的流程图。
图2为本发明一实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
在现有技术中,两阶段共识包含Prevote(预投票)和Precommit(预提交)两轮投票,所有高度的区块都需要经过这两轮投票才能达成共识。在Prevote阶段,投票节点一般仅验证交易的签名信息是否正确以生成同意票信息或反对票信息,在Precommit阶段,投票节点一般执行区块中的各交易以生成区块哈希,在所生成的区块哈希与区块中自带的区块哈希相同时生成同意票信息。
图1为本发明一实施例提供的一种共识方法的流程图。如图1所示,在本实施例中,本发明提供一种适用于区块链节点的共识方法,上述方法包括:
S11:响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点,以供对第一临时区块进行两阶段投票;
S13:在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;
S15:将第二临时区块广播给投票节点,以供:
预执行第二临时区块的各交易,生成第一区块哈希,验证第一区块哈希与第二临时区块中的第二区块哈希是否相同:
否,则对第二临时区块生成反对票信息并广播;
S17:在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;
S19:将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点。
具体地,假设区块链网络有区块链节点node1~node10,第一临时区块为block(100)_临;
以当前节点为node1为例;
响应于获得block(100)_临的提议权,node1执行步骤S11,生成block(100)_临,并将block(100)_临广播给node2~node10;
node1~node10对以block(100)_临进行两阶段投票;
node1执行步骤S13,在block(100)_临通过两阶段投票共识成功时,将block(100)_临确定为block(100),并生成block(101)_临;
node1执行步骤S15,将block(101)_临广播给node2~node10;
node1~node10预执行block(101)_临的各交易,生成区块哈希blockhash(block(101)_临);本领域技术人员应当理解,由于此时仅有一轮投票,则此处的预执行表示验证交易签名并预执行交易;node1~node10验证blockhash(block(101)_临)与block(101)_临中的区块哈希blockhash(block(101)_临)'是否相同:
假设node10验证出blockhash(block(101)_临)与blockhash(block(101)_临)'不同,node10对block(101)_临生成反对票信息并广播;
其它节点验证出blockhash(block(101)_临)与blockhash(block(101)_临)'相同,其它节点对block(101)_临生成同意票信息并广播;
node1~node10均可收集到node10生成的反对票信息和node1~no de9生成的同意票信息,block(101)_临投票共识成功;
node1执行步骤S17,将block(101)_临确定为block(101),并生成block(102)_临;
node1执行步骤S19,返回S15,将block(102)_临广播给node2~node10。
在更多实施例中,投票节点可以只生成同意票信息,即,在验证第一区块哈希与第二区块哈希不同时,结束,则后续节点只收集同意票信息,在同意票信息的数量充足时,临时区块共识成功;类似的,投票节点也可以只生成反对票信息,即,在验证第一区块哈希与第二区块哈希相同时,结束,则后续节点只收集反对票信息,在反对票信息的数量不充足时,临时区块共识成功,可实现相同的技术效果。
优选地,生成第一临时区块包括:
生成第一序号为0的第一临时区块;
生成第一区块的高度加一的第二临时区块包括:
将第一序号加一以更新第一序号;
生成包括更新后的第一序号的第一区块的高度加一的第二临时区块;
生成第二区块的高度加一的第三临时区块包括:
将第一序号加一以更新第一序号;
判断第一序号是否小于第一数值:
是,则生成包括更新后的第一序号的第二区块的高度加一的第三临时区块;
否,则结束。
在图1所示的实施例中,node1获取提议权后,理论上如果node1性能完好不作恶,node1可以一直生成区块;若此时区块链上生成确定的区块可以获得若干收益,则node1可以一直获取收益。
上述实施例使得一个区块链节点只能获取一定数量的区块的提议权,即,在第一数值数量的区块之后,不同区块链节点将重新竞争提议权。上述实施例保证了不同区块链节点竞争提议权的公平性,也提高了获取提议权的区块链节点的安全性。
优选地,区块链为联盟链或私有链。
优选地,上述方法还包括:
在第一临时区块通过两阶段投票共识未成功时,通过两阶段投票切换获得第一临时区块的提议权的区块链节点。
优选地,上述方法还包括:
在第二临时区块通过投票共识失败时,切换回传统的两阶段共识投票方法。
进一步优选地,若在一定区块高度内若区块链网络共识正常,则返回上述响应于获得第一临时区块的提议权,生成第一临时区块,并将所述第一临时区块广播给投票节点。
本领域技术人员应当理解,在一定区块高度内若区块链网络共识正常包括多种评判标准,例如,在一定区块高度内,切换提议权的次数应少于一定数值。
优选地,上述方法还包括:
在第二临时区块通过投票共识失败时,通过两阶段投票切换获得第二临时区块的提议权的区块链节点。
本领域技术人员应当理解,可以根据实际需求配置上述通过两阶段投票切换获得第二临时区块的提议权的区块链节点的操作步骤,例如配置为,方法A:返回步骤S15;或,配置为方法B:将第二临时区块确定为第一临时区块,并返回步骤S13;
以及,无论配置为上述方法A还是方法B,还可以配置所切换的区块链节点自动获取下一轮共识的提议权以进一步降低共识耗时。
图2为本发明一实施例提供的一种计算机设备的结构示意图。
如图2所示,作为另一方面,本申请还提供了一种计算机设备,包括一个或多个中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM203中,还存储有计算机设备操作所需的各种程序和数据。CPU201、ROM202以及RAM203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
特别地,根据本公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述任一方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入计算机设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请提供的方法。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (6)

1.一种共识方法,其特征在于,所述方法适用于区块链节点,所述方法包括:
响应于获得第一临时区块的提议权,生成第一临时区块,并将所述第一临时区块广播给投票节点,以供对所述第一临时区块进行两阶段投票;
在所述第一临时区块通过两阶段投票共识成功时将所述第一临时区块确定为第一区块,并生成所述第一区块的高度加一的第二临时区块;
将所述第二临时区块广播给所述投票节点,以供:
预执行所述第二临时区块的各交易,生成第一区块哈希,验证所述第一区块哈希与所述第二临时区块中的第二区块哈希是否相同:
否,则对所述第二临时区块生成反对票信息并广播;
在所述第二临时区块通过投票共识成功时将所述第二临时区块确定为第二区块,并生成所述第二区块的高度加一的第三临时区块;
将所述第三临时区块确定为所述第二临时区块,并返回所述将所述第二临时区块广播给所述投票节点。
2.根据权利要求1所述的方法,其特征在于,所述生成第一临时区块包括:
生成第一序号为0的第一临时区块;
所述生成所述第一区块的高度加一的第二临时区块包括:
将所述第一序号加一以更新所述第一序号;
生成包括更新后的所述第一序号的所述第一区块的高度加一的第二临时区块;
所述生成所述第二区块的高度加一的第三临时区块包括:
将所述第一序号加一以更新所述第一序号;
判断所述第一序号是否小于第一数值:
是,则生成包括更新后的所述第一序号的所述第二区块的高度加一的第三临时区块;
否,则结束。
3.根据权利要求1所述的方法,其特征在于,所述区块链为联盟链或私有链。
4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:
在所述第一临时区块通过两阶段投票共识未成功时,通过两阶段投票切换获得所述第一临时区块的提议权的区块链节点。
5.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-4中任一项所述的方法。
6.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
CN202110488617.2A 2021-05-06 2021-05-06 共识方法、计算机设备和存储介质 Active CN113206882B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110488617.2A CN113206882B (zh) 2021-05-06 2021-05-06 共识方法、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110488617.2A CN113206882B (zh) 2021-05-06 2021-05-06 共识方法、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN113206882A true CN113206882A (zh) 2021-08-03
CN113206882B CN113206882B (zh) 2022-05-24

Family

ID=77029855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110488617.2A Active CN113206882B (zh) 2021-05-06 2021-05-06 共识方法、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113206882B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108648078A (zh) * 2018-05-02 2018-10-12 杭州秘猿科技有限公司 一种交易预处理方法、装置及电子设备
CN110012100A (zh) * 2019-04-09 2019-07-12 杭州秘猿科技有限公司 一种带宽优化的区块链共识方法、装置及电子设备
CN110246038A (zh) * 2019-04-26 2019-09-17 众安信息技术服务有限公司 一种区块链交易快速确认方法及系统
US20210109825A1 (en) * 2018-08-31 2021-04-15 Advanced New Technologies Co., Ltd. Transaction consensus processing method and apparatus for blockchain and electronic device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108648078A (zh) * 2018-05-02 2018-10-12 杭州秘猿科技有限公司 一种交易预处理方法、装置及电子设备
US20210109825A1 (en) * 2018-08-31 2021-04-15 Advanced New Technologies Co., Ltd. Transaction consensus processing method and apparatus for blockchain and electronic device
CN110012100A (zh) * 2019-04-09 2019-07-12 杭州秘猿科技有限公司 一种带宽优化的区块链共识方法、装置及电子设备
CN110246038A (zh) * 2019-04-26 2019-09-17 众安信息技术服务有限公司 一种区块链交易快速确认方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张永等: "一种改进的区块链共识机制的研究与实现", 《电子设计工程》 *

Also Published As

Publication number Publication date
CN113206882B (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
CN108683539B (zh) 区块链网络的管理方法、装置、介质及电子设备
CN108848055B (zh) 一种区块链共识方法、记账节点及节点
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
US20220035796A1 (en) Block Confirmation Method, Device and Storage Medium
CN111275438B (zh) 区块链网络的共识方法、装置、设备和存储介质
CN113194146B (zh) 领导节点确定方法、计算机设备和存储介质
CN110837505B (zh) 状态数据存储方法、状态数据同步方法、设备和存储介质
CN111277639A (zh) 一种保持数据一致性的方法和装置
CN111211904A (zh) 共识方法、设备和存储介质
CN109508912B (zh) 一种业务调度方法、装置、设备和存储介质
CN112907344A (zh) 账务数据的处理方法、装置、电子设备和存储介质
CN110445843B (zh) 平行链区块推送方法、设备和存储介质
CN113206882B (zh) 共识方法、计算机设备和存储介质
CN116723200B (zh) 集群变更方法、装置、电子设备及计算机可读存储介质
CN111523896B (zh) 防攻击方法、设备和存储介质
CN107274284B (zh) 双向撮合方法、装置以及交易系统
CN111782679A (zh) 数据处理过程的监管方法、装置、计算机设备及存储介质
CN108924240B (zh) 基于一致性协议的分布式处理方法、装置及存储介质
CN111291014A (zh) 区块链共识方法、设备和存储介质
CN115879889A (zh) 基于区块链的业务处理方法、装置和计算机设备
CN112783613B (zh) 一种单元调度的方法和装置
CN112631641A (zh) 区块链服务升级方法、装置、终端设备及存储介质
CN110876852B (zh) 微服务的网络游戏数据处理方法及系统
CN112866365A (zh) 节点通信方法、计算机设备和存储介质
CN116846916B (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