Venachain备份与还原
该功能支持节点未启动,以及chaindb中数据损坏的场景下,通过线下传递区块数据的方式,将某节点落后的区块数据补齐
备份
通过export功能,将某节点指定范围内的经过RLP编码后的区块数据导出到某个文件中
./venachain --datadir <待导出节点的chaindata路径> export <输出文件名> <导出区块高度下界> <导出区块高度上界>
示例
./venachain export --datadir ../data/node-0/ block-0-14.data 0 14
还原
清理节点
清掉四个节点的数据目录,并根据已有的genesis初始化链
rm -rf ../data/node-*/venachain/*
./venachain init --datadir ../data/node-0 ../conf/genesis.json ./venachain init --datadir ../data/node-1 ../conf/genesis.json ./venachain init --datadir ../data/node-2 ../conf/genesis.json ./venachain init --datadir ../data/node-3 ../conf/genesis.json
导入区块数据
通过import功能,将导出的区块数据导入指定节点
./venachain --datadir <待导入节点的chaindata路径> import <区块文件名>
示例
# 给节点0导入数据 ./venachain import --datadir ../data/node-0 block-0-14.data # 然后启动节点0 cd ../scripts ./venachainctl.sh start -n 0 # 此时观察log会发现节点0的区块高度已经成为14了,其他节点可以启动,然后跟节点0连接,同步其数据,最终整个区块链高度都是14了