1.一种区块链的共识方法,其特征在于,所述方法包括:
构建基于区块链的分布式网络,获取所述分布式网络当中节点的节点信誉值,并根据所述节点信誉值对所述节点进行分片以将所述分布式网络划分成多个分片区;
根据所述节点信誉值从每个所述分片区当中确定所述节点信誉值最高的目标节点,并将所述目标节点作为所述分片区对应的领导节点;
通过所述领导节点接收用户发出的共识请求,并根据所述共识请求通过所述领导节点对各自所述分片区内的其他节点执行共识操作,以与所述其他节点达成共识;
确定所有所述分片区当中所述节点信誉值最高的最终目标节点,通过所述最终目标节点获取所述分片区内的共识结果并根据一致性协议对其他分片区之间执行共识操作,并将所述分片区之间共识结果广播给所述其他分片区;
所述根据所述节点信誉值对所述节点进行分片以将所述分布式网络划分成多个分片区的步骤包括:建立节点信誉值等级,确定所述节点信誉等级对应的信誉值阈值,根据所述节点信誉值与信誉值阈值确定所述节点的信誉值等级;
根据所述节点的信誉值等级对所述节点进行分片以将所述分布式网络划分成多个分片区;
所述根据所述节点的信誉值等级对所述节点进行分片以将所述分布式网络划分成多个分片区的步骤包括:获取所述区块链当中信誉值等级最低的所有节点的数量NP以及单个所述分片区的最大承载数n;
根据所述所有节点的数量NP以及最大承载数n确定所述区块链当中信誉值等级最低的分片区数量m0;
根据所述信誉值等级最低的分片区数量m0,按预设比例4m0:3m0:2m0分别确定所述信誉值等级中其他信誉等级的分片区数量,从而将所述分布式网络划分成多个分片区;
其中,所述信誉值等级最低的分片区数量的计算公式为:
。
2.根据权利要求1所述的区块链的共识方法,其特征在于,所述方法还包括:当所述分片区内的节点达成共识后,接收区块链发出的交易请求并生成对应相关的交易块;
获取每个所述分片区当中的领导节点并组成用于验证的组合区,验证每个所述分片区当中发出的用于验证交易块的验证块得到包含所述验证块的验证信息的终验块;
将所述终验块进行发送,并获取所述分片区内的节点在此次交易过程当中的行为数据以得到所述节点的信誉报告。
3.根据权利要求1所述的区块链的共识方法,其特征在于,所述通过所述最终目标节点获取所述分片区内的共识结果并根据一致性协议对其他分片区之间执行共识操作的步骤包括:接收所述最终目标节点向其他所述分片区广播预设格式的共识准备消息;
根据所述共识准备消息判断所述最终目标节点是否存在作恶或发生故障;
若否,则通过参与共识的共识节点将自身的确认消息广播给所述最终目标节点,并在接收到确认消息的所述共识节点的数量达到数量阈值时所述其他分片区之间达成共识。
4.根据权利要求3所述的区块链的共识方法,其特征在于,所述根据所述共识准备消息判断所述最终目标节点是否存在作恶或发生故障的步骤之后还包括:当判断到所述最终目标节点存在作恶或发生故障,发起视图转换请求并在节点行为表中记录该节点标识。
5.根据权利要求1至4任一项所述的区块链的共识方法,其特征在于,所述方法还包括:当需要进行节点加入时,所述领导节点向候选加入节点发送节点加入消息,根据所述候选加入节点信誉值排名,将信誉排名最高的所述候选加入节点确定为加入节点;
所述加入节点向所述领导节点和其他节点发送加入请求消息,所述领导节点和其他节点对所述加入请求消息进行验证,并在验证通过后确认所述加入节点加入;
当需要进行节点退出时,当待退出节点退出后用于共识的节点的数量满足时,所述领导节点和退出节点发送退出确认消息。
6.一种区块链的共识装置,其特征在于,用于实现权利要求1至4中任意一项所述的区块链的共识方法,所述装置包括:构建模块,用于构建基于区块链的分布式网络,获取所述分布式网络当中节点的节点信誉值,并根据所述节点信誉值对所述节点进行分片以将所述分布式网络划分成多个分片区;
确定模块,用于根据所述节点信誉值从每个所述分片区当中确定所述节点信誉值最高的目标节点,并将所述目标节点作为所述分片区对应的领导节点;
片内共识模块,用于通过所述领导节点接收用户发出的共识请求,并根据所述共识请求通过所述领导节点对各自所述分片区内的其他节点执行共识操作,以与所述其他节点达成共识;
片间共识模块,用于确定所有所述分片区当中所述节点信誉值最高的最终目标节点,通过所述最终目标节点获取所述分片区内的共识结果并根据一致性协议对其他分片区之间执行共识操作,并将所述分片区之间共识结果广播给所述其他分片区。
7.一种可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5中任意一项所述的方法的步骤。
8.一种电子设备,其特征在于,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至5任意一项所述的方法的步骤。