本技术涉及区块链,具体而言,涉及一种共识提案节点选取方法、共识提案节点选取装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术:
1、目前,在区块链技术领域中,每一个交易数据都需要经过共识后才能落盘于区块链。相关技术的拜占庭类共识算法中,如果某个节点出现故障,当轮到它成为提案节点的时候,是不会产生提案发给其他节点进行共识,于是就会出现当轮到这个故障节点成为提案节点的时候,整个区块链网络是没有提案进行共识,从而导致其他节点需要等待一个时间超时投空票达成空的共识,然后换一个正常节点成为提案节点,生成了有效的提案才能达成有提案的共识,导致区块链的性能较低。
技术实现思路
1、为解决上述技术问题,本技术的实施例提供了一种共识提案节点选取方法、共识提案节点选取装置、电子设备、计算机可读存储介质及计算机程序产品,可以实现尽可能选择正常共识节点成为提案节点,充分提高区块链共识性能。
2、本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
3、根据本技术实施例的一个方面,提供了一种共识提案节点选取方法,包括:获取历史区块对应的节点提案记录,所述节点提案记录包括各个共识节点的信誉值,所述信誉值用于表征共识节点成功生成提案的次数;根据所述节点提案记录对各个共识节点成为提案节点的概率进行调整,所述信誉值与所述共识节点成为提案节点的概率正相关;在未来区块的共识流程中,根据所述各个共识节点成为提案节点的概率从所述各个共识节点中选取所述提案节点。
4、根据本技术实施例的一个方面,提供了一种共识提案节点选取装置,包括:获取模块,用于获取历史区块对应的节点提案记录,所述节点提案记录包括各个共识节点的信誉值,所述信誉值用于表征共识节点成功生成提案的次数;调整模块,用于根据所述节点提案记录对各个共识节点成为提案节点的概率进行调整,所述信誉值与所述共识节点成为提案节点的概率正相关;选取模块,用于在未来区块的共识流程中,根据所述各个共识节点成为提案节点的概率从所述各个共识节点中选取所述提案节点。
5、在本技术的一实施例中,调整模块进一步用于若所述历史区块的数量达到预设数量阈值,则根据预设数量个历史区块中各个共识节点的信誉值,生成各个共识节点分别对应的数字区间,所述数字区间的区间长度与所述共识节点成为提案节点的概率正相关;在未来区块的共识流程中,根据所述各个共识节点成为提案节点的概率从所述各个共识节点中选取所述提案节点,包括:获取所述预设数量个历史区块中各个共识节点的信誉值的总和;在未来预设数量个区块的共识流程中,根据所述数字区间和所述信誉值的总和从各个共识节点中选取所述提案节点。
6、在本技术的一实施例中,调整模块进一步用于获取各个共识节点的排列顺序;根据所述各个共识节点的排列顺序和所述预设数量个历史区块中各个共识节点的信誉值生成各个共识节点分别对应的数字区间。
7、在本技术的一实施例中,调整模块进一步用于根据排序首位的共识节点的信誉值为排列首位的共识节点生成数字区间;根据排列前一位的共识节点的数字区间和排列当前位的共识节点的信誉值生成排列当前位的共识节点的信誉值,以得到各个共识节点分别对应的数字区间。
8、在本技术的一实施例中,选取模块进一步在未来预设数量个区块的共识流程中,获取当前区块的前一区块的区块哈希值;根据所述前一个区块的区块哈希值和所述信誉值的总和计算节点索引值;根据所述节点索引值和所述数字区间从各个共识节点中选取当前区块的提案节点。
9、在本技术的一实施例中,选取模块进一步用于将所述节点索引值与各个数字区间进行匹配;若存在包含所述节点索引值的目标数字区间,则将所述目标数字区间所对应的共识节点作为当前区块的提案节点;若不存在包含所述节点索引值的目标数字区间,则根据所述预设数量个历史区块中各个共识节点的信誉值,在数值最大的数字区间后为各个共识节点生成多个数值连续的数字增加区间,直至所述数字增加区间包含所述节点索引值;将包含所述节点索引值对应的数字增加区间所对应的共识节点作为当前区块的提案节点。
10、在本技术的一实施例中,装置还包括切换模块,用于在未来预设数量个区块的共识流程中,若所选取的当前区块的提案节点在当前区块之前已连续多次被选为提案节点,则确定除所选取的当前区块的提案节点之外的其他共识节点的数字区间,将当前区块的提案节点切换为数字区间的区间长度最大的所对应的其他共识节点。
11、在本技术的一实施例中,装置还包括切换模块,用于若选取的所述当前区块的提案节点在针对当前区块的共识流程中没有成功提案,则依照各个共识节点的排列顺序,将所述提案节点的下一个共识节点作为当前区块的提案节点。
12、在本技术的一实施例中,装置还包括初始模块,用于在未来区块的第一个区块的共识流程中,将所述各个共识节点的信誉值初始化;若选取出的所述提案节点成功生成提案,则对初始化后的共识节点的信誉值进行更新,以生成未来区块对应的节点提案记录;根据所述未来区块对应的节点提案记录,重新执行共识节点成为提案节点的概率调整过程,并在下一个未来区块的共识流程中,进行提案节点选取过程。
13、在本技术的一实施例中,装置还包括初始模块,用于若检测到共识节点的数量发生变化,则将各个共识节点的信誉值初始化;根据各个共识节点的顺序,将各个共识节点依次作为共识流程的提案节点;根据各个共识节点作为共识流程的提案节点的提案生成情况,对初始化后的共识节点的信誉值进行更新,以重新生成区块对应的节点提案记录。
14、在本技术的一实施例中,获取模块进一步用于为各个共识节点设置初始信誉值;在共识流程中,若任意一个共识节点成为提案节点时针对一历史区块成功生成提案,则对成功生成提案的共识节点所对应的初始信誉值进行累加;重新执行对初始信誉值进行累加的过程,以生成所述节点提案记录。
15、在本技术的一实施例中,调整模块进一步用于若在预设数量个历史区块中共识节点成功生成提案的次数小于预设次数阈值,则根据成功生成提案的次数和预设次数阈值的差对所述节点提案记录进行更新,以减少所述共识节点的信誉值;根据更新后的节点提案记录对各个共识节点成为提案节点的概率进行调整。
16、根据本技术实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当一个或多个计算机程序被一个或多个处理器执行时,使得电子设备实现如上所述的共识提案节点选取方法。
17、根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序被电子设备的处理器执行时,使电子设备执行如上所述的共识提案节点选取方法。
18、根据本技术实施例的一个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序存储在计算机可读存储介质中,电子设备的处理器从计算机可读存储介质读取并执行计算机程序,使得电子设备执行如上所述的共识提案节点选取方法。
19、在本技术的实施例所提供的技术方案中,获取历史区块对应的节点提案记录,该节点提案记录包括各个共识节点的用于表征共识节点成功生成提案的次数的信誉值,通过信誉值可以反映各个共识节点的状态,进而通过历史区块对应的节点提案记录对各个共识节点成为提案节点的概率进行调整,而信誉值与共识节点成为提案节点的概率正相关,以使得历史区块中正常共识节点成为提案节点的概率相对较大,历史区块中故障共识节点成为提案节点的概率相对较小,进而在未来区块的共识流程中,根据各个共识节点成为提案节点的概率从各个共识节点中选取提案节点,以尽可能选择正常共识节点成为提案节点,实现区块链大幅度提升性能的目的。
20、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
1.一种共识提案节点选取方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,根据所述节点提案记录对各个共识节点成为提案节点的概率进行调整,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述预设数量个历史区块中各个共识节点的信誉值,生成各个共识节点分别对应的数字区间,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述各个共识节点的排列顺序和所述预设数量个历史区块中各个共识节点的信誉值生成所述各个共识节点分别对应的数字区间,包括:
5.根据权利要求2所述的方法,其特征在于,所述在未来预设数量个区块的共识流程中,根据所述数字区间和所述信誉值的总和从各个共识节点中选取所述提案节点,包括:
6.根据权利要求5所述的方法,其特征在于,所述根据所述节点索引值和所述数字区间从各个共识节点中选取当前区块的提案节点,包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
9.根据权利要求1所述的方法,其特征在于,在所述根据所述各个共识节点成为提案节点的概率从所述各个共识节点中选取所述提案节点之后,所述方法还包括:
10.根据权利要求1所述的方法,其特征在于,所述根据所述各个共识节点成为提案节点的概率从所述各个共识节点中选取所述提案节点之后,还包括:
11.根据权利要求1所述的方法,其特征在于,所述获取历史区块对应的节点提案记录,包括:
12.根据权利要求1至11任一项所述的方法,其特征在于,所述根据所述节点提案记录对各个共识节点成为提案节点的概率进行调整,包括:
13.一种共识提案节点选取装置,其特征在于,包括:
14.一种电子设备,其特征在于,包括:
15.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被电子设备的处理器执行时,使得所述电子设备执行权利要求1至12中任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,电子设备的处理器从所述计算机可读存储介质读取并执行所述计算机程序,使所述电子设备执行权利要求1至12中任一项所述的方法。
