CN113079179A - 一种区块链高效共识方法、系统、计算机设备及存储介质 - Google Patents

一种区块链高效共识方法、系统、计算机设备及存储介质 Download PDF

Info

Publication number
CN113079179A
CN113079179A CN202110405492.2A CN202110405492A CN113079179A CN 113079179 A CN113079179 A CN 113079179A CN 202110405492 A CN202110405492 A CN 202110405492A CN 113079179 A CN113079179 A CN 113079179A
Authority
CN
China
Prior art keywords
block
miners
algorithm
legal
miner
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
CN202110405492.2A
Other languages
English (en)
Other versions
CN113079179B (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.)
Guangzhou Ant Bit Block Chain Technology Co ltd
Original Assignee
Guangzhou Ant Bit Block Chain 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 Guangzhou Ant Bit Block Chain Technology Co ltd filed Critical Guangzhou Ant Bit Block Chain Technology Co ltd
Priority to CN202110405492.2A priority Critical patent/CN113079179B/zh
Publication of CN113079179A publication Critical patent/CN113079179A/zh
Application granted granted Critical
Publication of CN113079179B publication Critical patent/CN113079179B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种区块链高效共识方法、系统、计算机设备及存储介质,其中方法包括:对所有矿工节点进行排序标记;设定全局规则R;将序号在[0,SIZE‑1]内的矿工的公钥和所述R封装进创世区块里;判断本轮的新增业务区块的数量是否达到设定值;若否,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块;若是,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块。本发明通过基于“矿工集区块”和“业务区块”的区块链数据组织方式,不仅简化了共识流程,提高了并发性能,减少了节点的空置时间,提高了资源的利用率,同时还减少了算法中的协商过程的时间,提高了区块封装操作的时间占比以及系统的稳定性。

Description

