Ethereum geth 同步区块的三种模式

Ethereum(以太坊)当前交易多,截止当前(2018-02-04)已经有5029238个区块,区块大小在150G左右。

如果全部同步,并且严格逐个验证,需要太多的时间和计算。作者曾经用一台实体机,8核,16GB内存,2TB机械硬盘的dell立式服务器,在办公网络下同步区块,结果半个月没有同步完,同步的速度还没有新出区块的速度快。。。。

查找了一下,以太坊有三种同步的模式,full, fast, light

  • full 模式,从开始到结束,获取区块的header,获取区块的body,从创始块开始校验每一个元素,需要下载所有区块数据信息。速度最慢,但是能获取到所有的历史数据。
//命令:
geth –syncmode full
  • fast模式,获取区块的header,获取区块的body,在同步到当前块之前不处理任何事务。下载的数据大小约为50GB(截止2018-02-04)。然后获得一个快照,此后,像full节点一样进行后面的同步操作。这种方法用得最多,目的在不要在意历史数据,将历史数据按照快照的方式,不逐一验证,沿着区块下载最近数据库中的交易,有可能丢失历史数据。此方法可能会对历史数据有部分丢失,但是不影响今后的使用。
//命令:
//使用此模式时注意需要设置–cache,默认16M,建议设置为1G(1024)到2G(2048)
geth –fast –cache 512
  • light模式,仅获取当前状态。验证元素需要向full节点发起相应的请求。
//命令:
geth –light

作者按照fast模式,在4核8G,SSD硬盘的云主机上,差不多2天时间就完成了以太坊区块的同步。

你可能感兴趣的:(Ethereum)