新手教程 snapshot 快照工具的使用

gk5 · 2018年12月22日 · 最后由 gk5 回复于 2018年12月26日 · 519 次阅读
本帖已被设为精华帖!

昨天看到群里有同学用snapshot工具同步主网数据,现在主网数据已经很大了,全部同步实在不易,对于做dapp的用户来说同步一个轻量级的数据很实用,我整理总结了一下,供大家参考,有问题一起讨论哈!

1.snapshot快照工具描述

eos的快照(snapshot)工具是对当前chain上的数据状态和块信息进行快照,可用于同步主网数据,同步的数据只包括快照当前及之后的数据,在dapp应用方面比较方便实用,数据量大大减小。

2.使用快照的说明

2.1配置快照目录

默认情况下,快照将写入snapshots相对于nodeos数据目录的目录。可以使用snapshots_dir配置或使用--snapshots_dir命令行选项使用相对路径或绝对路径覆盖此路径。 快照将写入以该模式命名的文件 snapshot-

.bin

2.2触发创建快照

可以使用通过的可用RPC在运行时触发快照producer_api_plugin。例如: $ curl http://192.168.1.37:9001/v1/producer/create_snapshot | json_pp

2.3从快照实例化节点

当开始的一个新实例nodeos的--snapshot 命令行选项可以被用来代替重放blocks.log或从网络重新同步。如果blocks.log提供了,它必须至少包含直到快照块的块,并且可以包含将作为启动的一部分应用的附加块。此外,reversible/将应用任何可用的块。 从快照实例化节点时,传递任何--genesis-*参数是非法的,因为从快照加载了该信息。如果blocks.log存在,其包含的起源信息将根据快照中的起源数据进行验证,如果它们不一致则会出错。 注意在没有blocks.log的情况下从快照实例化节点是有效的但它会创建一个部分blocks.log,这将影响其为块数据提供服务的RPC / P2P请求的能力。

2.3同步主网数据步骤:

本步骤是建立在已经下载了主网的eos版本并编译的前提下,主要介绍一种轻量级的同步主网数据的方法。

2.3.1下载主网快照包

https://eosnode.tools/snapshots地址下载合适的快照包, 手动下载或wget $(wget --quiet "https://eosnode.tools/api/snapshots?limit=1" -O- | jq -r '.data[0].s3') -O snapshot.tar.gz

2.3.2解压到snapshot目录(默认目录为~/data/snapshots),路径可以在config.ini中自己修改snapshots-dir参数的值;

解压命令tar -zxvf snapshots.tar.gz -C /home/eos/mainnet/data

2.3.3删除data文件下的state和blocks目录 rm -rf state rm -rf blocks 2.3.4最后在nodeos启动时添加--snapshots-dir +snapshots的路径(/home/eos/lsf1/data/snapshots)即可。

共收到 2 条回复
Surou 将本帖设为了精华贴 12月25日 09:56

白同学,分享的很详细。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册