CN110298757B - 涉及DPoS的共识方法及其装置 - Google Patents
涉及DPoS的共识方法及其装置 Download PDFInfo
- Publication number
- CN110298757B CN110298757B CN201910603056.9A CN201910603056A CN110298757B CN 110298757 B CN110298757 B CN 110298757B CN 201910603056 A CN201910603056 A CN 201910603056A CN 110298757 B CN110298757 B CN 110298757B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- transaction
- nodes
- node group
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及DPoS的共识方法及其装置,该方法中:区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。本申请能够在不降低区块链去中心程度的基础上,提升区块链的出块效率,适用于多种数据上链的场景。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及DPoS的共识方法及其装置。
背景技术
分布式共识算法是分布式系统中保证系统状态一致性的重要技术,是分布式文件系统、分布式数据库的重要基础。区块链采用分布式共识算法在无中心节点控制,又可能存在破坏节点的环境下确立系统状态,从而建立信任。
现有的工作量证明共识机制(Proof of work,PoW),去中心化程度高,但是每产生一个区块需要10分钟左右,效率低下,不能满足各种应用数据需求。
此外,股权授权证明(Delegated Proof of Stake,DPoS)的共识机制,出块效率相对PoW要高,能够几秒钟产生一个区块;但是中心化程度低。
因此,如何根据DPoS和PoW的特点,找到一种区块链的共识机制,既能够解决出块的效率问题,也能够保证区块链系统的去中心化程度和安全性,来满足各种新场景的数据上链需求,显得至关重要。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
为了解决上述问题,本申请提供一种涉及DPoS的共识方法及其装置,该方法能够在不降低区块链去中心化程度的情况下,提升出块的效率。
本申请第一方面公开了一种涉及DPoS的共识方法,所述方法包括:
区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
在一种可能的实施方式中,所述备选出块节点组中都是完全节点,所述完全节点的节点本地存储有区块链完整的账本数据。
在一种可能的实施方式中,所述区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;具体包括:
所述备选出块节点组中一个或多个出块节点,通过对上一个区块的区块头进行第一哈希运算,得到第一哈希值;并将所述第一哈希值和附加随机数进行第二哈希运算,得到第二哈希值;所述上一个区块的区块头包括区块版本号、前一个区块的哈希值、梅克尔根、时间戳、当前难度值以及随机数;其中,所述第一哈希运算和所述第二哈希运算为相同的哈希运算;
所述备选出块节点组的一个或多个,若自身计算的所述第二哈希值小于预设值时,确定自身成为出块节点。
在一种可能的实施方式中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;具体包括:所述出块节点在预设的出块时间窗口内,将所述出块时间窗口内所述交易池的交易打包成区块;
所述出块节点将所述区块发送给所述出块节点组中的其他出块节点进行验证,验证通过后,将所述区块上链。
在一种可能的实施方式中,所述方法还包括:所述备选出块节点组中除被选的出块节点以外的备选出块节点,对所述出块节点进行工作量证明的校验,确认所述出块节点的资格;其中,
所述工作量证明校验包括校验一个或多个所述出块节点自身计算的所述第二哈希值是否小于预设值。
本申请第二方面公开了一种涉及DPoS的共识装置,所述装置为区块链节点,所述区块链节点包括处理单元、接收单元以及发送单元;其中,
所述处理单元,通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述接收单元,接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述发送单元,将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
在一种可能的实施方式中,所述备选出块节点组中都是完全节点,所述完全节点的节点本地存储有区块链完整的账本数据。
在一种可能的实施方式中,所述处理单元通过工作量证明的方式,从备选出块节点组中确定出块节点组;具体包括:
所述备选出块节点组中一个或多个出块节点,通过对上一个区块的区块头进行第一哈希运算,得到第一哈希值;并将所述第一哈希值和附加随机数进行第二哈希运算,得到第二哈希值;所述上一个区块的区块头包括区块版本号、前一个区块的哈希值、梅克尔根、时间戳、当前难度值以及随机数;其中,所述第一哈希运算和所述第二哈希运算为相同的哈希运算;
所述备选出块节点组的一个或多个,若自身计算的所述第二哈希值小于预设值时,确定自身成为出块节点。
在一种可能的实施方式中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;具体包括:所述出块节点在预设的出块时间窗口内,将所述出块时间窗口内所述交易池的交易打包成区块;
所述出块节点将所述区块发送给所述出块节点组中的其他出块节点进行验证,验证通过后,将所述区块上链。
在一种可能的实施方式中,所述备选出块节点组中除被选的出块节点以外的备选出块节点,对所述出块节点进行工作量证明的校验,确认所述出块节点的资格;其中,所述工作量证明校验包括校验一个或多个所述出块节点自身计算的所述第二哈希值是否小于预设值。
本申请第三方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行以下程序步骤:
区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现以下程序步骤:
区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
本申请通过将PoW选取出块节点,由出块节点采用DPoS共识出块,在不降低区块链去中心程度的基础上,提升区块链的出块效率,适用于多种数据上链的场景。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本申请实施例提供的一种涉及DPoS的共识方法流程示意图;
图2为本申请实施例提供的一种涉及DPoS的共识装置结构示意图;
图3为本申请实施例提供的一种涉及DPoS的计算设备结构示意图。
具体实施方式
为了更清楚的阐释本申请的整体构思,下面结合说明书附图以示例的方式进行详细说明。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的顺序在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。术语“共识机制”通常是指区块链系统中实现不同节点之间建立信任、获取权益的数学算法。
本申请实施例中所称的节点,可以理解为响应外界特定触发条件,并按一定规则做状态转换的抽象机器,可以是手机、平板电脑、掌上电脑、个人PC电脑等可以安装应用软件且能够联网的设备。
如图1所示,一种涉及DPoS的共识方法,方法包括步骤S101-S103。
S101,区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点。
S102,所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳。
S103,所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
在一个示例中,所述备选出块节点组中都是完全节点,所述完全节点的节点本地存储有区块链完整的账本数据。
在一个示例中,所述区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;具体包括:所述备选出块节点组中一个或多个出块节点,通过对上一个区块的区块头进行第一哈希运算,得到第一哈希值;并将所述第一哈希值和附加随机数进行第二哈希运算,得到第二哈希值;所述上一个区块的区块头包括区块版本号、前一个区块的哈希值、梅克尔根、时间戳、当前难度值以及随机数;其中,所述第一哈希运算和所述第二哈希运算为相同的哈希运算;所述备选出块节点组的一个或多个,若自身计算的所述第二哈希值小于预设值时,确定自身成为出块节点。
此时,第一哈希运算和第二哈希运算可以均是Hash256;在另外的示例中,第一哈希运算和第二哈希运算可以采用不同的哈希函数进行运算。
举例来说:Hash256(Hash256(上一个区块的区块头)+附加随机数)<预设值,此时,该备选出块节点获得出块节点的资格,从而对新产生的交易和区块进行验证。
此外,上述的预设值会根据当前难度值进行调整;由于备选出块节点组先对上一个区块的区块头进行第一哈希运算,该上一个区块的区块头的第一哈希值是确定。因此,需要将第一哈希值和附加随机数,进行第二哈希运算;即,备选出块节点组中的节点,可以不断尝试附加随机数,直到计算出来的第二哈希值小于预设值即可。
需要指出的是,在一次从备选出块节点组中选择出块节点组,可以有多个备选出块节点计算出的第二哈希值小于预设值;此时,根据该多个备选出块节点计算出该第二哈希值的时间,进行排序,选择先计算出来的多个备选出块节点作为出块节点。
在一个示例中,预设值=最大预设值/当前难度值。最大预设值是一个恒定值:
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF。并且,该预设值可以调节,当前难度值=旧难度值*(过去2016个区块花费实际时长/过去2016个区块花费的期望时长)。
此外,备选出块节点成为出块节点后,会对产生的区块进行验证,该验证包括验证每笔交易中的数字签名、交易发起方的余额是否充足、梅克尔根、交易的格式是否正确等。对此不进行详细说明。
在一个示例中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;具体包括:所述出块节点在预设的出块时间窗口内,将所述出块时间窗口内所述交易池的交易打包成区块;
所述出块节点将所述区块发送给所述出块节点组中的其他出块节点进行验证,验证通过后,将所述区块上链。
下面对本申请涉及到的DPoS共识方法进行说明。在DPoS共识方式中,有一定数量(例如:21个)的超级节点,这些超级节点有出块和验证的功能。以21个超级节点为例,每一轮出块,以固定的顺序出块,即每个超级节点有确定的出块时间窗口;在每个出块时间窗口内,每个超级节点连续出多个块;只有是该超级节点的出块时间窗口时,该超级节点才能够出块。超级节点(出块节点)出块后,将产生的区块发送给其他超级节点进行验证,验证成功时,各超级节点将该区块记录在各本地的区块链账本上。
对区块进行验证的方式,除出块节点以外的超级节点,有一个超级节点对该区块验证通过后,广播出去,然后各超级节点将给验证后的区块上链;一种方式中,有一半以上的超级节点通过对该区块的验证,该区块上链;一种方式中,通过PBFT的方式对新产生的区块进行验证,有大于三分之二的超级节点通过对该区块的验证,该区块上链。
需要说明的是,本申请中所称的区块上链,是指超级节点将该区块存储在本地的区块链账本上。
在一个示例中,所述方法还包括:所述备选出块节点组中除被选的出块节点以外的备选出块节点,对所述出块节点进行工作量证明的校验,确认所述出块节点的资格;其中,所述工作量证明校验包括校验一个或多个所述出块节点自身计算的所述第二哈希值是否小于预设值。
本申请基于DPoS共识机制,让全节点通过PoW的方式随机选出出块节点组,然后由出块节点组通过DPoS的方式进行共识;且可以调节PoW的计算难度,不仅能够提高出块效率,而且避免了去中心化程度降低;利用了PoW以随机的方式提升了区块链系统的安全性。
如图2所示,一种涉及DPoS的共识装置,所述装置为区块链节点,所述区块链节点包括处理单元、接收单元以及发送单元。
所述处理单元,通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点。
所述接收单元,接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳。
所述发送单元,将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
在一个示例中,所述备选出块节点组中都是完全节点,所述完全节点的节点本地存储有区块链完整的账本数据。
在一个示例中,所述处理单元通过工作量证明的方式,从备选出块节点组中确定出块节点组;具体包括:所述备选出块节点组中一个或多个出块节点,通过对上一个区块的区块头进行第一哈希运算,得到第一哈希值;并将所述第一哈希值和附加随机数进行第二哈希运算,得到第二哈希值;所述上一个区块的区块头包括区块版本号、前一个区块的哈希值、梅克尔根、时间戳、当前难度值以及随机数;其中,所述第一哈希运算和所述第二哈希运算为相同的哈希运算;所述备选出块节点组的一个或多个,若自身计算的所述第二哈希值小于预设值时,确定自身成为出块节点。
在一个示例中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;具体包括:所述出块节点在预设的出块时间窗口内,将所述出块时间窗口内所述交易池的交易打包成区块;所述出块节点将所述区块发送给所述出块节点组中的其他出块节点进行验证,验证通过后,将所述区块上链。
在一个示例中,所述备选出块节点组中除被选的出块节点以外的备选出块节点,对所述出块节点进行工作量证明的校验,确认所述出块节点的资格;其中,所述工作量证明校验包括校验一个或多个所述出块节点自身计算的所述第二哈希值是否小于预设值。
本申请基于DPoS共识机制,让全节点通过PoW的方式随机选出出块节点组,然后由出块节点组通过DPoS的方式进行共识;且可以调节PoW的计算难度,不仅能够提高出块效率,而且避免了去中心化程度降低,并通过随机的方式提升了区块链系统的安全性。
上述实施例中,与方法实施例中相同或相近之处皆可参见,不再赘述。
本申请实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行以下程序步骤:
区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现以下程序步骤:
区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链。
图3示出了本说明书实施例所提供的一种计算机设备结构示意图,该计算机设备可以包括:处理器310、存储器320、输入/输出接口330、通信接口340和总线350。其中处理器310、存储器320、输入/输出接口330和通信接口340通过总线350实现彼此之间在设备内部的通信连接。
处理器310可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器320可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器320可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器320中,并由处理器310来调用执行。
输入/输出接口330用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口340用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线350包括一通路,在设备的各个组件(例如处理器310、存储器320、输入/输出接口330和通信接口340)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器310、存储器320、输入/输出接口330、通信接口340以及总线350,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (4)
1.一种涉及DPoS的共识方法,其特征在于,所述方法包括:
区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述区块链节点接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述区块链节点将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;
所述区块链节点通过工作量证明的方式,从备选出块节点组中确定出块节点组;具体包括:
所述备选出块节点组中一个或多个出块节点,通过对上一个区块的区块头进行第一哈希运算,得到第一哈希值;并将所述第一哈希值和附加随机数进行第二哈希运算,得到第二哈希值;所述上一个区块的区块头包括区块版本号、前一个区块的哈希值、梅克尔根、时间戳、当前难度值以及随机数;其中,所述第一哈希运算和所述第二哈希运算为相同的哈希运算;
所述备选出块节点组的一个或多个,若自身计算的所述第二哈希值小于预设值时,确定自身成为出块节点;
所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;具体包括:
所述出块节点在预设的出块时间窗口内,将所述出块时间窗口内所述交易池的交易打包成区块;
所述出块节点将所述区块发送给所述出块节点组中的其他出块节点进行验证,验证通过后,将所述区块上链;
所述方法还包括:
所述备选出块节点组中除被选的出块节点以外的备选出块节点,对所述出块节点进行工作量证明的校验,确认所述出块节点的资格;其中,
所述工作量证明校验包括校验一个或多个所述出块节点自身计算的所述第二哈希值是否小于预设值。
2.根据权利要求1所述的方法,其特征在于,所述备选出块节点组中都是完全节点,所述完全节点的节点本地存储有区块链完整的账本数据。
3.一种涉及DPoS的共识装置,其特征在于,所述装置为区块链节点,所述区块链节点包括处理单元、接收单元以及发送单元;其中,
所述处理单元,通过工作量证明的方式,从备选出块节点组中确定出块节点组;其中,所述区块链节点为所述备选出块节点组中的任一备选出块节点;
所述接收单元,接收客户端发送的交易请求,所述交易请求包括发起方地址、接收方地址、交易金额、客户端签名以及时间戳;
所述发送单元,将所述交易请求发送给所述出块节点组中任一出块节点,以便于所述出块节点验证通过所述交易,并将验证通过的交易放在交易池中,所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;
所述处理单元通过工作量证明的方式,从备选出块节点组中确定出块节点组;具体包括:
所述备选出块节点组中一个或多个出块节点,通过对上一个区块的区块头进行第一哈希运算,得到第一哈希值;并将所述第一哈希值和附加随机数进行第二哈希运算,得到第二哈希值;所述上一个区块的区块头包括区块版本号、前一个区块的哈希值、梅克尔根、时间戳、当前难度值以及随机数;其中,所述第一哈希运算和所述第二哈希运算为相同的哈希运算;
所述备选出块节点组的一个或多个,若自身计算的所述第二哈希值小于预设值时,确定自身成为出块节点;
所述出块节点通过DPoS共识方式将所述交易池中的交易打包成区块,且将所述区块上链;具体包括:
所述出块节点在预设的出块时间窗口内,将所述出块时间窗口内所述交易池的交易打包成区块;
所述出块节点将所述区块发送给所述出块节点组中的其他出块节点进行验证,验证通过后,将所述区块上链;
所述备选出块节点组中除被选的出块节点以外的备选出块节点,对所述出块节点进行工作量证明的校验,确认所述出块节点的资格;其中,
所述工作量证明校验包括校验一个或多个所述出块节点自身计算的所述第二哈希值是否小于预设值。
4.根据权利要求3所述的装置,其特征在于,所述备选出块节点组中都是完全节点,所述完全节点的节点本地存储有区块链完整的账本数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910603056.9A CN110298757B (zh) | 2019-07-05 | 2019-07-05 | 涉及DPoS的共识方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910603056.9A CN110298757B (zh) | 2019-07-05 | 2019-07-05 | 涉及DPoS的共识方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110298757A CN110298757A (zh) | 2019-10-01 |
CN110298757B true CN110298757B (zh) | 2021-04-02 |
Family
ID=68030419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910603056.9A Active CN110298757B (zh) | 2019-07-05 | 2019-07-05 | 涉及DPoS的共识方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110298757B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683121B (zh) * | 2020-05-22 | 2022-12-13 | 哈尔滨工程大学 | 基于DPoS的云端数据溯源区块链共识机制改进方法 |
CN111639129B (zh) * | 2020-05-24 | 2023-07-11 | 中信银行股份有限公司 | 交易处理方法、装置、电子设备及计算机可读存储介质 |
CN111882319A (zh) * | 2020-07-07 | 2020-11-03 | 苏波 | 区块链数据上链处理方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971342A (zh) * | 2017-03-29 | 2017-07-21 | 宁夏凯速德科技有限公司 | 去中心化的电子商务平台中基于区块链技术的交易方法及系统 |
US20180276668A1 (en) * | 2017-03-24 | 2018-09-27 | Alibaba Group Holding Limited | Method and apparatus for consensus verification |
CN108717630A (zh) * | 2018-05-19 | 2018-10-30 | 上海分布信息科技有限公司 | 一种出块方法及其实现系统 |
CN108737498A (zh) * | 2018-04-18 | 2018-11-02 | 中国地质大学(武汉) | 一种基于区块链的p2p安全下载检测方法及系统 |
CN109886661A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
CN109949157A (zh) * | 2019-03-08 | 2019-06-28 | 矩阵元技术(深圳)有限公司 | 一种区块链共识的处理方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109525648A (zh) * | 2018-10-26 | 2019-03-26 | 全链通有限公司 | 区块链共识机制、设备及计算机可读存储介质 |
-
2019
- 2019-07-05 CN CN201910603056.9A patent/CN110298757B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180276668A1 (en) * | 2017-03-24 | 2018-09-27 | Alibaba Group Holding Limited | Method and apparatus for consensus verification |
CN106971342A (zh) * | 2017-03-29 | 2017-07-21 | 宁夏凯速德科技有限公司 | 去中心化的电子商务平台中基于区块链技术的交易方法及系统 |
CN108737498A (zh) * | 2018-04-18 | 2018-11-02 | 中国地质大学(武汉) | 一种基于区块链的p2p安全下载检测方法及系统 |
CN108717630A (zh) * | 2018-05-19 | 2018-10-30 | 上海分布信息科技有限公司 | 一种出块方法及其实现系统 |
CN109886661A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
CN109949157A (zh) * | 2019-03-08 | 2019-06-28 | 矩阵元技术(深圳)有限公司 | 一种区块链共识的处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110298757A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190386834A1 (en) | Blockchain management apparatus, blockchain management method, and program | |
CN110298757B (zh) | 涉及DPoS的共识方法及其装置 | |
CN110247753B (zh) | 基于区块链节点网络的出块方法及装置 | |
CN110222537B (zh) | 应用于区块链节点的验证方法及装置 | |
CN110909083A (zh) | 区块链上可验证随机函数的共识方法及其系统 | |
CN109922049A (zh) | 基于区块链的验证装置及方法 | |
CN113536240A (zh) | 一种结合nft的门票使用方法及其装置 | |
CN110298670B (zh) | 涉及pbft的共识方法及其装置 | |
CN110233722B (zh) | 在区块链上的出块方法及装置 | |
CN111078715A (zh) | 区块链上互联网广告数据的同步存储方法及其装置 | |
CN110222538B (zh) | 涉及区块链的验证方法及装置 | |
CN110224839B (zh) | 应用于区块链上的验证方法及装置 | |
CN110688677B (zh) | 用于执行智能合约的方法和装置 | |
CN111835815A (zh) | 区块链上互联网自媒体数据的同步存储方法及其装置 | |
CN111125250A (zh) | 区块链上互联网评价数据的存储方法及其装置 | |
CN111831725A (zh) | 在区块链上互联网旅游数据的同步存储方法及其装置 | |
CN110990418A (zh) | 一种基于区块链用户数据的异步处理方法及其装置 | |
CN110225043B (zh) | 应用于区块链的打包方法及装置 | |
CN111833051A (zh) | 基于pbft共识的实物抵押数据存储方法及装置 | |
CN111078795A (zh) | 根据区块链上互联网社交数据的存储方法及其装置 | |
CN111831851A (zh) | 基于pbft共识的家庭监控数据存储方法及装置 | |
CN110245949B (zh) | 涉及区块链的打包方法及装置 | |
CN110247773B (zh) | 在区块链上的打包方法及装置 | |
EP4227879A1 (en) | Identifier change management device, identifier change management method, and identifier change management program | |
CN111831735A (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 | ||
CB02 | Change of applicant information |
Address after: 100085 No. 108, 1st Floor, No. 9, Shangdi Jiujie, Haidian District, Beijing Applicant after: Beijing ruice Technology Co., Ltd Address before: 100085 No. 108, 1st Floor, No. 9, Shangdi Jiujie, Haidian District, Beijing Applicant before: BEIJING AIMO RUICE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |