> w3.eth.syncing
AttributeDict({
'currentBlock': 5787386,
'highestBlock': 5787491,
'knownStates': 138355583,
'pulledStates': 138341120,
'startingBlock': 5787335,
})
> w3.eth.blockNumber
0
我完成了同步,但是blocknumber始终为0。
答案 0 :(得分:0)
这与Why is my ether balance 0 in geth, even though the sync is nearly complete?的情况相同,但症状略有不同"。
引用重要的一点:
geth --fast
有一个有趣的效果:在同步完全完成之前,geth无法提供有关帐户或合同的任何信息。在eth.syncing返回false后再次尝试查询余额。
请注意,除了帐户和合同之外,在同步完成之前,您也无法检索有关块的任何信息。
当您的同步完全完成后,syncing
将返回false,例如:
> w3.eth.syncing
False
答案 1 :(得分:0)
首席geth开发人员Peter在这里Block number is always zero with fast syncmode发表了对该问题的详尽答复。要为雕刻师的答案添加更多颜色,虽然您可能已经收到了最新的块标题(eth.currentBlock
),但您的节点可能仍有许多工作要做,可以下载整个状态树。引用彼得:
许多人错误地认为,因为他们有积木,所以他们 同步中。不幸的是,事实并非如此,因为没有交易 已执行,因此我们没有任何可用的帐户状态(即余额, 随机数,智能合约代码和数据)。这些需要下载 单独进行交叉检查,并与最新的块进行交叉检查。这个阶段是 称为状态Trie下载,它实际上与 块下载; las,如今花费的时间比 下载块