lotus 区块高度 导出快照

1,导出快照

找一个已经同步完区块高度的节点

lotus chain export --recent-stateroots=900 --skip-old-msgs snapshot.car

导出时间大概30分钟,快照3.9GB

# ls -lh | grep snapshot.car
-rw-r--r-- 1 root root 3.9G 928 10:50 snapshot.car
  • 3分钟导出来
# lotus chain export --recent-stateroots=900 --skip-old-msgs snapshot.car
+++2020-10-01T17:32:07.675+0800	INFO	rpc	go-jsonrpc@v0.1.2-0.20200822201400-474f4fdccc52/client.go:213	rpc output message buffer	{"n": 2}
4.7G snapshot.car
  • 4分钟导出
lotus chain export --recent-stateroots=900 --skip-old-msgs snapshot.car
4.8G Oct  8 12:56 snapshot.car

lotus 1.1.0

lotus version 1.1.0+git.420ec18c5.dirty
lotus chain export --skip-old-msgs --recent-stateroots=900 <filename>
  • 导出修剪过的最小的快照
lotus chain export --skip-old-msgs --recent-stateroots=900 snapshot.car
  • 导出时间5分钟,5.3GB
# lotus chain export --skip-old-msgs --recent-stateroots=900 snapshot.car
+++++2020-10-21T16:14:22.936+0800	INFO	rpc	go-jsonrpc@v0.1.2-0.20201008195726-68c6a2704e49/client.go:346	rpc output message buffer	{"n": 2}

lotus 1.1.2

# lotus --version
lotus version 1.1.2
  • 导出时间30分钟,6.9GB
# lotus chain export --skip-old-msgs --recent-stateroots=900 snapshot.car
+++++++++++++++++++++++++++++++
  • 5分钟导出,7GB
lotus chain export --skip-old-msgs --recent-stateroots=900 snapshot.car
7.0G Nov  3 14:49 snapshot.car

lotus version 1.2.2

lotus chain export --skip-old-msgs --recent-stateroots=2000 <filename>
lotus chain export --skip-old-msgs --recent-stateroots=2000 snapshot.car

lotus version 1.4.0

  • 导出时间超过1个小时
19G Jan 21 13:36 snapshot.car
  • 导出时间太长,可以二次导出,15分钟就可以导出完成
lotus chain export --skip-old-msgs --recent-stateroots=2000 snapshot.car
# cat  /var/log/chain/daemon.log | grep -E "export started|export finished"
2021-01-21T20:00:52.999+0800	INFO	chainstore	store/store.go:1473	export started
2021-01-21T20:15:38.967+0800	INFO	chainstore	store/store.go:1484	export finished	{"duration": 885.967916763}

lotus version 1.5.0

du -sh chain/
660G	chain/
  • 导出时间53分钟
lotus chain export --recent-stateroots=2000 --skip-old-msgs snapshot.car
31G Mar 10 13:04 snapshot.car

lotus version 1.6.0

  • 导出时间非常长
lotus chain export --recent-stateroots=2000 --skip-old-msgs snapshot.car

lotus version 1.8.0

  • 快照太大可以导入,再导出,导出时间大概30分钟
27G May  1 12:58 snapshot.car

2,导入快照

新节点导入快照,加速区块高度同步

lotus daemon --import-snapshot snapshot.car
lotus daemon --import-snapshot snapshot.car --halt-after-import

安全导入快照

  • LOTUS_PATH目录下重命名datastore目录,快照导入失败还可以修改回来,导入快照会重新生成datastore目录
mv datastore/ datastore_old
  • 导入完成会退出
lotus daemon --import-snapshot snapshot.car --halt-after-import
$LOTUS_PATH/kvlog/metadata 重命名cbor
nohup lotus daemon >> /var/log/chain/daemon.log 2>&1 &
在这里插入代码片
  • 监控区块高度的同步变化
lotus sync status
# lotus sync wait
Worker: 0; Base: 98799; Target: 98799 (diff: 0)
State: complete; Current Epoch: 98799; Todo: 0

Done!
  • 停止运行快照导入,重新运行lotus daemon

3,减少lotus磁盘占用空间

  • 删除lotus/datastore/chain/目录下内容
# du -sh lotus/datastore/chain/
16K	lotus/datastore/chain/
  • 导入快照
lotus daemon --import-snapshot <filename>
lotus daemon --import-snapshot snapshot.car

参考:

  1. 官方文档 链管理