1.一种联盟链中的状态备份方法,包括:
联盟链中的目标共识节点在创建第n个快照之后生成指定数量的区块时,确定所述第n个快照之后的指定数量的区块中最后一个区块中的交易执行之后的世界状态;
所述目标共识节点基于所述第n个快照之后的指定数量的区块中最后一个区块的交易执行之后的世界状态,创建与所述指定数量的区块中最后一个区块对应的第n+1个快照,其中,n为正整数。
2.如权利要求1所述的方法,联盟链中的目标共识节点在创建第n个快照之后生成指定数量的区块时,确定所述第n个快照之后的指定数量的区块中最后一个区块中的交易执行之后的世界状态,包括:
所述目标共识节点在创建第n个快照之后生成指定数量的区块时,在所述联盟链中广播检查点checkpoint消息;
所述目标共识节点接收来自所述联盟链中的其它共识节点的checkpoint消息;
所述目标共识节点在接收到来自所述联盟链的至少2f个其它共识节点的checkpoint消息时,确定所述第n个快照之后的指定数量的区块中最后一个区块中的交易执行之后的世界状态,其中f为所述联盟链允许的异常共识节点最大数量。
3.如权利要求1所述的方法,所述指定数量为正整数。
4.如权利要求3所述的方法,当所述指定数量为1时,所述目标共识节点基于所述第n个快照之后的指定数量的区块中最后一个区块的交易执行之后的世界状态,创建与所述指定数量的区块中最后一个区块对应的第n+1个快照之后,所述方法还包括:
如果所述目标共识节点对应的状态机在生成下一个区块之前出现故障,则所述目标节点确定所述第n+1个快照对应的区块的下一个待生成的区块中对应的交易;
所述目标共识节点基于所述第n+1个快照、以及所述第n+1个快照对应的区块的下一个待生成的区块对应的交易,进行状态恢复。
5.如权利要求4所述的方法,所述目标共识节点基于所述第n+1个快照、以及所述第n+1个快照对应的区块的下一个待生成的区块对应的交易,进行状态恢复,包括:
所述目标共识节点基于所述第n+1个快照对应的区块的下一个待生成的区块对应的交易的预写式日志wal,获取所述第n+1个快照对应的区块的下一个待生成的区块对应的交易中已完成共识的交易和未完成共识的交易;
所述目标共识节点基于所述第n+1个快照和所述已完成共识的交易,进行状态回放;
所述目标共识节点在所述联盟链中对所述未完成共识的交易进行共识操作。
6.如权利要求3所述的方法,当所述指定数量为大于1的正整数k时,所述目标共识节点基于所述第n个快照之后的指定数量的区块中最后一个区块的交易执行之后的世界状态,创建与所述第n个快照之后的指定数量的区块中最后一个区块对应的第n+1个快照之后,所述方法还包括:
如果所述目标共识节点对应的状态机在生成所述第n+1个快照之后的指定数量的区块之前出现故障,则所述目标节点确定在所述n+1个快照对应的区块之后生成的区块、以及已完成共识且未写入区块的交易和未完成共识的交易;
所述目标共识节点基于所述n+1个快照、所述n+1个快照对应的区块之后生成的区块、以及已完成共识且未写入区块的交易和未完成共识的交易,进行状态恢复。
7.如权利要求6所述的方法,所述目标共识节点基于所述n+1个快照、所述n+1个快照对应的区块之后生成的区块、以及已完成共识且未写入区块的交易和未完成共识的交易,进行状态恢复,包括:
所述目标共识节点基于所述n+1个快照、所述n+1个快照对应的区块之后生成的区块、以及所述已完成共识且未写入区块的交易,进行状态回放;
所述目标共识节点在所述联盟链中对所述未完成共识的交易进行共识操作。
8.如权利要求1所述的方法,当n为1时,所述目标共识节点在创建第n个快照之后生成指定数量的区块时,确定所述第n个快照之后的指定数量的区块中最后一个区块中的交易执行之后的世界状态之前,所述方法还包括:
所述目标共识节点在生成创始区块时,确定所述创始区块中的交易执行之后的世界状态;
所述目标共识节点基于所述创始区块的交易执行之后的世界状态,创建与所述创始区块对应的第1个快照。
9.一种联盟链中的状态备份装置,包括:
状态确定模块,在创建第n个快照之后生成指定数量的区块时,确定所述第n个快照之后的指定数量的区块中最后一个区块中的交易执行之后的世界状态;
快照创建模块,基于所述第n个快照之后的指定数量的区块中最后一个区块的交易执行之后的世界状态,创建与所述指定数量的区块中最后一个区块对应的第n+1个快照,其中,n为正整数。
10.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
在创建第n个快照之后生成指定数量的区块时,确定所述第n个快照之后的指定数量的区块中最后一个区块中的交易执行之后的世界状态;
基于所述第n个快照之后的指定数量的区块中最后一个区块的交易执行之后的世界状态,创建与所述指定数量的区块中最后一个区块对应的第n+1个快照,其中,n为正整数。
11.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
在创建第n个快照之后生成指定数量的区块时,确定所述第n个快照之后的指定数量的区块中最后一个区块中的交易执行之后的世界状态;
基于所述第n个快照之后的指定数量的区块中最后一个区块的交易执行之后的世界状态,创建与所述指定数量的区块中最后一个区块对应的第n+1个快照,其中,n为正整数。