1.一种基于交易包切片和节点动态调整的多验证组协同验证方法,其特征在于,所述方法包括:中继链的收集节点根据当前待分发的跨链交易包的优先级,确定处理所述跨链交易包的协同验证群组;
所述中继链的收集节点根据所述协同验证群组中每个子协同验证群组当前的跨链交易验证速度,将所述当前待分发的跨链交易包切分为与子协同验证群组个数相同的L个交易包切片,一个交易包切片与一个子协同验证群组为一一对应关系;
所述中继链的收集节点将每个交易包切片发送至对应的子协同验证群组内的每个验证组的组内领导节点,使每个验证组的组内领导节点将接收到的交易包切片广播给组内的每个验证节点;
每个验证组内的每个验证节点对交易包切片中的交易进行验证,并将不合法交易挑选出来并签名反馈给组内领导节点;
组内领导节点将不合法交易汇总,当验证组内超过预设比例的验证节点表明一笔交易不合法时,则将该交易从交易包切片中剔除,该验证组的组内领导节点将剩下的有效切片交易包向其他验证组的组内领导节点广播,进行多验证组协同验证,每当一个验证组的组内领导节点收到超过β个验证组的组内领导节点的签名包时,达成对切片交易包的共识,并将所述签名包发送到中继链的委员会,完成所述交易包切片中的交易验证;
所述中继链的收集节点根据所述协同验证群组中每个子协同验证群组当前的跨链交易验证速度,将所述当前待分发的跨链交易包切分为与子协同验证群组个数相同的L个交易包切片,一个交易包切片与一个子协同验证群组为一一对应关系,包括:所述中继链的收集节点根据所述协同验证群组中每个子协同验证群组内各验证组的跨链交易验证能力值,确定所述协同验证群组中每个子协同验证群组当前的跨链交易验证能力值;
所述中继链的收集节点根据所述协同验证群组中每个子协同验证群组当前的跨链交易验证能力值,确定每个子协同验证群组当前的跨链交易验证速度,其中,子协同验证群组当前的跨链交易验证速度 的表达式为:,
,
;
其中, 为子协同验证群组 的前T‑1轮次的跨链交易验证能力值均值, 为子协同验证群组 当前的跨链交易验证能力值, 为子协同验证群组 第t轮次的跨链交易验证能力值,e为自然数, 为第t轮的权重系数, 为第t‑1轮的权重系数, 为迭代系数, 为已分发跨链交易包的轮次, 为超时阈值;
根据每个子协同验证群组当前的跨链交易验证速度,确定每个子协同验证群组获得交易包切片的大小,根据每个子协同验证群组获得交易包切片的大小,按照每个子协同验证群组的排序,依次为每个子协同验证群组从所述当前待分发的跨链交易包中切分对应大小的交易包切片,其中,所述子协同验证群组 获得交易包切片的大小 的表达式为:;
其中,N为当前待分发的跨链交易包的大小,L为协同验证群组中子协同验证群组的个数。
2.根据权利要求1所述的基于交易包切片和节点动态调整的多验证组协同验证方法,其特征在于,所述子协同验证群组 当前的跨链交易验证能力值 的表达式为:,
,
,
,
;
其中, 为子协同验证群组 中验证组Gm当前的跨链交易验证能力值,M为子协同验证群组 中验证组的数量,|Gm|为验证组Gm的验证节点数量, vij为验证组Gm的验证节点i对验证节点j当前的能力值评估, 为验证组Gm的验证节点i与验证节点j之间当前的链路延迟均值的归一化值,rj为验证组Gm中验证节点j的磁盘读取速率,hj为验证组Gm中验证节点j的Hash能力,bj为验证组Gm中验证节点j的网络带宽, 为链路延迟的归一化后的权重, 为Hash能力的归一化后的权重, 为磁盘读取速率的归一化后的权重, 为网络带宽的归一化后的权重, 为验证组Gm的验证节点i和验证节点j 对第t轮次的交易包切片的传输链路延迟,Ni为验证组Gm的验证节点i的邻居节点集,|Ni|为验证组Gm的验证节点i的邻居节点数量,Jij为验证组Gm的验证节点i向验证节点j发送Ping消息的时间,Hij为验证节点i接收到验证节点j回复Pong消息的时间。
3.根据权利要求2所述的基于交易包切片和节点动态调整的多验证组协同验证方法,其特征在于,所述多验证组协同验证的方式包括:当前验证组Gm的组内领导节点向所在的子协同验证群组 内其他验证组的组内领导节点广播准备消息 ,Prepare、 、 和t分别表示消息类型为准备消息、交易包切片、验证组Gm的组内领导节点的签名和时间戳;
当验证组Gm的组内领导节点收到 个其他验证组的组内领导节点准备消息,则进入提交阶段,广播提交消息 ,Commit表示消息类型为提交消息,M表示子协同验证群组 中的验证组个数;
验证组Gm的组内领导节点收到 个提交消息时,则将通过验证的交易包切片的签名包发送到中继链的委员会,消息格式为 , 表示子协同验证群组 中所有验证组的组内领导节点的签名集合,Verified表示消息类型为验证消息。
4.根据权利要求1所述的基于交易包切片和节点动态调整的多验证组协同验证方法,其特征在于,所述每个验证组内的每个验证节点对交易包切片中的交易进行验证,并将不合法交易挑选出来并签名发送给组内领导节点的步骤之后,还包括:每个验证组的组内领导节点通过执行验证组成员节点调整算法,监控组内各验证节点对交易包切片验证的及时性,决定保留组内所有验证节点或是在该验证组中选择出预设比例的探索节点,若在该验证组中选择出预设比例的探索节点的情况下,将该验证组内作为探索节点的验证节点从组内删除放入探索节点集合中,并从所述探索节点集合中随机选取等量的探索节点作为该验证组的验证节点,其中,所述探索节点集合中还包括子协同验证群组内的其他验证组选择出的探索节点。
5.根据权利要求4所述的基于交易包切片和节点动态调整的多验证组协同验证方法,其特征在于,所述验证组成员节点调整算法的步骤包括:验证组的组内领导节点根据组内各验证节点的反馈时间,确定组内各验证节点在当前轮次获得的奖赏值,所述验证节点i在当前轮次获得的奖赏值 的表达式为:,
,
;
其中, 为验证节点i当前轮次的反馈时间, 为验证节点i所在验证组Gm中当前轮次反馈时间的均值, 为验证节点i所在验证组Gm中当前轮次反馈时间的方差,B为验证组Gm的验证节点的数量, 为验证组Gm中第j个验证节点当前轮次的反馈时间;
根据各验证节点每次获得的奖赏值,确定各验证节点当前的平均奖赏值,所述验证节点i当前的平均奖赏值Pi的表达式为:;
其中,K为验证节点i获得奖赏的次数, 为奖赏系数, 为验证节点i在第k次获得的奖赏值,e为自然数;
按照各验证节点当前的平均奖赏值从小到大进行排序;
随机生成一个0‑1的随机小数α,若随机小数α小于设定的概率阈值,从验证组中以当前的平均奖赏值从大到小的选择顺序,选取出预设比例的验证节点作为探索节点,将该验证组内作为探索节点的验证节点从组内删除放入探索节点集合中,并从所述探索节点集合中随机选取等量的探索节点作为该验证组的验证节点,若随机小数α大于概率阈值,则保留组内所有验证节点。
6.根据权利要求5所述的基于交易包切片和节点动态调整的多验证组协同验证方法,其特征在于,所述方法还包括:验证组的每个验证节点采用心跳机制检测验证组的组内领导节点是否在线,当验证组的验证节点i检测到组内领导节点宕机时,验证节点i在该验证组内广播组内领导节点切换的视图消息;
收到所述视图消息的验证节点根据预选领导节点切换顺序,选择当前组内领导节点的下一个预选领导节点,并利用检测该下一个预选领导节点是否在线,若在线,将下一个预选领导节点确定为组内领导节点,则完成组内领导节点切换,其中,所述预选领导节点切换顺序是通过验证组内每个验证节点运行pow共识生成的;
若该验证节点超时未收到回复,则继续切换至下一个预选领导节点,直到找到组内领导节点。