本申请属于区块链,具体涉及一种区块链共识方法、区块链共识装置、计算机可读介质、电子设备以及计算机程序产品。
背景技术:
1、在包括多个区块链节点的区块链网络中,为了实现去中心化的可信环境,所有区块链节点一般需要执行统一的共识算法,以便在各个节点之间进行数据的一致性同步。然而,统一的共识算法难以满足多样化的系统业务需求,存在灵活性差的问题。
技术实现思路
1、本申请提供一种区块链共识方法、区块链共识装置、计算机可读介质、电子设备以及计算机程序产品,目的在于提高区块链共识的灵活性。
2、本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
3、根据本申请实施例的一个方面,提供一种区块链共识方法,该方法包括:
4、在区块链网络中广播对应于至少两个共识阶段的共识请求,所述区块链网络包括至少两种执行不同类型共识算法的区块链节点;
5、分别获取所述区块链网络在各个所述共识阶段中广播的应答消息,所述应答消息是所述区块链节点对所述共识请求做出响应的消息;
6、统计在相同的共识阶段中发出所述应答消息的区块链节点的节点数量,所述节点数量包括至少两种执行不同类型共识算法的区块链节点的数量;
7、若所述节点数量满足第一共识算法的共识条件,在执行所述第一共识算法的区块链节点上达成共识,并向执行所述第二共识算法的区块链节点同步所述第一共识算法的共识结果,所述第一共识算法和所述第二共识算法是不同类型的共识算法。
8、根据本申请实施例的一个方面,提供一种区块链共识装置,该装置包括:
9、请求模块,被配置为在区块链网络中广播对应于至少两个共识阶段的共识请求,所述区块链网络包括至少两种执行不同类型共识算法的区块链节点;
10、应答模块,被配置为分别获取所述区块链网络在各个所述共识阶段中广播的应答消息,所述应答消息是所述区块链节点对所述共识请求做出响应的消息;
11、统计模块,被配置为统计在相同的共识阶段中发出所述应答消息的区块链节点的节点数量,所述节点数量包括至少两种执行不同类型共识算法的区块链节点的数量;
12、同步模块,被配置为若所述节点数量满足第一共识算法的共识条件,在执行所述第一共识算法的区块链节点上达成共识,并向执行所述第二共识算法的区块链节点同步所述第一共识算法的共识结果,所述第一共识算法和所述第二共识算法是不同类型的共识算法。
13、根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的区块链共识方法。
14、根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的区块链共识方法。
15、根据本申请实施例的一个方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的区块链共识方法。
16、在本申请的一些实施例中,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的区块链共识方法。
17、在本申请实施例提供的技术方案中,通过在区块链网络中配置至少两种执行不同类型共识算法的区块链节点,可以在进行节点共识的过程中,统计发出共识应答的区块链节点的节点数量,当节点数量满足其中任意一种共识算法的共识条件时,可以由满足共识条件的区块链节点向未满足共识条件的区块链节点同步共识结果,从而可以提高区块链共识的灵活性。
18、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
1.一种区块链共识方法,其特征在于,所述方法包括:
2.根据权利要求1所述的区块链共识方法,其特征在于,不同类型的共识算法具有不同数量的共识阶段,所述应答消息中携带区块链节点的算法类型和节点签名,所述算法类型用于指示所述区块链节点执行的共识算法,所述节点签名包括所述区块链节点在各个共识阶段的数字签名。
3.根据权利要求2所述的区块链共识方法,其特征在于,统计在相同的共识阶段中发出所述应答消息的区块链节点的节点数量,包括:
4.根据权利要求3所述的区块链共识方法,其特征在于,在统计与当前区块链节点处于相同共识阶段的消息发送节点的节点数量之前,所述方法还包括:
5.根据权利要求4所述的区块链共识方法,其特征在于,所述第一共识算法包括n个共识阶段,所述第二共识算法包括m个共识阶段;不同类型共识算法之间的共识阶段的匹配关系包括:
6.根据权利要求3所述的区块链共识方法,其特征在于,在统计与当前区块链节点处于相同共识阶段的消息发送节点的节点数量之后,所述方法还包括:
7.根据权利要求1所述的区块链共识方法,其特征在于,所述第一共识算法为低容错率共识算法和高容错率共识算法中的一种,所述第二共识算法为所述低容错率共识算法和高容错率共识算法中的另一种;
8.根据权利要求7所述的区块链共识方法,其特征在于,所述低容错率共识算法具有第一数量的共识阶段,所述高容错率共识算法具有第二数量的共识阶段,所述第一数量小于所述第二数量。
9.根据权利要求8所述的区块链共识方法,其特征在于,所述低容错率共识算法的共识阶段包括依次执行的准备阶段和提交阶段,所述高容错率共识算法的共识阶段包括依次执行的预准备阶段、准备阶段和提交阶段,所述低容错率共识算法的准备阶段与所述高容错率共识算法的预准备阶段相匹配,所述低容错率共识算法的提交阶段与所述高容错率共识算法的准备阶段和提交阶段相匹配。
10.根据权利要求1所述的区块链共识方法,其特征在于,在区块链网络中广播共识请求的过程中,所述方法还包括:
11.根据权利要求10所述的区块链共识方法,其特征在于,对所述区块链网络中的部分或者全部的区块链节点进行算法切换,包括:
12.根据权利要求11所述的区块链共识方法,其特征在于,对所述区块链网络进行可信度预测,包括:
13.一种区块链共识装置,其特征在于,包括:
14.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至12中任意一项所述的区块链共识方法。
15.一种电子设备,其特征在于,包括:
16.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任意一项所述的区块链共识方法。