以下是geth的控制台输出:
> eth.syncing
{
currentBlock: 3935087,
highestBlock: 3935168,
knownStates: 6020785,
pulledStates: 6015769,
startingBlock: 3935060
}
帐户地址为:0x374A7fd1A537646652bc79Ad76B5D4e737373372
TxHash:0x9797923f033a454aac25a7c324b7f37030ebc013cc4f80d85414016653d2e1ab
TxReceipt状态:Success
区块高度:3934618
(576区块确认)
时间戳记:2小时23分钟前(2019年2月26日02:32:42 AM + UTC)
来自:0x31b98d14007bdee637298086988a0bbd31184523To:0x374a7fd1a537646652bc79ad76b5d4e737373372
值:7.5 Ether
($ 0.00)
> eth.blockNumber
0
> eth.getBalance("0x374a7fd1a537646652bc79ad76b5d4e737373372")
0
现在我很困惑,因为葛斯已经同步到块“ 3935087”,但仍然无法获取写在块“ 3934618”中的状态。
答案 0 :(得分:1)
您的本地状态Trie很可能仍未同步。您必须考虑默认情况下,fast mode
中会调用Geth,因此,与其从创世块开始并重新执行区块链历史中的每个txs,它仅同步块头并将它们重组为一个链。
不幸的是,由于您没有重播区块链tx,所以状态树中包括的信息(例如随机数,余额等)将仍然不可用。一旦您将每个块头的节点下载为链接,它们将触发下一个阶段,该阶段将下载每个块中包含的tx并执行它们,以便还同步您的本地状态Trie。
如果您在以太坊主网上运行的时间可能会超过一周,而对于像Rinkeby这样的TestNet,则大约需要2-3天。
在我的团队Lightstreams中,我们正在努力实现内部以太坊兼容的区块链,其性能比官方的以太坊区块链快10倍,并且每笔交易的成本也要低得多,并确保其最终性。如果您想尝试一下,我们将很高兴为您提供服务。 our open-sourced repo