安装并同步geth并开启本地RPC端口8545

时间:2021-05-02 13:52:26

安装

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"
  1. 获取区块的header
  2. 获取区块的body
  3. 从创始块开始校验没一个元素
    PS:下载所有区块数据信息

Fast同步

geth --syncmode "fast"
  1. 获取区块的header
  2. 获取区块的body

在同步到当前块之前不处理任何事务,然后获得一个快照,像full节点一样进行后面的同步操作。沿着区块下载最近数据库中的交易,有可能丢失历史数据。比如,你的账户地址A上面有10个ETH,但转入的的交易存在于较老的历史交易中,此同步模式无法获取到交易的详细情况。

使用此模式时注意需要设置–cache,默认16M,建议设置为1G(1024)到2G(2048)。

Ligth同步

geth --syncmode "light"

仅获取当前状态。验证元素需要向full节点发起相应的请求。

疑问

具体同步的到底是什么?比如light模式,就把world state和当前区块同步下来?有空慢慢研究

light同步的只是区块头

安装并同步geth并开启本地RPC端口8545

开启本地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)