标签:strong lock mod ali aaa 运行 str help 使用
0x01 同步模式简介
安装好 geth 之后,运行 geth --help, 你就可以看到下面的命令行说明
... ETHEREUM OPTIONS: ... --syncmode "fast" Blockchain sync mode ("fast", "full", or "light") ... DEPRECATED OPTIONS: --fast Enable fast syncing through state downloads (replaced by --syncmode) --light Enable light client mode (replaced by --syncmode)
从这里我们可以看出什么呢?
当指定同步模式为 “fast” 时,以太坊节点会从网络同步所有的区块头,区块体以及状态数据,但不对区块中的交易进行重放,只会对区块中的数据进行校验。
当指定同步模式为"full"时,以太坊节点会从网络同步所有的区块头,区块体并重放区块中的交易以生成状态数据。
当指定同步模式为“light”时,以太坊节点仅从网络中同步所有区块头,不去同步区块体,也不去同步状态数据,仅在需要相应区块和状态数据时从网络上获取。
当不指定任何模式时,默认为 “fast” 模式。
0x02 为啥要提供三种模式
0x03 三种模式的安全性
毋庸置疑,全节点模式是最安全的,在这种模式下,所有区块和区块中的交易都会被逐一验证。
在 “fast” 这种数据同步模式下,比较靠近现在的区块和其中包含的交易也都会被逐一验证。但不会验证比较老的区块数据。
在 ”light“ 这种轻节点模式下,不会对区块和区块中的交易进行交易。但在需要处理特定区块相关交易或需要读取某个区块中相关的状态数据时,会通过区块头中的哈希值对区块和状态数据进行校验。
0x04 该用什么模式
自己搭节点,没有特别需求的话,使用默认的 ”fast“ 同步模式就好了。
如果要在树莓派等低配置设备中,可以使用 ”light“ 同步模式。使用”light“模式时,本地签名并发送交易一般没什么问题,但要获取区块数据或账户余额时,对网络情况就有更多的要求了。
如果特别注重安全性,并且想获取所有区块链历史数据,只能使用全节点模式了。
0x05 常见问题
问题: light 节点与 full 节点是如何交互的?
解答: 首先,light 节点会维护多个与
full 节点的 p2p 连接。然后,当 light 节点需要与 full 节点交互时,会将需要发送的请求放到一个请求队列中。light 节点会启动一个 goroutine 不断从请求队列里获取请求,然后从 p2p 节点列表里选一个当前最好用的节点,将请求发出去。请求得到的结果会发到本地数据库和缓存里。
0x06 结语
本文介绍了自己搭节点时需要注意的几种数据同步模式。其实很多 DApp,包括一些去中心化钱包,自己是不搭节点,而是依赖于第三方节点比如 Infura 的。
作者:Ashton
链接:https://www.jianshu.com/p/b31c208acaaa
来源:简书
标签:strong lock mod ali aaa 运行 str help 使用
原文地址:https://www.cnblogs.com/roisesuki-Blockchain/p/11985709.html