一种区块链高效共识方法、系统、计算机设备及存储介质
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链高效共识方法、系统、计算机设备及存储介质。
背景技术
区块链技术是实现可信互联网的关键技术之一,标志着互联网进入了一个新的阶段,而目前制约区块链技术发展的关键难题是共识算法的执行效率过低,无法支撑大规模的商业应用。公链通常采用POW共识算法,消耗大量的算力,同时并发量过低;主流联盟链则通常采用PBFT类算法,一定程度上提高了共识效率,但其算法性能随节点数的增加而呈二次函数陡降。因此,研究并开发高效的共识算法是区块链领域的主要攻关方向。
后来,人们提出了FISCO BCOS这一应用于区块链的多节点并行拜占庭容错共识算法。该共识算法将区块链节点的角色分成“领导节点”和“随从节点”,其中:领导节点:负责对交易进行打包成块,把块广播给其他节点,通过共识过程对块中所有交易进行确认,从而使得区块链的区块高度不断增加。随从节点:负责接收从领导节点发送来的区块,对区块中的交易进行确认,所有交易都确认完毕就对该块进行签名验证,从而使共识达成。在该共识算法中,节点的角色不是固定不变的,随着时间迁移节点角色也会进行变迁。如图1所示,区块链网络由一个个节点组成,假设一共有N个节点,对节点从0,1,2,…,N-1进行编号,每个节点对应一个唯一的Idx(i)。一个节点的角色判断通过公式(h+v)%N来决定,其中h是区块链当前块高度,v是当前视图。共识过程就是区块链网络对一批交易进行确认,并达到全网一致的过程。共识过程分为以下几个阶段,如图2所示:
选举领导:通过“角色变迁算法”推选出一个领导。
打包验证交易:选举出的领导节点,将一批交易进行打包验证,组成一个区块,区块的产生也就由领导节点负责。
签名投票:随从节点对领导节点发送来的区块,进行每一笔交易确认验证,全部通过之后发送对该块的投票签名。
落盘投票:所有节点在收到2/3以上节点的签名投票之后,广播落盘投票。
落盘提交:所有节点在收到2/3以上节点额落盘投票之后,把该块进行落盘存储。
然而,目前的POW类算法消耗大量的算力,TPS通常不超过20,同时交易被封装进区块后,还需要等待若干个区块才能最终确认交易成功,实时性和效率都不足以支撑当前的互联网应用。而非算力类共识算法则通常需要一个选举与投票的过程,选举的过程大多不需要消耗过多时间,但投票的过程需要超过至少一半节点以上都同意后才能最终确认新区块的合法性,其需要消耗多轮网络通信交互过程,而网络通信又是分布式系统中最消耗时间的操作,同时网络交互还会存在数据丢包、节点断线等风险。非算力类算法减少了对CPU性能的依赖,但也增加了对网络性能的依赖。算法的并发性能不显著,却带来了系统稳定性弱的风险。
综上所述,目前的共识算法都存在缺陷,因此,如何研究并开发出一种高效的共识算法仍然是目前本领域技术人员亟需解决的技术问题。
以上信息作为背景信息给出只是为了辅助理解本公开,并没有确定或者承认任意上述内容是否可用作相对于本公开的现有技术。
发明内容
本发明提供一种区块链高效共识方法、系统、计算机设备及存储介质,以解决现有技术的不足。
为实现上述目的,本发明提供以下的技术方案:
第一方面,本发明实施例提供一种区块链高效共识方法,所述方法包括:
使用Sortalphabet算法对所有矿工节点进行排序标记;
设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE;
将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块;
判断本轮的新增业务区块的数量是否达到设定值;
若否,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤;
若是,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤。
进一步地,所述区块链高效共识方法中,所述对所有矿工节点进行排序标记的步骤包括:
使用Sortalphabet算法对所有矿工节点的公钥{pubKeyi}按照字母表顺序排序标记;
其中,i∈Z且i∈[0,……,SIZE-1],SIZE为矿工的数量。
进一步地,所述区块链高效共识方法中,所述N为固定值或动态变化值。
第二方面,本发明实施例提供一种区块链高效共识系统,所述系统包括:
节点排序模块,用于使用Sortalphabet算法对所有矿工节点进行排序标记;
规则设定模块,用于设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE;
创世区块封装模块,用于将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块;
新增区块判断模块,用于判断本轮的新增业务区块的数量是否达到设定值;
区块生成模块,用于若本轮的新增业务区块的数量没有达到设定值,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤;
共识计算模块,用于若本轮的新增业务区块的数量达到设定值,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤。
进一步地,所述区块链高效共识系统中,所述节点排序模块具体用于:
使用Sortalphabet算法对所有矿工节点的公钥{pubKeyi}按照字母表顺序排序标记;
其中,i∈Z且i∈[0,……,SIZE-1],SIZE为矿工的数量。
进一步地,所述区块链高效共识系统中,所述N为固定值或动态变化值。
第三方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上任一方面所述的区块链高效共识方法。
第四方面,本发明实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令由计算机处理器执行,以实现如上任一方面所述的的区块链高效共识方法。
本发明实施例提供的一种区块链高效共识方法、系统、计算机设备及存储介质,通过基于“矿工集区块”和“业务区块”的区块链数据组织方式,不仅简化了共识流程,提高了并发性能,减少了节点的空置时间,提高了资源的利用率,同时还减少了算法中的协商过程的时间,提高了区块封装操作的时间占比以及系统的稳定性,能够减少网络交互的频率和节点掉线对共识的影响,具有较高的推广应用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是现有技术中FISCO角色变迁算法示意图;
图2是现有技术中FISCO共识过程示意图;
图3是本发明实施例一提供的一种区块链高效共识方法的流程示意图;
图4是本发明实施例二提供的一种区块链高效共识系统的功能模块示意图;
图5是本发明实施例三提供的一种计算机设备的结构示意图。
具体实施方式
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中设置的组件。当一个组件被认为是“设置在”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中设置的组件。
此外,术语“长”“短”“内”“外”等指示方位或位置关系为基于附图所展示的方位或者位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或原件必须具有此特定的方位、以特定的方位构造进行操作,以此不能理解为本发明的限制。
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
实施例一
有鉴于现有技术存在的缺陷,本发明人基于从该领域多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种切实可行的共识算法技术,使其更具有实用性。在经过不断的研究、设计并反复试作及改进后,终于创设出确具实用价值的本发明。
请参阅图3,图3是本发明实施例公开的一种区块链高效共识方法的流程示意图,该方法适用于在区块链中制定达成共识的标准的场景,该方法由区块链高效共识系统来执行,该系统可以由软件和/或硬件实现,集成于计算机的内部。如图3所示,该区块链高效共识方法可以包括以下步骤:
S101、使用Sortalphabet算法对所有矿工节点进行排序标记。
需要说明的是,本实施例中总共有两种区块,一种是正常的业务区块,一种是记录本轮共识中有权限封装区块的矿工集区块。每隔N个业务区块会连接着一个矿工集区块。
优选的,所述步骤S101进一步包括:
使用Sortalphabet算法对所有矿工节点的公钥{pubKeyi}按照字母表顺序排序标记;
其中,i∈Z且i∈[0,……,SIZE-1],SIZE为矿工的数量。
S102、设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE。
其中,所述N为固定值或动态变化值。
S103、将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块。
S104、判断本轮的新增业务区块的数量是否达到设定值;若否,则执行步骤S105,若是,则执行步骤S106。
其中,所述设定值为标定量,由技术人员通过经验设定,该经验是基于具体的实验结果或实际需求得到的,可以是任意数值。
S105、所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行步骤S104。
需要说明的是,此步骤中Selectionrandom算法具体包括:(1)将待封装的区块数据序列化为字节序列Seqgenesis,同时附上前一区块的哈希值hashpre(对于创世区块,该值为空),并使用某种特定的哈希算法(比如SHA256)计算出其哈希值hash=SHA256(Seqgenesis,……,hashpre);(2)计算负责对当前区块进行封装的用户的序号
Figure BDA0003022112700000071
其中NUM为当前的合法矿工数,BLOCKS为当前已生成的区块总数。
S106、使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行步骤S104。
需要说明的是,此步骤中ConsensustakeTurns具体包括:(1)所有节点通过Selectionrandom算法依次生成SIZE个空区块,而负责封装这SIZE个区块的节点即下一轮合法的矿工集U。在生成矿工集U的过程中,可能存在选举出重复矿工的可能。这时利用Removeduplicates算法选出合适且不重复的矿工;(2)当生成SIZE个空区块从而选出下一轮共识的矿工集U后,丢弃步骤S102的所有空区块。所有节点按照Sortalphabet算法生成新的矿工集区块,并由Selectionrandom算法所确定的矿工对该区块进行签名。
此步骤中Removeduplicates具体包括:假设需要从用户集User={ui|0≤i<N}选出矿工集Miner={mj|0≤j<M},N≥M,并且当前已经选出一个矿工集Miner的子集
Figure BDA0003022112700000081
|Miner*|=M*。当通过Selectionrandom算法选出第M*+1个矿工时,假设该矿工在用户集中的序号是k,此时,
(1)若
Figure BDA0003022112700000082
则将uk并入集合Miner*中;
(2)若uk∈Miner*,则k=(k+1)%N,直到
Figure BDA0003022112700000083
本实施例设计的原则是尽可能减少区块链分叉的可能性,加快区块同步的速度,即设计的算法尽可能避免系统中同时生成若干个序号一样的区块的情况。Selectionrandom算法提供了一种选出负责封装特定序号区块的矿工的思路。但这种方法的其中一个缺陷是,如果允许全网用户都参与选举,那么一旦负责封装当前区块的矿工离线或网络状况不稳定时,那么就需要全网重新进行协商,而这个过程会花费大量时间。ConsensustakeTurns算法限定一段时期内的合法矿工数,并在生成一定数量的区块后,更换矿工集,提高了算法的稳定性的同时增加了系统的去中心化程度。本实施例基于简单哈希计算和普通排序算法的本地共识策略,而非基于“选举—投票”的网络交互共识策略,极大提高共识达成的时间。不需网络协商即可确认下一区块的合法矿工,即使其他节点都掉线,只要该合法矿工在线,系统仍能正确稳定运行。
本发明实施例提供的一种区块链高效共识方法,通过基于“矿工集区块”和“业务区块”的区块链数据组织方式,不仅简化了共识流程,提高了并发性能,减少了节点的空置时间,提高了资源的利用率,同时还减少了算法中的协商过程的时间,提高了区块封装操作的时间占比以及系统的稳定性,能够减少网络交互的频率和节点掉线对共识的影响,具有较高的推广应用价值。
实施例二
请参阅附图4,为本发明实施例二提供的一种区块链高效共识系统的功能模块示意图,该系统适用于执行本发明实施例提供的区块链高效共识方法。
该系统具体包含如下模块:
节点排序模块201,用于使用Sortalphabet算法对所有矿工节点进行排序标记;
规则设定模块202,用于设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE;
创世区块封装模块203,用于将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块;
新增区块判断模块204,用于判断本轮的新增业务区块的数量是否达到设定值;
区块生成模块205,用于若本轮的新增业务区块的数量没有达到设定值,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤;
共识计算模块206,用于若本轮的新增业务区块的数量达到设定值,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤。
优选的,所述节点排序模块201具体用于:
使用Sortalphabet算法对所有矿工节点的公钥{pubKeyi}按照字母表顺序排序标记;
其中,i∈Z且i∈[0,……,SIZE-1],SIZE为矿工的数量。
优选的,所述N为固定值或动态变化值。
本发明实施例提供的一种区块链高效共识系统,通过基于“矿工集区块”和“业务区块”的区块链数据组织方式,不仅简化了共识流程,提高了并发性能,减少了节点的空置时间,提高了资源的利用率,同时还减少了算法中的协商过程的时间,提高了区块封装操作的时间占比以及系统的稳定性,能够减少网络交互的频率和节点掉线对共识的影响,具有较高的推广应用价值。
上述系统可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例三
图5为本发明实施例三提供的一种计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图5显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的区块链高效共识方法。
也即,所述处理单元执行所述程序时实现:使用Sortalphabet算法对所有矿工节点进行排序标记;设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE;将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块;判断本轮的新增业务区块的数量是否达到设定值;若否,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤;若是,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤。
实施例四
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机可执行指令,该指令被处理器执行时实现如本申请所有发明实施例提供的区块链高效共识方法:
也即,所述处理器执行所述计算机可执行指令时实现:使用Sortalphabet算法对所有矿工节点进行排序标记;设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE;将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块;判断本轮的新增业务区块的数量是否达到设定值;若否,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤;若是,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (8)

