1.一种数据裁剪方法,其特征在于,适用于区块链节点,所述方法包括:在当前区块高度与区块安全深度的求余结果为0时,生成rollbcak-n.wal文件;其中,n为当前区块高度与所述区块安全深度之商,所述rollbcak-n.wal用于存储第三区块高度区间的各第一区块高度所生成的键的列表,所述第一区块高度所生成的键的列表存储形式为:所述第一区块高度:执行所述第一区块高度的第一区块的所有交易所生成的键,所述第三区块高度区间的第三起始高度为当前区块高度,所述第三区块高度区间的第三结束高度为所述第三起始高度加所述区块安全深度减一;
在n-2不小于0时,启动独立进程读取rollback-{n-2}.wal文件中所有的键并去重;
将去重后的各键以第五键值对的形式保存在数据库中;其中,所述第五键值对的第五键为.mvcc.m.versionkl:{n-2},所述第五键值对的第五值为去重后的各键;
接收用户发送的第一裁剪指令;其中,所述第一裁剪指令包括第二区块高度;
将所述第二区块高度与所述区块安全深度整除以获得第二数值,将所述第二数值与所述区块安全深度相乘以获得第三区块高度;
从数据库读取.mvcc.m.versionkl:{所述第二数值}对应的各六键;
对所读取的各六键执行如下操作:
将所述第六键、所述第三区块高度拼接以得到第七键;
将所述第六键、初始区块高度拼接以得到第八键;
通过二分查找定位到所述第七键、所述第八键,将所述第七键、所述第八键和所述第八键与所述第七键之间的数据删除。
2.根据权利要求1所述的方法,其特征在于,所述生成rollbcak-n.wal文件后,还包括:在n-2不小于0时,删除rollbcak-(n-2).wal文件。
3.根据权利要求1所述的方法,其特征在于,还包括:
执行第一交易以更新第一键值对,将所述第一键值对中的第一键去除版本号以得到第二键,并缓存所述第二键;
在经过第一区块高度区间后,对各所述第二键执行如下操作:将当前区块高度与区块安全深度整除以获得第一数值,将所述第一数值与所述区块安全深度相乘以获得第二区块高度区间的第二结束高度,将0作为所述第二区块高度区间的第二开始高度;
将所述第二键、所述第二区块高度区间的第二起始高度拼接以得到第三键,将所述第二键、所述第二区块高度区间的第二结束高度拼接以得到第四键;其中,所述第二结束高度低于所述第一区块高度区间的第一起始高度;
通过二分查找定位到所述第三键与所述第四键,将所述第三键、所述第四键和所述第三键和所述第四键之间的数据删除。
4.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-3中任一项所述的方法。
5.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。