CN112911011A - 一种应用于区块链的区块生成控制方法及相关装置 - Google Patents
一种应用于区块链的区块生成控制方法及相关装置 Download PDFInfo
- Publication number
- CN112911011A CN112911011A CN202110161807.3A CN202110161807A CN112911011A CN 112911011 A CN112911011 A CN 112911011A CN 202110161807 A CN202110161807 A CN 202110161807A CN 112911011 A CN112911011 A CN 112911011A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- current
- chairman
- 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.)
- Granted
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/721—Modular inversion, reciprocal or quotient calculation
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请的一种应用于区块链的区块生成控制方法及相关装置,涉及区块链技术领域,其中,该区块生成控制方法包括:触发一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;触发一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;基于投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为区块链的新增区块。基于本申请的技术方案,可有效提高了区块生成的安全性和速度。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种应用于区块链的区块生成控制方法及相关装置。
背景技术
随着时代的发展,区块链技术已越来越受到人们的重视,如何制定一种合理的区块生成控制方法(共识机制)已成为本领域研究的重点。
现有技术中,区块链常用的区块生成控制方法(共识机制)包括PoW(Proof ofWork,工作量证明)共识和PoS(Proof of Stake,权益证明)共识,通常会通过节点算力比拼来确定下一个区块(如PoW共识),或使用资产权益来确定下一个区块(如PoS共识),前者会产生大算力节点(矿池/矿场)长期把持生成区块链区块权力的隐患,后者则会导致有产者(PoS共识认为资产多者不会作恶)持续获得收益的情况,降低了区块生成的安全性。现有技术中还存在一种PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)共识,可在一定条件下同时保证区块生成的速度和安全性,但角色及业务逻辑复杂,容错率低(超1/3节点恶意整个网络即无法持续)。本发明意在提供一种新共识机制,以提高区块生成的容错率、速度和安全性。
发明内容
本申请公开了一种应用于区块链的区块生成控制方法及相关装置,可有效提高区块生成的容错率、速度和安全性。
为了实现上述技术效果,本申请第一方面提供一种应用于区块链的区块生成控制方法,上述区块链包括一个以上议会成员节点;
上述区块生成控制方法包括:
触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;
触发上述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;
基于上述投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为上述区块链的新增区块。
基于本申请第一方面,在第一种可能的实现方式中,上述触发上述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票包括:
触发上述一个以上议会成员节点中的各节点对生成的候选区块进行赞成票的投票,其中,一上述节点最多能向一个上述候选区块投出赞成票;
上述预设票数条件包括:上述投票中获得的赞成票的数量大于预设数量。
基于本申请第一方面的第一种可能的实现方式,在第二种可能的实现方式中,上述预设数量大于上述一个以上议会成员节点的数量的一半;
上述将生成的候选区块中满足预设票数条件的一个候选区块确定为上述区块链的新增区块包括:
将满足上述预设票数条件的一个候选区块确定为上述区块链的新增区块,并抛弃不满足上述预设票数条件的候选区块。
基于本申请第一方面或本申请第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,在上述触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块前,上述区块生成控制方法还包括:
基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点。
基于本申请第一方面的第三种可能的实现方式,在第四种可能的实现方式中,在上述触发当前议长节点和当前副议长节点分别生成一候选区块后,上述区块生成控制方法还包括:
每在已用时长达到预设时长阈值时,返回执行上述基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点的步骤及后续步骤,其中,上述已用时长为从上述生成完成时刻至当前时刻之间的时长。
基于本申请第一方面的第四种可能的实现方式,在第五种可能的实现方式中,上述一个以上议会节点分别具备从零开始的连续序号,其中,上述序号为整数;
上述基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点包括:
基于上述已用时长和上述预设时长阈值,确定偏移值;
基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点。
基于本申请第一方面的第五种可能的实现方式,在第六种可能的实现方式中,上述基于当前生成已用时长和预设时长阈值,确定偏移值包括:
将上述已用时长除以上述预设时长阈值以得到商,并对上述商向下取整以得到上述偏移值;
上述基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点包括:
确定上述新增区块的高度;
将上述新增区块的高度与上述偏移值的和除以上述一个以上议会节点的数量,以得到第一余数;
将上述新增区块的高度、上述偏移值与一的和除以上述一个以上议会节点的数量,以得到第二余数;
将上述一个以上议会成员节点中序号为上述第一余数的节点确定为当前议长节点,并将上述一个以上议会成员节点中序号为上述第二余数的节点确定为当前副议长节点。
基于本申请第一方面或本申请第一方面的第一种或第二种可能的实现方式,在第七种可能的实现方式中,上述区块生成控制方法还包括:
若上述一个以上议会成员节点中存在目标节点,则将上述目标节点确定为非议会成员节点,其中,上述目标节点为连续预设次数在成为当前议长节点的期间未生成候选区块的节点。
本申请第二方面提供一种应用于区块链的区块生成控制装置,上述区块链包括一个以上议会成员节点,上述区块生成控制装置包括存储器和处理器,上述存储器存储有计算机程序,上述处理器执行上述计算机程序时实现上述第一方面或上述第一方面的任一种可能的实现方式中提及的区块生成控制方法的步骤。
本申请第三方面提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述第一方面或上述第一方面的任一种可能的实现方式中提及的区块生成控制方法的步骤。
由上可见,本申请的技术方案包括触发一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;触发一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;基于投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为区块链的新增区块。基于本申请的技术方案,可通过投票的方式避免恶意节点生成区块的情况出现(在议会成员节点中不存在过半的恶意节点的情况下均可确保区块生成正常进行),还可通过对议长节点和副议长节点所生成的候选区块进行投票以确定区块链的新增区块的方式保证生成区块的竞争性,提高了区块生成的容错率、速度和安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请提供的应用于区块链的区块生成控制方法一实施例流程示意图;
图2为本申请提供的应用于区块链的区块生成控制装置一实施例结构示意图;
图3为本申请提供的应用于区块链的区块生成控制装置另一实施例结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是本申请还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施例的限制。
实施例一
本申请提供一种应用于区块链的区块生成控制方法,上述区块链包括一个以上议会成员节点,如图1所示,上述区块生成控制方法包括:
步骤101,触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;
本申请实施例中,在上述一个以上议会成员节点中,有两个节点分别为当前议长节点和当前副议长节点,当前议长节点和当前副议长节点具备生成候选区块的能力,生成的候选区块需要经过后续步骤的处理才有可能成为区块链的新增区块;可基于智能合约触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块。
可选的,上述触发上述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票包括:
触发上述一个以上议会成员节点中的各节点对生成的候选区块进行赞成票的投票,其中,一上述节点最多能向一个上述候选区块投出赞成票;
上述预设票数条件包括:上述投票中获得的赞成票的数量大于预设数量。
进一步的,上述预设数量大于上述一个以上议会成员节点的数量的一半;
上述将生成的候选区块中满足预设票数条件的一个候选区块确定为上述区块链的新增区块包括:
将满足上述预设票数条件的一个候选区块确定为上述区块链的新增区块,并抛弃不满足上述预设票数条件的候选区块。
具体的,上述预设数量可以是任一大于上述一个以上议会成员节点的数量的一半的数量,此处不作限定;上述预设数量不大于上述一个以上议会成员节点中的数量;举例说明,若上述一个以上议会成员节点的数量为10,则上述预设数量可以是6个或7个或8个或9个或10个。
可选的,在上述触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块前,上述区块生成控制方法还包括:
基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点。
进一步的,在上述触发当前议长节点和当前副议长节点分别生成一候选区块后,上述区块生成控制方法还包括:
每在已用时长达到预设时长阈值时,返回执行上述基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点的步骤及后续步骤,其中,上述已用时长为从上述生成完成时刻至当前时刻之间的时长。
更进一步的,上述一个以上议会节点分别具备从零开始的连续序号,其中,上述序号为整数;
上述基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点包括:
基于上述已用时长和上述预设时长阈值,确定偏移值;
基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点。
再进一步的,上述基于当前生成已用时长和预设时长阈值,确定偏移值包括:
将上述已用时长除以上述预设时长阈值以得到商,并对上述商向下取整以得到上述偏移值;
上述基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点包括:
确定上述新增区块的高度;
将上述新增区块的高度与上述偏移值的和除以上述一个以上议会节点的数量,以得到第一余数;
将上述新增区块的高度、上述偏移值与一的和除以上述一个以上议会节点的数量,以得到第二余数;
将上述一个以上议会成员节点中序号为上述第一余数的节点确定为当前议长节点,并将上述一个以上议会成员节点中序号为上述第二余数的节点确定为当前副议长节点。
在一实际应用场景中,上述一个以上议会成员节点具体如表1所示:
议会成员节点序号 | 议会成员节点名称 |
0 | 节点A |
1 | 节点B |
2 | 节点C |
3 | 节点D |
4 | 节点E |
5 | 节点F |
表1
第一,确定上述区块链的待生成的新增区块的高度,记为H;
第二,将上述预设时长阈值记为T,当前时刻记为Tc,上述生成完成时刻记为T0,故上述已用时长为Tc-T0,基于(Tc-T0)/T的式子计算出上述商,之后对上述商进行向下取整以得到上述偏移值P;
第三,设当前议长节点的序号为Nx,当前副议长节点的序号为Mx,将上述表1中的议会成员节点的数量记为N(表1中,N=6),则基于Nx=(H+P)%N的式子计算出Nx,基于Mx=(H+P+1)%N的式子计算出Mx,其中,%为除法取余计算符;
第四,将表1中,序号为Nx的节点确定为当前议长节点,序号为Mx的节点确定为当前副议长节点;
可见,随着区块链区块的增加和每次生成新增区块时的已用时长Tc-T0和高度H的变化,上述一个以上议会成员节点中的各节点将轮流成为当前议长节点或当前副议长节点,实现当前议长节点和当前副议长节点周期变化。
具体的,在当前议长节点和当前副议长节点生成候选区块时,可将生成上述新增区块的上一区块时的投票相关信息存入生成的候选区块中,其中,上述投票相关信息可包括投票节点、赞成票数量和其它相关信息中的一种或多种,此处不作限定;
各节点在对某一候选区块投票前,可对该候选区块的生成节点和生成时间进行检验以判断是否存在异常,还可对该候选区块内存放的上述投票相关信息进行验证以判断是否存在异常,以及可对该候选区块在生成时所采用的智能合约和交易进行验证以判断是否存在异常;
若经上述验证后,存在至少一项异常,则抛弃该候选区块;
若经上述验证后,不存在任一项异常,则继续触发相应节点进对该候选区块进行投票。
步骤102,触发上述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;
本申请实施例中,在前一步骤中,在当前议长节点和当前副议长节点中的任一节点生成出一候选区块时,即可触发上述一个以上议会成员节点中的全部节点分别对生成的候选区块进行投票,其中,各节点仅能向当前议长节点和当前副议长节点生成的候选区块中的一个区块投赞成票,并向投赞成票的候选区块以外的候选区块投反对票或不向投赞成票的候选区块以外的候选区块进行投票,以防止选票冲突的情况出现。
步骤103,基于上述投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为上述区块链的新增区块。
本申请实施例中,在存在一生成的候选区块满足上述预设票数条件时,将该满足上述预设票数条件的候选区块确定为区块链的新增区块,完成区块链的区块的生成过程。
可选的,上述区块生成控制方法还包括:
若上述一个以上议会成员节点中存在目标节点,则将上述目标节点确定为非议会成员节点,其中,上述目标节点为连续预设次数在成为当前议长节点的期间未生成候选区块的节点。
进一步的,在上述将上述目标节点确定为非议会成员节点后,上述区块生成控制方法还包括:
对序号在上述目标节点后的议会成员节点的序号进行适应性调整,以使当前的全部议会成员节点具备从零开始的连续序号。
具体的,如表1所示,若目标节点为节点C,则可在将节点C确定为非议会成员节点后,将节点C排除出表1,并将节点D的序号更新为2,节点E的序号更新为3,节点F的序号更新为4。
需要说明的是,上述将上述目标节点确定为非议会成员节点的含义是,取消上述目标节点的议会成员节点的身份认证,也即将上述目标节点排除于上述一个以上议会成员节点之外;当一个议会成员节点连续预设次数在为当前议长节点的期间未生成候选区块时,该议会成员节点可能是恶意不生成候选区块,也可能是因意外因素(如断网)无法生成候选区块,故在此时将上述目标节点确定为非议会成员节点即可避免恶意节点或避免发生意外的节点成为当前议长节点或当前副议长节点,以防止时间的浪费,提高区块生成的速度。
可选的,可基于部署在上述区块链上的议会管理智能合约接收加入请求,并基于上述加入请求判断是否允许发送上述加入请求的节点成为一议会成员节点。
需要说明的是,上述区块链可以是应用于储能交易的区块链,具体可用于记录储能交易中产生的储能数据(可包含账目数据、能源传输数据等数据中的一种或多种),上述区块生成控制方法所生成的上述新增区块可用于存储上述储能数据;上述区块链还可应用于电商交易或其它类型的交易,上述新增区块也可用于记录/产生相关的数据,此处不作限定。
由上可见,本申请的技术方案包括触发一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;触发一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;基于投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为区块链的新增区块。基于本申请的技术方案,可通过投票的方式避免恶意节点生成区块的情况出现,还可通过对议长节点和副议长节点所生成的候选区块进行投票以确定区块链的新增区块的方式保证生成区块的竞争性,提高了区块生成的安全性和速度。
实施例二
本申请提供一种应用于区块链的区块生成控制装置,上述区块链包括一个以上议会成员节点,如图2所示,区块生成控制装置20包括:
第一触发单元201,用于触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;
第二触发单元202,用于触发上述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;
确定单元203,用于基于上述投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为上述区块链的新增区块。
可选的,第二触发单元202具体用于:
触发上述一个以上议会成员节点中的各节点对生成的候选区块进行赞成票的投票,其中,一上述节点最多能向一个上述候选区块投出赞成票;
上述预设票数条件包括:上述投票中获得的赞成票的数量大于预设数量。
进一步的,上述预设数量大于上述一个以上议会成员节点的数量的一半;
确定单元203具体用于:
将满足上述预设票数条件的一个候选区块确定为上述区块链的新增区块,并抛弃不满足上述预设票数条件的候选区块。
可选的,第一触发单元201还用于:
基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点。
进一步的,第一触发单元201还用于:
每在已用时长达到预设时长阈值时,返回执行上述基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点的步骤及后续步骤,其中,上述已用时长为从上述生成完成时刻至当前时刻之间的时长。
更进一步的,上述一个以上议会节点分别具备从零开始的连续序号,其中,上述序号为整数;
第一触发单元201具体用于:
基于上述已用时长和上述预设时长阈值,确定偏移值;
基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点。
再进一步的,第一触发单元201具体用于:
将上述已用时长除以上述预设时长阈值以得到商,并对上述商向下取整以得到上述偏移值;
上述基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点包括:
确定上述新增区块的高度;
将上述新增区块的高度与上述偏移值的和除以上述一个以上议会节点的数量,以得到第一余数;
将上述新增区块的高度、上述偏移值与一的和除以上述一个以上议会节点的数量,以得到第二余数;
将上述一个以上议会成员节点中序号为上述第一余数的节点确定为当前议长节点,并将上述一个以上议会成员节点中序号为上述第二余数的节点确定为当前副议长节点。
可选的,确定单元203还用于:
若上述一个以上议会成员节点中存在目标节点,则将上述目标节点确定为非议会成员节点,其中,上述目标节点为连续预设次数在成为当前议长节点的期间未生成候选区块的节点。
由上可见,本申请的技术方案包括触发一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;触发一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;基于投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为区块链的新增区块。基于本申请的技术方案,可通过投票的方式避免恶意节点生成区块的情况出现,还可通过对议长节点和副议长节点所生成的候选区块进行投票以确定区块链的新增区块的方式保证生成区块的竞争性,提高了区块生成的安全性和速度。
实施例三
本申请还提供另一种应用于区块链的区块生成控制装置,上述区块链包括一个以上议会成员节点,如图3所示,本申请实施例中的区块生成控制装置包括:存储器301、处理器302以及存储在存储器301中并可在处理器302上运行的计算机程序,其中:存储器301用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行各种功能应用以及数据处理,存储器301和处理器302通过总线303连接。
具体的,处理器302通过运行存储在存储器301的上述计算机程序时实现以下步骤:
触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;
触发上述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;
基于上述投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为上述区块链的新增区块。
假设上述为第一种可能的实施方式,则在基于上述第一种可能的实施方式的第二种可能的实施方式中,上述触发上述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票包括:
触发上述一个以上议会成员节点中的各节点对生成的候选区块进行赞成票的投票,其中,一上述节点最多能向一个上述候选区块投出赞成票;
上述预设票数条件包括:上述投票中获得的赞成票的数量大于预设数量。
在基于上述第二种可能的实施方式的第三种可能的实施方式中,上述预设数量大于上述一个以上议会成员节点的数量的一半;
上述将生成的候选区块中满足预设票数条件的一个候选区块确定为上述区块链的新增区块包括:
将满足上述预设票数条件的一个候选区块确定为上述区块链的新增区块,并抛弃不满足上述预设票数条件的候选区块。
在基于上述第一种或第二种或第三种可能的实施方式的第四种可能的实施方式中,在上述触发上述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块前,上述区块生成控制方法还包括:
基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点。
在基于上述第四种可能的实施方式的第五种可能的实施方式中,在上述触发当前议长节点和当前副议长节点分别生成一候选区块后,上述区块生成控制方法还包括:
每在已用时长达到预设时长阈值时,返回执行上述基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点的步骤及后续步骤,其中,上述已用时长为从上述生成完成时刻至当前时刻之间的时长。
在基于上述第五种可能的实施方式的第六种可能的实施方式中,上述一个以上议会节点分别具备从零开始的连续序号,其中,上述序号为整数;
上述基于预设的轮询机制、当前时刻和上述新增区块的上一区块的生成完成时刻,确定上述一个以上议会成员节点中的当前议长节点和当前副议长节点包括:
基于上述已用时长和上述预设时长阈值,确定偏移值;
基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点。
在基于上述第六种可能的实施方式的第七种可能的实施方式中,上述基于当前生成已用时长和预设时长阈值,确定偏移值包括:
将上述已用时长除以上述预设时长阈值以得到商,并对上述商向下取整以得到上述偏移值;
上述基于上述偏移值和上述一个以上议会节点分别具备的序号,确定上述一个以上议会节点中的当前议长节点和当前副议长节点包括:
确定上述新增区块的高度;
将上述新增区块的高度与上述偏移值的和除以上述一个以上议会节点的数量,以得到第一余数;
将上述新增区块的高度、上述偏移值与一的和除以上述一个以上议会节点的数量,以得到第二余数;
将上述一个以上议会成员节点中序号为上述第一余数的节点确定为当前议长节点,并将上述一个以上议会成员节点中序号为上述第二余数的节点确定为当前副议长节点。
在基于上述第一种或第二种或第三种可能的实施方式的第八种可能的实施方式中,上述区块生成控制方法还包括:
若上述一个以上议会成员节点中存在目标节点,则将上述目标节点确定为非议会成员节点,其中,上述目标节点为连续预设次数在成为当前议长节点的期间未生成候选区块的节点。
由上可见,本申请的技术方案包括触发一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;触发一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;基于投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为区块链的新增区块。基于本申请的技术方案,可通过投票的方式避免恶意节点生成区块的情况出现,还可通过对议长节点和副议长节点所生成的候选区块进行投票以确定区块链的新增区块的方式保证生成区块的竞争性,提高了区块生成的安全性和速度。
实施例四
本申请还提供一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。具体的,该计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式中的一种,此处不作限定;该计算机可读存储介质可以为能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质中的一种,此处不作限定。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
由上可见,本申请的技术方案包括触发一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;触发一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;基于投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为区块链的新增区块。基于本申请的技术方案,可通过投票的方式避免恶意节点生成区块的情况出现,还可通过对议长节点和副议长节点所生成的候选区块进行投票以确定区块链的新增区块的方式保证生成区块的竞争性,提高了区块生成的安全性和速度。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例所提供的方法及其细节举例可结合至实施例提供的装置和设备中,相互参照,不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种应用于区块链的区块生成控制方法,其特征在于,所述区块链包括一个以上议会成员节点;
所述区块生成控制方法包括:
触发所述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块;
触发所述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票;
基于所述投票的结果,将生成的候选区块中满足预设票数条件的一个候选区块确定为所述区块链的新增区块。
2.根据权利要求1所述的区块生成控制方法,其特征在于,所述触发所述一个以上议会成员节点中的全部或部分节点对生成的候选区块进行投票包括:
触发所述一个以上议会成员节点中的各节点对生成的候选区块进行赞成票的投票,其中,一所述节点只能向一个所述候选区块投出赞成票;
所述预设票数条件包括:所述投票中获得的赞成票的数量大于预设数量。
3.根据权利要求2所述的区块生成控制方法,其特征在于,所述预设数量大于所述一个以上议会成员节点的数量的一半;
所述将生成的候选区块中满足预设票数条件的一个候选区块确定为所述区块链的新增区块包括:
将满足所述预设票数条件的一个候选区块确定为所述区块链的新增区块,并抛弃不满足所述预设票数条件的候选区块。
4.根据权利要求1至3任一项所述的区块生成控制方法,其特征在于,在所述触发所述一个以上议会成员节点中的当前议长节点和当前副议长节点分别开始生成一候选区块前,所述区块生成控制方法还包括:
基于预设的轮询机制、当前时刻和所述新增区块的上一区块的生成完成时刻,确定所述一个以上议会成员节点中的当前议长节点和当前副议长节点。
5.根据权利要求4所述的区块生成控制方法,其特征在于,在所述触发当前议长节点和当前副议长节点分别生成一候选区块后,所述区块生成控制方法还包括:
每在已用时长达到预设时长阈值时,返回执行所述基于预设的轮询机制、当前时刻和所述新增区块的上一区块的生成完成时刻,确定所述一个以上议会成员节点中的当前议长节点和当前副议长节点的步骤及后续步骤,其中,所述已用时长为从所述生成完成时刻至当前时刻之间的时长。
6.根据权利要求5所述的区块生成控制方法,其特征在于,所述一个以上议会节点分别具备从零开始的连续序号,其中,所述序号为整数;
所述基于预设的轮询机制、当前时刻和所述新增区块的上一区块的生成完成时刻,确定所述一个以上议会成员节点中的当前议长节点和当前副议长节点包括:
基于所述已用时长和所述预设时长阈值,确定偏移值;
基于所述偏移值和所述一个以上议会节点分别具备的序号,确定所述一个以上议会节点中的当前议长节点和当前副议长节点。
7.根据权利要求6所述的区块生成控制方法,其特征在于,所述基于当前生成已用时长和预设时长阈值,确定偏移值包括:
将所述已用时长除以所述预设时长阈值以得到商,并对所述商向下取整以得到所述偏移值;
所述基于所述偏移值和所述一个以上议会节点分别具备的序号,确定所述一个以上议会节点中的当前议长节点和当前副议长节点包括:
确定所述新增区块的高度;
将所述新增区块的高度与所述偏移值的和除以所述一个以上议会节点的数量,以得到第一余数;
将所述新增区块的高度、所述偏移值与一的和除以所述一个以上议会节点的数量,以得到第二余数;
将所述一个以上议会成员节点中序号为所述第一余数的节点确定为当前议长节点,并将所述一个以上议会成员节点中序号为所述第二余数的节点确定为当前副议长节点。
8.根据权利要求1至3任一项所述的区块生成控制方法,其特征在于,所述区块生成控制方法还包括:
若所述一个以上议会成员节点中存在目标节点,则将所述目标节点确定为非议会成员节点,其中,所述目标节点为连续预设次数在成为当前议长节点的期间未生成候选区块的节点。
9.一种应用于区块链的区块生成控制装置,其特征在于,所述区块链包括一个以上议会成员节点,所述区块生成控制装置包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110161807.3A CN112911011B (zh) | 2021-02-05 | 2021-02-05 | 一种应用于区块链的区块生成控制方法及相关装置 |
US17/587,712 US20220253457A1 (en) | 2021-02-05 | 2022-01-28 | Block Generation Control Method Applied to Blockchain and Related Apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110161807.3A CN112911011B (zh) | 2021-02-05 | 2021-02-05 | 一种应用于区块链的区块生成控制方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112911011A true CN112911011A (zh) | 2021-06-04 |
CN112911011B CN112911011B (zh) | 2022-05-27 |
Family
ID=76122865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110161807.3A Active CN112911011B (zh) | 2021-02-05 | 2021-02-05 | 一种应用于区块链的区块生成控制方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220253457A1 (zh) |
CN (1) | CN112911011B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117692463A (zh) * | 2024-02-01 | 2024-03-12 | 中国信息通信研究院 | 基于区块链网络的区块生成方法和装置、设备和介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106651332A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 一种区块链中新区快的生成方法及区块链 |
CN109246122A (zh) * | 2018-09-29 | 2019-01-18 | 上海海事大学 | 一种基于谣言传播协议的拜占庭容错区块链生成方法 |
CN109743173A (zh) * | 2018-12-20 | 2019-05-10 | 弗洛格(武汉)信息科技有限公司 | 区块链中出块节点确定方法、区块验证方法及区块链系统 |
CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
CN110569251A (zh) * | 2019-09-23 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、相关设备及计算机可读存储介质 |
WO2019243816A1 (en) * | 2018-06-19 | 2019-12-26 | Setl Limited | Leader selection for permissioned blockchain |
US20200092085A1 (en) * | 2018-09-18 | 2020-03-19 | Nhn Corporation | Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system |
WO2020069411A1 (en) * | 2018-09-28 | 2020-04-02 | Thunder Token Inc. | High throughput blockchain consensus systems and methods with low finalization time |
WO2020087042A1 (en) * | 2018-10-25 | 2020-04-30 | Thunder Token Inc. | Blockchain consensus systems and methods involving a time parameter |
-
2021
- 2021-02-05 CN CN202110161807.3A patent/CN112911011B/zh active Active
-
2022
- 2022-01-28 US US17/587,712 patent/US20220253457A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106651332A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 一种区块链中新区快的生成方法及区块链 |
WO2019243816A1 (en) * | 2018-06-19 | 2019-12-26 | Setl Limited | Leader selection for permissioned blockchain |
US20200092085A1 (en) * | 2018-09-18 | 2020-03-19 | Nhn Corporation | Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system |
WO2020069411A1 (en) * | 2018-09-28 | 2020-04-02 | Thunder Token Inc. | High throughput blockchain consensus systems and methods with low finalization time |
CN109246122A (zh) * | 2018-09-29 | 2019-01-18 | 上海海事大学 | 一种基于谣言传播协议的拜占庭容错区块链生成方法 |
WO2020087042A1 (en) * | 2018-10-25 | 2020-04-30 | Thunder Token Inc. | Blockchain consensus systems and methods involving a time parameter |
CN109743173A (zh) * | 2018-12-20 | 2019-05-10 | 弗洛格(武汉)信息科技有限公司 | 区块链中出块节点确定方法、区块验证方法及区块链系统 |
CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
CN110569251A (zh) * | 2019-09-23 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、相关设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
陆歌皓等: "区块链共识算法对比研究", 《计算机科学》 * |
韩镇阳等: "一种区块链实用拜占庭容错算法的改进", 《计算机应用与软件》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117692463A (zh) * | 2024-02-01 | 2024-03-12 | 中国信息通信研究院 | 基于区块链网络的区块生成方法和装置、设备和介质 |
CN117692463B (zh) * | 2024-02-01 | 2024-05-24 | 中国信息通信研究院 | 基于区块链网络的区块生成方法和装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220253457A1 (en) | 2022-08-11 |
CN112911011B (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446947B (zh) | 一种房产交易方法及装置 | |
CN110011974B (zh) | 区块链的记账方法、装置、终端和计算机可读存储介质 | |
EP4053711A1 (en) | Consensus method for blockchain, and consensus node, electronic device and storage medium | |
CN109492394B (zh) | 异常业务请求的识别方法及终端设备 | |
CN111242619B (zh) | 引入监管机制的联盟链共识方法、区块链网络及存储介质 | |
CN111553576B (zh) | 适应电力现货市场的数据校验方法、装置及系统 | |
CN110570311B (zh) | 区块链的共识方法、装置及设备 | |
CN113489671A (zh) | 一种跨联盟链通讯方法、装置、计算机设备及存储介质 | |
CN112911011B (zh) | 一种应用于区块链的区块生成控制方法及相关装置 | |
CN110717761B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN113420323B (zh) | 数据共享方法及终端设备 | |
CN112436962B (zh) | 区块链共识网络动态扩展方法、电子设备、系统及介质 | |
CN110278091B (zh) | 一种物联网区块链共识方法 | |
CN112511312A (zh) | 一种可组装的共识方法及系统 | |
CN112037062A (zh) | 交易共识方法、装置、电子设备及可读存储介质 | |
CN114679464B (zh) | 基于分布式锁的数据回滚方法、装置、设备和存储介质 | |
CN112860807B (zh) | 一种适用于无线区块链网络的容错共识方法 | |
CN109842681A (zh) | 一种兼顾集中式与分布式特色的数据管理系统及方法 | |
CN106846142B (zh) | 一种信息处理方法及服务器 | |
CN115314289A (zh) | 受攻击执行体识别方法、输出表决器、设备及存储介质 | |
CN113472825B (zh) | 基于区块链的NB-IoT中终端交易处理方法及装置 | |
CN111083221B (zh) | 一种交易验证方法及装置 | |
CN114510507A (zh) | 一种数据校验方法、装置、终端设备及介质 | |
CN112835854A (zh) | 文件存储方法、装置、电子设备和存储介质 | |
Li et al. | Online Decision‐Making of Parallel Restoration Strategy for Power Systems Based on Susceptible‐Infected‐Recovered Model |
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 |