CN111274314B - 一种确定造块节点的方法、装置及电子设备 - Google Patents
一种确定造块节点的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111274314B CN111274314B CN202010037557.8A CN202010037557A CN111274314B CN 111274314 B CN111274314 B CN 111274314B CN 202010037557 A CN202010037557 A CN 202010037557A CN 111274314 B CN111274314 B CN 111274314B
- Authority
- CN
- China
- Prior art keywords
- node
- integral
- agglomeration
- nodes
- determining
- 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
Classifications
-
- 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
-
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种确定造块节点的方法、装置及电子设备,该方法包括:获取每个节点的历史积分;基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分;基于所述第一积分和节点获得的投票数,得到每个节点的第二积分;根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点。本发明实施方式提供的确定造块节点的方法,将获得的投票数转换成积分,按照积分的高低不断的确定新的造块节点,然后调整造块节点的历史积分,这样能够不断的更新积分,不断的确定新的造块节点,能够避免现有技术中通过投票选出的造块节点非常稳定,进而避免了当稳定的造块节点出现故障,导致区块链系统不稳定的问题。
Description
技术领域
本发明涉及区块链技术领域,尤其是涉及一种确定造块节点的方法、装置及电子设备。
背景技术
区块链技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。区块链系统一般由一个个块顺序连接而成。每个块都是一些数据的集合,这些数据一般是已经完成的交易的记录,加上交易发布者对这些数据的签名。除此之外,每个块上一般还包含把交易聚合成数据块的数据处理者的签名。这些把交易聚合成数据块的数据处理者就是造块节点。
块是区块链实现的基石。造块节点是整个区块链系统的运行者,是系统稳定的基石。一般区块链的节点分为造块节点和同步节点,这两种节点都需要服务器及人工维护以保证节点的稳定性,因此节点本身就会产生资源的消耗。一般而言,造块节点的开销更大,为了保证节点能够实现造块,需要更高配置的服务器、更复杂的运维等,这样就会产生服务器折旧、高额的电费,维护的人工成本等。一般而言,节点需要成为造块节点,才能获得激励,进而作为造块节点才能更好的参与区块链的系统运行。所以如何设计节点成为造块节点,是设计区块链系统的重要环节。
目前,现有的节点成为造块节点有以下两种方法:
(1)工作量证明方法(Proof of Work,POW),即各节点之间竞争地去尝试解决一个数学上的难题,例如各个节点不断挑选随机数,使得这个随机数和区块信息一起做哈希运算,哈希运算结果符合某个特定条件的节点就成功的作为造块节点,该造块节点造块后就能够得到激励。但是,一般来讲,为了解决这种数学上的难题,一般都需要每个节点消耗时间和大量的资源(电力)。因此POW方法的缺陷在于:为了竞争成为造块节点,占用了大量的资源,导致每个节点在数据处理上对于资源的使用效率非常低,从而导致数据处理的效率相对较低,一般多在每秒50次交易以下。
(2)委托权益证明(Delegated Proof of Stake,DPOS),即由区块链通证的持有的个人或者组织(下述简称区块链通行证持有者)在区块链上给节点投票,获得最多投票的一些节点就会作为造块节点,造块节点造块后,就会获得激励。这种方式一般可以达到较高的执行效率(每秒上千次交易),同时资源消耗远小于POW。但是,DPOS方法的缺陷在于:一般对节点投票是相对稳定的,因此通过获得投票而作为造块节点可能只是相对固定的少数(例如几十个)节点。例如,几个区块链通行证持有者和某个节点之间串通造假,使得区块链通行证的持有者不断的给该串通的节点投票,使其不断的作为造块节点,不断的获得激励。再例如,某几个区块链通行证的持有者和几个节点之间串通,一起造假块,相互之间串通获取激励。由于区块链通行证的持有者给节点投票是相对稳定的,就会带来潜在的安全问题,例如,当一些稳定的造块节点出现意外故障,那么区块链上直接连接的造块节点太少,导致无法造块或造块困难,进而导致区块链无法继续运行,这样不利于区块链系统的运行。
发明内容
(一)发明目的
本发明的目的是提供一种确定区块链造块节点的方法、装置及电子设备,该方法将获得的投票数转换成积分,按照积分的高低不断的确定新的造块节点,然后调整造块节点的历史积分,这样能够不断的更新积分,不断的确定新的造块节点,能够避免现有技术中通过投票选出的造块节点非常稳定,进而避免了当稳定的造块节点出现故障,导致区块链系统不稳定的问题。
(二)技术方案
为解决上述问题,本发明的第一方面提供了一种确定造块节点的方法,包括:获取每个节点的历史积分;基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分;基于所述第一积分和节点获得的投票数,得到每个节点的第二积分;根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点。
进一步地,所述基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分包括:设置造过块的所述节点的积分降低;所述基于所述第一积分和节点获得的投票数,得到每个节点的第二积分包括:设置收到投票的所述节点的积分增加。
进一步地,设置收到投票的所述节点的积分增加包括:每一票对应的积分为第二预设值;每个所述节点的所述第二积分为所述节点的所述第一积分与所述节点获得的票数和所述第二预设值的乘积的加和。
进一步地,设置造过块的所述节点的积分降低包括:获取所述造块节点的平均积分;当所述造块节点的历史积分大于或等于所述平均积分和第一预设系数的乘积时,确定所述造块节点的所述第一积分为所述历史积分与所述乘积的差。
进一步地,当所述造块节点的历史积分小于所述乘积时,确定所述造块节点的积分为第三预设值。
进一步地,在所述获取每个节点的历史积分之前,还包括首次确定造块节点的步骤:在全部节点中任意选取所述第一预设值个作为初始的造块节点,设置全部的所述节点的初始积分相同。
进一步地,所述根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点包括:当所述第一预设值个所述节点中,排在最后一位的积分分值对应有多个节点时,从多个节点中随机选取一个或多个以确定第一预设值个所述造块节点。
根据本发明的另一方面,还提供了一种确定造块节点的装置,包括历史积分获取模块,用于获取每个节点的历史积分;第一积分获取模块,用于基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分;第二积分获取模块,用于基于所述第一积分和节点获得的投票数,得到每个节点的第二积分;造块节点确定模块,用于根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点。
进一步地,所述第一积分获取模块,用于基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分包括:所述第一积分确定模块,用于设置造过块的所述节点的积分降低;所述第二积分获取模块,用于基于所述第一积分和节点获得的投票数,得到每个节点的第二积分包括:所述第二积分获取模块,用于设置收到投票的所述节点的积分增加。
进一步地,所述第二积分获取模块,用于设置收到投票的所述节点的积分增加包括:
所述第二积分获取模块,用于获取每一票对应的积分为第二预设值;确定每个所述节点的所述第二积分为所述节点的所述第一积分与所述节点获得的票数和所述第二预设值的乘积的加和。
进一步地,所述第一积分确定模块,用于设置造过块的所述节点的积分降低包括:
所述第一积分确定模块,用于获取所述造块节点的平均积分;当所述造块节点的历史积分大于或等于所述平均积分和第一预设系数的乘积时,确定所述造块节点的所述第一积分为所述历史积分与所述乘积的差。
进一步地,所述第一积分确定模块,还用于当所述造块节点的历史积分小于所述乘积时,确定所述造块节点的积分为第三预设值。
进一步地,还包括初始造块节点确定模块,用于在所述第一积分获取模块获取每个节点的历史积分之前,首次确定的初始的造块节点:
所述初始造块节点确定该模块,用于在全部节点中任意选取所述第一预设值个作为初始的造块节点,设置全部的所述节点的初始积分相同。
进一步地,所述造块节点确定模块用于根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点包括:
所述造块节点确定模块,用于当所述第一预设值个所述节点中,排在最后一位的积分分值对应有多个节点时,从多个节点中随机选取一个或多个以确定第一预设值个所述造块节点。
根据本发明的第三方面,还提供了一种区块链系统,采用第一方面提供的方法确定新的造块节点。
根据本发明的第四方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现第一方面提供的确定造块节点的方法的步骤。
根据本发明的第五方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时第一方面提供的确定造块节点的方法的步骤。
(三)有益效果
本发明的上述技术方案具有如下有益的技术效果:
本发明的实施方式提供了一种确定造块节点的方法、装置及系统,能够将获得的投票数转换成积分,按照积分的高低不断的确定新的造块节点,然后调整造块节点的历史积分,这样能够不断的更新积分,不断的确定新的造块节点,能够避免现有技术中通过投票选出的造块节点非常稳定,进而避免了当稳定的造块节点出现故障,提高了区块链系统的稳定性。
附图说明
图1是本发明一实施方式提供的确定区块链造块节点的方法流程示意图;
图2是本发明一实施例提供的确定造块节点的方法流程示意图。
图3是本发明又一实施方式提供的确定区块链造块节点的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
以下将参照实施方式更详细地描述本发明。
图1为本发明一实施方式提供的确定区块链造块节点的方法。
如图1所示,该方法包括步骤S101-步骤S104:
步骤S101,获取每个节点的历史积分。
需要说明的是,这里历史积分是指,在上一次造块后,各个节点的积分。
步骤S102,基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分。没有造过块的节点的历史积分不变。
其中,当某一个节点为本轮的造块节点时,在本轮造块后,调整造块节点的历史积分得到第一积分。
步骤S103,基于所述第一积分和节点获得的投票数,得到每个节点的第二积分。
具体地,基于每个节点的第一积分和该节点获得的投票数,获得该节点的第二积分。可以理解的是,没有收到投票的节点的第二积分与第一积分是相等的。
S104,根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点。
在本发明上述实施方式中,将获得的投票数转换成积分,按照积分的高低不断的确定新的造块节点,然后调整造块节点的历史积分,这样能够不断的更新积分,不断的确定新的造块节点,能够避免现有技术中通过投票选出的造块节点非常稳定,进而避免了当稳定的造块节点出现故障,导致区块链系统不稳定的问题。
在一个具体的实施例中,所述基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分包括:设置造过块的所述节点的积分降低。
所述基于所述第一积分和节点获得的投票数,得到每个节点的第二积分包括:设置收到投票的所述节点的积分增加。
在本实施例中,设置收到投票的节点的积分增加,造过块的节点的积分降低,这样就会使得积分的排名呈现动态的变化,进而没有造过块的节点也有机会作为新的造块节点,进而得到激励,从而不断的确定新一轮的造块节点,避免由于投票总是投给固定的几个节点,避免了固定的区块链造块节点出现故障,导致区块链系统出现故障,提高了区块链造块节点的稳定性。
在一个实施例中,设置收到投票的所述节点的积分增加包括:
每一票对应的积分为第二预设值。
每个所述节点的所述第二积分为所述节点的所述第一积分与所述节点获得的票数和所述第二预设值的乘积的加和。
其中,第二预设值可以是1,当然也可设置第二预设值为任何正数,例如0.5、1.5、2或3,本发明并不以此为限。
在一个优选的实施例中,设置造过块的所述节点的积分降低包括:获取所述造块节点的平均积分;当所述造块节点的历史积分大于或等于所述平均积分和第一预设系数的乘积时,确定所述造块节点的所述第一积分为所述历史积分与所述乘积的差。
优选的,该第一预设系数可以是0.1、0.2、0.3或中的一种,也可是属于0-1的任何数值。
需要说明的是,本发明优选的上述第二预设值为1,该第一预设系数为0.1,这样能够平衡投票者投票对积分造成的上升和造块后积分值降低的影响,使得投票的作用和造过块积分降低之间达到平衡。
还需要说明的是,一般区块链会设定获得投票数越多的,前N个节点作为造块节点。排名越靠前,允许造块的数量就越多。
当第一预设系数较高,可能会导致造过块的积分降低的程度对排名的影响过大,例如导致造过块的节点的积分的排名从第一名迅速下降,导致造过块的节点的积分与没造过块的积分相差很大。若第一预设系数过高,容易出现虽然造过块,积分下降了很多,但是下一轮统计的时候,获得了非常多的投票,使得造过块的节点还能排在第一预设值内,但是排名非常靠后,这种情况,虽然能够继续下一轮的造块,但是可以被允许造块的数量就会比较少。获得的投票很多,但是造出来的块很少,导致系统还是容易出现不平衡的情况,因此,在本实施例中,优选设定第一预设系数为0.1,使得造过块的节点积分下降,但是又符合获得投票多的节点能造出较多的块的这一自然规律。
在一个实施例中,设置造过块的所述节点的积分降低包括:
在造块完成后,确定所述造块节点所述第一积分为:造块前的该造块节点的历史积分减去第二预设系数与造块前造块节点中的最高积分。第二预设系数可以是0-1之间的任一一个数值,例如是0.1。当然,第二预设系数可以与第一预设系数相同或不同。
需要说明的是,本实施例也能够实现将造过块的节点积分降低,但是效果不如上述采用所述造块节点的平均积分的效果。主要是平均积分会很好的体现本轮节点的在造块前的积分。有时候积分排名第一的节点会比靠后的节点高出来非常的很多,甚至是高出来十倍,这样有可能导致造块后,积分靠后的节点减去排名第一的节点,直接导致很多节点积分为0,直接变成了倒数第一,所以相比于本实施例,采用造块节点的平均积分的方案使得造过块的节点积分降低的更稳定。
在一个实施例中,设置造过块的所述节点的积分降低包括:
在造块完成后,确定所述造块节点的所述第一积分为:造块前该造块节点的历史积分与第三预设系数的乘积。该第三预设系数可以是从0到1之间的数。本发明经过测试,最优的第三系数为0.9。
需要说明的是,本实施例也能够实现将造过块的节点积分降低,但是效果也不如上述采用所述造块节点的平均积分的效果,也不如采用最高积分的实施例的效果。主要是如果是造过块之后,按照造块前的积分成比例减小,那么可能这一轮的这几个造块节,在经过多轮造块后,还是出现在同一轮中。导致每轮造块的节点都是相同的这几个,导致造块节点很稳定,这样的系统就会比采用平均积分的系统差一些。
在一个实施例中,在所述获取每个节点的历史积分之前,还包括首次确定造块节点的步骤:
在全部节点中任意选取所述第一预设值个作为初始的造块节点,设置全部的所述节点的初始积分相同。
在一个实施例中,当所述造块节点的历史积分小于所述乘积时,确定所述造块节点的积分为第三预设值。
可选的,第三预设值为0,或者为初的积分值,本发明第三预设值优选为0。
在一个实施例中,所述根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点包括:
当所述第一预设值个所述节点中,排在最后一位的积分分值对应有多个节点时,从多个节点中随机选取一个或多个以确定第一预设值个所述造块节点。
例如,每次从100个节点中确定5个作为造块节点,假设第二积分中,排名第一的积分为100分,有3个节点,排名第二的积分为90分,对应有4个节点(那么在要确定的5个节点中,排在最后的积分为90,对应有4个节点),排名第三的积分为80分,对应的有5个节点。那么选择5个作为造块节点时,就会选择100分的3个节点,和在90分的4个节点中随机选2个。
可以理解的是,本发明上述实施方式提供的方法,设置收到投票的节点的积分增加,造过块的节点的积分降低,这样就会使得积分的排名呈现动态的变化,使得作为造块节点的节点不固定,当某一轮中某个造块节点出现故障时,由于该节点造块后,积分会下降,该节点在后续的多轮造块中可能就不是造块节点了,通过新的一轮确定新的造块节点,这样相比于现有技术,本发明实施方式采用分时间的不断的确定造块节点,即便是某个节点出现故障,也很快的产生新的造块节点,大大提高了系统的稳定性。
下面将以具体实施例的方式详细说明上述实施方式提供的确定造块节点的方法。
图2是本发明一实施例提供的确定造块节点的方法流程示意图。
如图2所示,在开启区块链系统之前,先将时间按照长度设定一个预设的时间作为一轮,本实施例以10分钟为例。设置每轮中造块的节点按照积分从高到低,每个依次造X个块。
然后,在第一轮开始前,所有节点的积分初始化成零。此时区块链的通行证持有者还没有进行投票,所有节点的积分都是零,可以在全部的节点中随机的选择N个节点作为造块节点。
第一步,启动区块链,区块链启动之后,初始的造块节点开始第一轮造块,区块链驱动后,通行证持有者可以为各个节点投票了。
第二步,在第一轮造块后,根据初始积分第一次更新积分。由于初始的时候设置每个节点积分都是0,那么造块节点的平均值为0;本轮造过块的节点的积分变为造块前积分-0.1*平均积分,每个造块后的积分为0,即第一轮造块后,所有积分仍然为0。
第三步,统计投票的数量,根据投票的数量和第一轮得到各个节点的造块后的积分第二次更新积分,按照由高到低得到第一列表,从第一列表中选择积分最高的N个节点作为下一轮的造块节点。
其中,更新规则是,如果节点获得投票,那么该节点积分的增加,该节点的积分为投票之前的初始积分+这个节点收到的票数。例如初始节点的积分为0,某节点收到20000投票,则该节点的积分增加20000。当列表中排在第N位的积份对应有多个节点,则随机选择多个节点,以使能够得到N个作为造块节点。
第四步,开始下一轮造块及投票(例如是从第二轮到第M轮的任一轮)。造块后,根据上一轮造块后的各个节点的历史积分更新积分。
具体地,根据上一轮造块后的各个节点的历史积分更新积分为:对于在第二个回合的第一轮已经造块的N个节点,计算这N个节点积分的平均数,计作AVG_SCORE。对于这N个节点中的每一个,积分如果小于alpha*AVG_SCORE,重置为零,否则减去alpha*AVG_SCORE。其中alpha是一个针对特定场景和目标可以调节的参数,默认值可以设置为0.1。
第五步,统计在本轮造块过程中,各个节点获得的票数,收到投票的节点积分增加,积分最高的N个节点作为下一轮的造块节点。
然后不断的重复第四步和第五步,不算的确定下一轮的造块节点,直到区块链关闭。
本发明的上述实施例预设有一轮的时间周期。在一轮期间,轮替造块。每轮造块后之间重新确定新一轮的造块节点。这样每一轮的造块节点,都是变化的,是较难以预测的。相比于DPOS系统中降低了长期稳定的造块节点串通作假的可能性。
图3是本发明一实施方式提供的一种确定造块节点的装置100的结构示意图。
如图3所示,该确定造块节点的装置100包括:
历史积分获取模块10,用于获取每个节点的历史积分。
第一积分获取模块20,用于基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分。
第二积分获取模块30,用于基于所述第一积分和节点获得的投票数,得到每个节点的第二积分。
需要说明的是,对于本轮获得投票节点的第二积分,在下一轮时,就会作为该节点的历史积分,对于本轮没有获得投票的节点,在一下时,其第一积分作为该节点的历史积分,依次类推。
造块节点确定模块40,用于根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点。
其中,所述第一积分获取模块,用于基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分包括:所述第一积分确定模块,用于设置造过块的所述节点的积分降低。
其中,所述第二积分获取模块,用于基于所述第一积分和节点获得的投票数,得到每个节点的第二积分包括:所述第二积分获取模块,用于设置收到投票的所述节点的积分增加。
在一个实施例中,所述第二积分获取模块,用于设置收到投票的所述节点的积分增加包括:
所述第二积分获取模块,用于获取每一票对应的积分为第二预设值;确定每个所述节点的所述第二积分为所述节点的所述第一积分与所述节点获得的票数和所述第二预设值的乘积的加和。
在一个实施例中,所述第一积分确定模块,用于设置造过块的所述节点的积分降低包括:
所述第一积分确定模块,用于获取所述造块节点的平均积分;当所述造块节点的历史积分大于或等于所述平均积分和第一预设系数的乘积时,确定所述造块节点的所述第一积分为所述历史积分与所述乘积的差。
在一个实施例中,所述第一积分确定模块,还用于当所述造块节点的历史积分小于所述乘积时,确定所述造块节点的积分为第三预设值。
在一个实施例中,还包括初始造块节点确定模块,用于在所述第一积分获取模块获取每个节点的历史积分之前,首次确定的初始的造块节点:
所述初始造块节点确定该模块,用于在全部节点中任意选取所述第一预设值个作为初始的造块节点,设置全部的所述节点的初始积分相同。
在一个实施例中,所述造块节点确定模块用于根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点包括:
所述造块节点确定模块,用于当所述第一预设值个所述节点中,排在最后一位的积分分值对应有多个节点时,从多个节点中随机选取一个或多个以确定第一预设值个所述造块节点。
本发明一个实施方式还提供了一种区块链系统,采用上述实施方式提供的方法确定新的造块节点。
本发明一个实施方式还提供了一种存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述实施方式提供的方法确定新的造块节点的步骤。
本发明一个实施方式还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时上述实施方式提供的方法确定新的造块节点的步骤。
本发明的将上述图2所示的实施例的方法运用到区块链中并与使用DPOS的波场链(TRON链)和商用分布式区块链(Enterprise Operation System,EOS链)进行了对比。
在2019年12月19日,进行了统计,统计时本发明的区块链中用户数量为347125,而TRON链的用户数量为4325312,EOS链的用户数量为1681658。虽然本发明的区块链中用户数量比较少,但是统计的结果显示本发明的区块链历史上总共参与造块的节点有97个,而使用DPOS的TRON链历史上总共参与造块的节点有82个,而使用DPOS的EOS链历史上总共参与造块的节点有60个。
在2019年12月19日,在某一时刻统计三种链最后五个造块节点的票数总排名,本发明区块链的最后5个造块节点的票数分别为1,8,21,36,49,TRON链的最后5个造块节点的票数分别为5,6,10,14,24,EOS链的最后5个造块节点的票数分别为5,9,12,13,15。由这组数据可知,本发明的区块链系统确实通过允许排名更靠后的节点造块,实现了更大的参与度。虽然本发明的用户数量最少,但是参与造块的用户确实最多的,完全实现了各个节点都能够参与竞争造块节点,能够显著的避免造块节点与区块链通行证持有者之间造假的可能,提高了区块链系统的稳定性。
在本发明上述实施方式中,将收到投票的节点的积分增加,造过块的节点的积分降低,这样就会使得积分的排名有变化,进而没有造过块的节点也有机会作为新的造块节点得到激励,从而不断的确定新一轮的造块节点,避免由于投票总是投给固定的几个节点,避免了固定的区块链造块节点出现故障,导致区块链系统出现故障,提高了区块链造块节点的稳定性。另外,值得一提的是,本发明采用上述实施方式的方式,通过在每个预设区间后更新造块节点,不仅使得造块的参与者更多,参与者都能公平的竞争造块,这样使得区块链系统更难以作假,系统更稳定。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (9)
1.一种确定造块节点的方法,其特征在于,包括:
获取每个节点的历史积分;
基于所述节点为造块节点,调整所述造块节点的历史积分,设置造过块的所述节点的积分降低,得到每个节点的第一积分;
基于所述第一积分和节点获得的投票数,设置收到投票的所述节点的积分增加,得到每个节点的第二积分;
根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点。
2.根据权利要求1所述的确定造块节点的方法,其特征在于,所述设置收到投票的所述节点的积分增加包括:
每一票对应的积分为第二预设值;
每个所述节点的所述第二积分为所述节点的所述第一积分与所述节点获得的票数和所述第二预设值的乘积的加和。
3.根据权利要求1所述的确定造块节点的方法,其特征在于,设置造过块的所述节点的积分降低包括:
获取所述造块节点的平均积分;
当所述造块节点的历史积分大于或等于所述平均积分和第一预设系数的乘积时,确定所述造块节点的所述第一积分为所述历史积分与所述乘积的差。
4.根据权利要求3所述的确定造块节点的方法,其特征在于,
当所述造块节点的历史积分小于所述乘积时,确定所述造块节点的积分为第三预设值。
5.根据权利要求4所述的确定造块节点的方法,其特征在于,在所述获取每个节点的历史积分之前,还包括首次确定造块节点的步骤:
在全部节点中任意选取所述第一预设值个作为初始的造块节点,设置全部的所述节点的初始积分相同。
6.根据权利要求1-5任一项所述的确定造块节点的方法,其特征在于,
所述根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点包括:
当所述第一预设值个所述节点中,排在最后一位的积分分值对应有多个节点时,从多个节点中随机选取一个或多个以确定第一预设值个所述造块节点。
7.一种确定造块节点的装置,其特征在于,基于权利要求1所述确定造块节点的方法,包括:
历史积分获取模块,用于获取每个节点的历史积分;
第一积分获取模块,用于基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分;
第二积分获取模块,用于基于所述第一积分和节点获得的投票数,得到每个节点的第二积分;
造块节点确定模块,用于根据所述第二积分由高至低选取第一预设值个所述节点为新的造块节点。
8.根据权利要求7所述的装置,其特征在于,
所述第一积分获取模块,用于基于所述节点为造块节点,调整所述造块节点的历史积分,得到每个节点的第一积分包括:
所述第一积分确定模块,用于设置造过块的所述节点的积分降低;
所述第二积分获取模块,用于基于所述第一积分和节点获得的投票数,得到每个节点的第二积分包括:
所述第二积分获取模块,用于设置收到投票的所述节点的积分增加。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行如权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010037557.8A CN111274314B (zh) | 2020-01-14 | 2020-01-14 | 一种确定造块节点的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010037557.8A CN111274314B (zh) | 2020-01-14 | 2020-01-14 | 一种确定造块节点的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274314A CN111274314A (zh) | 2020-06-12 |
CN111274314B true CN111274314B (zh) | 2023-07-25 |
Family
ID=71001660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010037557.8A Active CN111274314B (zh) | 2020-01-14 | 2020-01-14 | 一种确定造块节点的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274314B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347901A (zh) * | 2018-08-23 | 2019-02-15 | 泰链(厦门)科技有限公司 | 区块链系统的共识机制实现方法、介质、装置及系统 |
CN110175867A (zh) * | 2019-04-26 | 2019-08-27 | 华中科技大学 | 一种基于共享积分的区块链激励方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10360191B2 (en) * | 2016-10-07 | 2019-07-23 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
-
2020
- 2020-01-14 CN CN202010037557.8A patent/CN111274314B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347901A (zh) * | 2018-08-23 | 2019-02-15 | 泰链(厦门)科技有限公司 | 区块链系统的共识机制实现方法、介质、装置及系统 |
CN110175867A (zh) * | 2019-04-26 | 2019-08-27 | 华中科技大学 | 一种基于共享积分的区块链激励方法及系统 |
Non-Patent Citations (2)
Title |
---|
Proof of Vote: A High-Performance Consensus Protocol Based on Vote Mechanism & Consortium Blockchain;Kejiao Li,Hui Li,Hanxu Hou,Kedan Li,Yongle Chen;《 2017 IEEE 19th International Conference on High Performance Computing and Communications》;全文 * |
基于联盟区块链的数据安全存储方案设计与应用;周鹏;《中国优秀硕士学位论文全文数据库》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111274314A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114189421B (zh) | 一种领导者节点选举方法、系统、存储介质及设备 | |
CN109165945B (zh) | 代表节点设备选举方法、装置、计算机设备及存储介质 | |
CN107220130B (zh) | 一种在区块链的节点处实现的信息共识方法、装置及系统 | |
CN110855432B (zh) | 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制 | |
CN110611701A (zh) | 一种基于区块链的参数配置和交易处理方法 | |
US20200286049A1 (en) | Systems and methods of self-administered protocols on a blockchain platform | |
CN112104482B (zh) | 一种基于并行投票的共识方法 | |
CN111432014B (zh) | 一种区块链共识算法中主节点选取的方法和装置 | |
CN108712468B (zh) | 一种区块链收益分配方法和分配系统 | |
CN111010278A (zh) | 一种基于DPoS高容错分层共识方法 | |
CN108833484B (zh) | Pos机制下记账节点选择方法 | |
CN111130790A (zh) | 基于区块链节点网络的共识出块方法 | |
WO2022267715A1 (zh) | 一种预言机节点筛选方法、装置、存储介质及电子装置 | |
CN112118138B (zh) | 区块链共识机制实现系统和方法 | |
CN112020018B (zh) | 区块链记账组生成方法、共识方法及区块链系统 | |
CN112907082A (zh) | 一种区块链共识算法评估优化方法 | |
CN111861661A (zh) | 一种电动汽车充电交易方法及装置 | |
CN111078787A (zh) | 一种基于随机数映射的区块链共识方法 | |
CN111274314B (zh) | 一种确定造块节点的方法、装置及电子设备 | |
CN110930158A (zh) | 一种基于奖惩机制的区块链DPoS共识方法 | |
CN111131184A (zh) | 一种区块链共识机制的自主调节方法 | |
CN113283778B (zh) | 一种基于安全性评价的分层汇聚联邦学习方法 | |
CN111490994A (zh) | 区块链节点群间dpos与节点群内pow结合的共识机制方法 | |
CN115879889A (zh) | 基于区块链的业务处理方法、装置和计算机设备 | |
CN116112507A (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 |