当使用命令行的Geth来同步以太坊区块链时,一个基本的问题就是如何查看Geth区块同步过程的状态,以便判断以太坊区块链的同步是否完成。本文将介绍如何检查Geth的区块同步状态。
如果希望快速掌握区块链应用的开发,推荐汇智网的 区块链应用开发系列教程, 内容涵盖比特币、以太坊、eos、超级账本fabric和tendermint等多种区块链, 以及 java、go、nodejs、python、php、dart等多种开发语言。
1、Geth启动参数
首先需要Geth启动时开启rpc api,因为我们需要使用rpc api调用来查看区块同步状态。
例如,可以采用如下的命令参数启动geth软件:
~$ geth --rpc --rpcapi web3,eth,net,personal
2、进入Geth控制台
另外开启一个终端,然后输入如下命令进入Geth控制台:
~$ geth attach http://localhost:8545
....
>
看到>
符号就进入了Geth控制台。
3、查看区块同步进度
在Geth控制台可以直接使用web3.js中的web3.eth.syncing属性来查看当前节点的区块同步进度。例如:
> eth.syncing
{
currentBlock: 4374446
highestBlock: 4374446
knownState: 1444
pulledState: 1443
startingBlock: 4374446
}
当curentBlock和highestBlock一致时,就表示区块同步成功了。