1.一种区块链高效共识方法,其特征在于,所述方法包括:
使用Sortalphabet算法对所有矿工节点进行排序标记;
设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE;
将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块;
判断本轮的新增业务区块的数量是否达到设定值;
若否,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤;
若是,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤。
2.根据权利要求1所述的区块链高效共识方法,其特征在于,所述对所有矿工节点进行排序标记的步骤包括:
使用Sortalphabet算法对所有矿工节点的公钥{pubKeyi}按照字母表顺序排序标记;
其中,i∈Z且i∈[0,……,SIZE-1],SIZE为矿工的数量。
3.根据权利要求1所述的区块链高效共识方法,其特征在于,所述N为固定值或动态变化值。
4.一种区块链高效共识系统,其特征在于,所述系统包括:
节点排序模块,用于使用Sortalphabet算法对所有矿工节点进行排序标记;
规则设定模块,用于设定全局规则R,所述R规定每隔N个区块后重新设置有权限封装区块的矿工集U,所述U的大小为SIZE;
创世区块封装模块,用于将序号在[0,SIZE-1]内的矿工的公钥和所述R封装进创世区块里,所述创世区块作为初始的矿工集区块;
新增区块判断模块,用于判断本轮的新增业务区块的数量是否达到设定值;
区块生成模块,用于若本轮的新增业务区块的数量没有达到设定值,则所有节点使用Selectionrandom算法计算下一区块的合法矿工,将交易发给所述合法矿工,由所述合法矿工生成业务区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤;
共识计算模块,用于若本轮的新增业务区块的数量达到设定值,则使用ConsensustakeTurns算法计算下一轮共识的合法矿工集区块,并返回执行所述判断本轮的新增业务区块的数量是否达到设定值的步骤。
5.根据权利要求4所述的区块链高效共识系统,其特征在于,所述节点排序模块具体用于:
使用Sortalphabet算法对所有矿工节点的公钥{pubKeyi}按照字母表顺序排序标记;
其中,i∈Z且i∈[0,……,SIZE-1],SIZE为矿工的数量。
6.根据权利要求4所述的区块链高效共识系统,其特征在于,所述N为固定值或动态变化值。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~3中任一项所述的区块链高效共识方法。
8.一种包含计算机可执行指令的存储介质,所述计算机可执行指令由计算机处理器执行,以实现如权利要求1~3中任一项所述的区块链高效共识方法。
CN202110405492.2A 2021-04-15 2021-04-15 一种区块链高效共识方法、系统、计算机设备及存储介质 Active CN113079179B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110405492.2A CN113079179B (zh) 2021-04-15 2021-04-15 一种区块链高效共识方法、系统、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110405492.2A CN113079179B (zh) 2021-04-15 2021-04-15 一种区块链高效共识方法、系统、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113079179A true CN113079179A (zh) 2021-07-06
CN113079179B CN113079179B (zh) 2023-02-28

