技术特征:
1.一种共识算法中主节点选取方法,其特征在于,包括:获取区块链集群的历史轮次的共识流程对应的历史区块;其中,所述历史轮次的共识流程为在所述区块链集群的当前轮次的共识流程之前已完成的设定轮次的共识流程;根据所述历史区块中记录的节点提案和投票信息,统计得到所述区块链集群中各个节点的信誉积分;根据所述各个节点的信誉积分,从所述各个节点中选取出所述当前轮次的共识流程的主节点。2.如权利要求1所述的方法,其特征在于,所述获取区块链集群的历史轮次的共识流程对应的历史区块,包括:获取预设的区块获取数量以及区块跳过数量;根据所述当前轮次的共识流程对应的当前区块和所述区块跳过数量,确定所述历史区块中的最后一个区块;根据所述最后一个区块和所述区块获取数量,确定所述历史区块中的第一个区块;将所述第一个区块和所述最后一个区块之间的所有区块、所述第一个区块以及所述最后一个区块,确定为获取到的所述历史区块。3.如权利要求2所述的方法,其特征在于,所述根据所述当前轮次的共识流程对应的当前区块和所述区块跳过数量,确定所述历史区块中的最后一个区块,包括:获取所述当前区块对应的第一区块编号;将所述第一区块编号减去所述区块跳过数量后再减一,得到第二区块编号;将所述第二区块编号对应的区块确定为所述最后一个区块;所述根据所述最后一个区块和所述区块获取数量,确定所述历史区块中的第一个区块,包括:将所述第二区块编号减去所述区块获取数量后再加一,得到第三区块编号;将所述第三区块编号对应的区块确定为所述第一个区块。4.如权利要求1所述的方法,其特征在于,所述节点提案和投票信息包括每个所述节点的成功提案次数、成功投票次数以及失败提案次数;所述根据所述历史区块中记录的节点提案和投票信息,统计得到所述区块链集群中各个节点的信誉积分,包括:针对所述历史区块中的每个区块,分别根据所述区块中记录的每个所述节点的成功提案次数、成功投票次数以及失败提案次数,统计得到所述区块对应的信誉分值数据;其中,所述信誉分值数据记录每个所述节点的信誉分值,所述信誉分值和所述成功提案次数正相关,所述信誉分值和所述成功投票次数正相关,所述信誉分值和所述失败提案次数负相关;对所述历史区块中的每个区块对应的信誉分值数据进行按节点区分的信誉分值累计处理,得到当前区块对应的信誉积分数据;其中,所述信誉积分数据记录每个所述节点的信誉分值累计后得到的信誉积分,所述当前区块为所述当前轮次的共识流程对应的区块。5.如权利要求4所述的方法,其特征在于,所述针对所述历史区块中的每个区块,分别根据所述区块中记录的每个所述节点的成功提案次数、成功投票次数以及失败提案次数,统计得到所述区块对应的信誉分值数据,包括:从所述历史区块中查找与所述当前区块最接近且存有对应的信誉积分数据的目标区块;
针对所述历史区块中包含所述目标区块以及之后的每个区块,分别根据所述区块中记录的每个所述节点的成功提案次数、成功投票次数以及失败提案次数,统计得到所述区块对应的信誉分值数据;所述对所述历史区块中的每个区块对应的信誉分值数据进行按节点区分的信誉分值累计处理,得到当前区块对应的信誉积分数据,包括:对所述历史区块中包含所述目标区块以及之后的每个区块对应的信誉分值数据和所述目标区块对应的信誉积分数据进行按节点区分的信誉分值累计处理,得到所述当前区块对应的信誉积分数据。6.如权利要求5所述的方法,其特征在于,在根据所述各个节点的信誉积分,从所述各个节点中选取出所述当前轮次的共识流程的主节点之后,还包括:发送携带所述当前区块对应的信誉积分数据的投票信息至所述主节点,以指示所述主节点将所述当前区块对应的信誉积分数据存入所述当前区块。7.如权利要求1至6任一项所述的方法,其特征在于,所述获取区块链集群的历史轮次的共识流程对应的历史区块,包括:当所述当前轮次的共识流程开始时,根据所述区块链集群的配置信息确定所述当前轮次的共识流程是否需要选举主节点;若所述当前轮次的共识流程需要选举主节点,则获取所述历史轮次的共识流程对应的历史区块。8.一种共识算法中主节点选取装置,其特征在于,包括:历史区块获取模块,用于获取区块链集群的历史轮次的共识流程对应的历史区块;其中,所述历史轮次的共识流程为在所述区块链集群的当前轮次的共识流程之前已完成的设定轮次的共识流程;信誉积分统计模块,用于根据所述历史区块中记录的节点提案和投票信息,统计得到所述区块链集群中各个节点的信誉积分;主节点选取模块,用于根据所述各个节点的信誉积分,从所述各个节点中选取出所述当前轮次的共识流程的主节点。9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的共识算法中主节点选取方法。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的共识算法中主节点选取方法。
技术总结
本申请涉及区块链技术领域,提出一种共识算法中主节点选取方法、装置、电子设备和存储介质。该方法包括:获取区块链集群的历史轮次的共识流程对应的历史区块;其中,该历史轮次的共识流程为在区块链集群的当前轮次的共识流程之前已完成的设定轮次的共识流程;根据该历史区块中记录的节点提案和投票信息,统计得到区块链集群中各个节点的信誉积分;根据各个节点的信誉积分,从各个节点中选取出当前轮次的共识流程的主节点。采用该方法选取主节点没有明显的规律可循,因此能够降低主节点被成功预测的概率,从而减少主节点遭受恶意攻击的可能性,提高共识算法的性能。提高共识算法的性能。提高共识算法的性能。
技术研发人员:黄方蕾 袁超 李兆硕 张珂杰 尚璇
受保护的技术使用者:杭州趣链科技有限公司
技术研发日:2022.11.18
技术公布日:2023/3/31