安装
Ubuntu用户可以选择在线安装的方式,在终端中依次执行以下命令即可:
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum
安装完成后执行 geth help 查看geth的用法。
同步的几种方式
Full同步
geth --syncmode "full"
- 获取区块的header
- 获取区块的body
- 从创始块开始校验没一个元素
PS:下载所有区块数据信息
Fast同步
geth --syncmode "fast"
- 获取区块的header
- 获取区块的body
在同步到当前块之前不处理任何事务,然后获得一个快照,像full节点一样进行后面的同步操作。沿着区块下载最近数据库中的交易,有可能丢失历史数据。比如,你的账户地址A上面有10个ETH,但转入的的交易存在于较老的历史交易中,此同步模式无法获取到交易的详细情况。
使用此模式时注意需要设置–cache,默认16M,建议设置为1G(1024)到2G(2048)。
Ligth同步
geth --syncmode "light"
仅获取当前状态。验证元素需要向full节点发起相应的请求。
疑问
具体同步的到底是什么?比如light模式,就把world state和当前区块同步下来?有空慢慢研究
light同步的只是区块头
开启本地RPC端口
# light模式同步区块并开启RCP:rpcaddr:rpcport
geth --rpc --rpcaddr localhost --rpcport "8545" --syncmode "light"
获取与RCP相关的命令
geth --help | grep rpc
--rpc Enable the HTTP-RPC server --rpcaddr "127.0.0.1" HTTP-RPC server listening interface --rpcport "8545" HTTP-RPC server listening port --rpcapi "db,eth,net,web3" API's offered over the HTTP-RPC interface --rpccorsdomain Domains from which to accept cross origin requests (browser enforced)