Family

ID=76617907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110405492.2A Active CN113079179B (zh) 2021-04-15 2021-04-15 一种区块链高效共识方法、系统、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113079179B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180152289A1 (en) * 2016-11-30 2018-05-31 International Business Machines Corporation Checkpoints for permissionless blockchains
CN109726887A (zh) * 2018-10-12 2019-05-07 西安电子科技大学 基于区块链的移动众包数据数据采集与处理系统及方法
CN110210967A (zh) * 2018-02-28 2019-09-06 成都高新信息技术研究院 一种高速、变频的区块链pos共识计算方法与系统
CN112100659A (zh) * 2020-09-14 2020-12-18 电子科技大学 一种区块链联邦学习系统及拜占庭攻击检测方法
CN112184217A (zh) * 2020-08-31 2021-01-05 武汉市果壳璐网络科技有限公司 矿工出块方法、装置、存储介质及设备
CN112396423A (zh) * 2021-01-20 2021-02-23 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180152289A1 (en) * 2016-11-30 2018-05-31 International Business Machines Corporation Checkpoints for permissionless blockchains
CN110210967A (zh) * 2018-02-28 2019-09-06 成都高新信息技术研究院 一种高速、变频的区块链pos共识计算方法与系统
CN109726887A (zh) * 2018-10-12 2019-05-07 西安电子科技大学 基于区块链的移动众包数据数据采集与处理系统及方法
CN112184217A (zh) * 2020-08-31 2021-01-05 武汉市果壳璐网络科技有限公司 矿工出块方法、装置、存储介质及设备
CN112100659A (zh) * 2020-09-14 2020-12-18 电子科技大学 一种区块链联邦学习系统及拜占庭攻击检测方法
CN112396423A (zh) * 2021-01-20 2021-02-23 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113079179B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN111813513B (zh) 基于分布式的实时任务调度方法、装置、设备及介质
US20220159061A1 (en) Efficient and reliable host distribution of totally ordered global state
CN109255713B (zh) 一种区块链网络中某一时间段内记账权的获取方法
CN109710405B (zh) 区块链智能合约管理方法、装置、电子设备及存储介质
CN100533370C (zh) 多处理器系统及运行多处理器系统的方法
CN112667414A (zh) 基于消息队列的消息消费方法、装置、计算机设备及介质
CN105684020B (zh) 硬件平台中的订单账簿管理设备
CN103970520A (zh) MapReduce架构中的资源管理方法、装置和架构系统
CN111339073A (zh) 实时数据处理方法、装置、电子设备及可读存储介质
CN101895536A (zh) 多媒体信息共享方法
CN105009089B (zh) 用于促进对指令违反行为的管理的设备和方法
CN112306719A (zh) 一种任务调度方法与装置
WO2021139778A1 (zh) 系统调度工作流生成方法、系统、设备及计算机可读存储介质
US20120204183A1 (en) Associative distribution units for a high flowrate synchronizer/schedule
CN114528044B (zh) 一种接口调用方法、装置、设备及介质
CN109324874A (zh) 一种虚拟机内存快照导入块设备的方法、系统及装置
CN111611249A (zh) 数据管理方法、装置、设备及存储介质
CN111625532A (zh) 数据血缘关系处理方法、装置、计算机设备及存储介质
CN111899018B (zh) 订单数据处理方法、装置、服务器及存储介质
CN111343212B (zh) 消息处理方法、装置、设备以及存储介质
CN106204263B (zh) 交易运行控制方法和装置
CN113347238A (zh) 基于区块链的消息分区方法及系统、设备、存储介质
CN113079179B (zh) 一种区块链高效共识方法、系统、计算机设备及存储介质
CN112486825A (zh) 多泳道环境架构系统、消息消费方法、装置、设备及介质
CN109067649B (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