以太坊,使用哪种同步模式,快速还是完整?

Eri*_*ang 1 blockchain ethereum go-ethereum geth

geth程序在运行,并提供--rpc服务。

服务做什么:

  • 同步块。
  • 接受 rpc 请求以创建事务。
  • 还有另一个程序尝试读取新块,并找出与我们钱包中的地址相关的交易,并将数据同步到本地数据库(例如mysql)。

目前我们正在使用full模式,但它有点慢,并且需要更多的磁盘空间。


问题

  • fast模式是否足以满足上述用途?
  • 哪个更好?
  • 如果我们从fullmdoe切换到fastmode,会geth不会要重新下载所有年的历史?或者,它会重用历史?

(我在Ethereum现场问了另一个关于以太坊的问题,有兴趣的也可以看看:https : //ethereum.stackexchange.com/questions/78293/how-to-migrate-geths-data )

ali*_*ras 5

完全同步下载区块链的所有块并重放曾经发生的所有交易。这样做时,它会存储交易收据并不断更新状态数据库。

快速同步不会重放事务。快速同步拉取请求中的这句话很好地描述了它(您也可以在那里找到其他信息)。

不是一次处理整个区块链一个链接,并重放历史上发生过的所有交易,快速同步沿着区块下载交易收据,并拉出整个最近的状态数据库。

请注意,它还下载收据,以便可以查询历史数据。


  • 快速模式是否足以满足上述使用?

    快速同步仅用于最初获取区块链。快速同步过程结束后,您的节点就像一个完全同步的节点。由于快速同步节点还拥有所有历史数据,因此它适合您的用例。

  • 哪个更好?

    取决于。在完全同步的情况下,您需要处理能力,而在其他情况下,您需要带宽。

  • 如果我们从完整模式切换到快速模式,geth 是否要重新下载所有年的历史?或者,它会重用历史?

    出于安全原因,您无法切换已运行节点的同步模式。