以太坊,使用哪种同步模式,快速还是完整?
Ethereum, which syncmode to use, fast or full?
有geth
计划运行,提供--rpc
服务。
服务的作用:
- 同步块。
- 接受 rpc 请求以创建事务。
- 还有一个程序尝试读取新的区块,并找出与我们钱包地址相关的交易,并将数据同步到本地数据库(例如
mysql
)。
目前我们正在使用 full
模式,但它有点慢,并且占用更多磁盘 space。
问题
fast
模式是否足以满足上述用途?
- 哪个更好?
- 如果我们从
full
mdoe 切换到 fast
模式, geth
是否必须重新下载所有年份的历史记录?或者,它会重用历史?
(我在Ethereum
网站上问了另一个关于以太坊的问题,如果你有兴趣也可以看看:https://ethereum.stackexchange.com/questions/78293/how-to-migrate-geths-data)
完全同步 下载区块链的所有区块并重播曾经发生的所有交易。在这样做的同时,它存储交易收据并不断更新状态数据库。
快速同步 不重放事务。 fast sync pull request 中的这句话描述得很好(您还可以在那里找到更多信息)。
Instead of processing the entire block-chain one link at a time, and
replay all transactions that ever happened in history, fast syncing
downloads the transaction receipts along the blocks, and pulls an
entire recent state database.
请注意,它还会下载收据,以便查询历史数据。
快速模式是否足以满足上述用途?
快速同步仅用于初始获取区块链。快速同步过程结束后,您的节点就像一个完全同步的节点。由于快速同步节点还具有所有历史数据,因此适合您的用例。
哪个更好?
取决于。在全同步的情况下,你需要处理能力,而在另一种情况下,你需要带宽。
如果我们从full模式切换到fast模式,geth是否需要重新下载所有的
多年的历史?或者,它会重用历史?
出于安全原因,您无法切换已 运行 个节点的同步模式。
有geth
计划运行,提供--rpc
服务。
服务的作用:
- 同步块。
- 接受 rpc 请求以创建事务。
- 还有一个程序尝试读取新的区块,并找出与我们钱包地址相关的交易,并将数据同步到本地数据库(例如
mysql
)。
目前我们正在使用 full
模式,但它有点慢,并且占用更多磁盘 space。
问题
fast
模式是否足以满足上述用途?- 哪个更好?
- 如果我们从
full
mdoe 切换到fast
模式,geth
是否必须重新下载所有年份的历史记录?或者,它会重用历史?
(我在Ethereum
网站上问了另一个关于以太坊的问题,如果你有兴趣也可以看看:https://ethereum.stackexchange.com/questions/78293/how-to-migrate-geths-data)
完全同步 下载区块链的所有区块并重播曾经发生的所有交易。在这样做的同时,它存储交易收据并不断更新状态数据库。
快速同步 不重放事务。 fast sync pull request 中的这句话描述得很好(您还可以在那里找到更多信息)。
Instead of processing the entire block-chain one link at a time, and replay all transactions that ever happened in history, fast syncing downloads the transaction receipts along the blocks, and pulls an entire recent state database.
请注意,它还会下载收据,以便查询历史数据。
快速模式是否足以满足上述用途?
快速同步仅用于初始获取区块链。快速同步过程结束后,您的节点就像一个完全同步的节点。由于快速同步节点还具有所有历史数据,因此适合您的用例。
哪个更好?
取决于。在全同步的情况下,你需要处理能力,而在另一种情况下,你需要带宽。
如果我们从full模式切换到fast模式,geth是否需要重新下载所有的 多年的历史?或者,它会重用历史?
出于安全原因,您无法切换已 运行 个节点的同步模式。