128

GETH1.8.20 TESTNET Ropsten 链本地同步区块最新高度低于官方显示最新高度,为什么?

c.jay · 于 发布 · 最后由 ajian1984回复 · 102 次阅读

首先,为了避免参数导致的错误,我的启动参数为官方所述:
https://github.com/ethereum/ropsten
geth --testnet removedb
geth --testnet --fast --bootnodes "enode://6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f@52.232.243.152:30303,enode://94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09@192.81.208.223:30303"

当然我还打开了geth的控制台为方便查询,最终启动参数
geth --testnet --fast --bootnodes enode://6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f@52.232.243.152:30303,enode://94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09@192.81.208.223:30303 --rpc --rpcapi admin,db,debug,eth,miner,net,personal,shh,txpool,web3 --rpcaddr 192.168.83.14 --maxpeers 100

同步完成:

eth.syncing
false
eth.blockNumber
4676823
最新高度为 4676823 ,此时去查询https://ropsten.etherscan.io/ 最新高度却为:Block 4744125
差了67302个块。但是本地确实已经同步到了最新

本地取接近最高高度区块:

eth.getBlock(4676700)
发现区块hash: "0x128764c8e7aa4f76346d6793a5926e35e63793fd2430695fb0f5d95505842b62"
而官网:
https://ropsten.etherscan.io/block/4676700
Hash:0x73ca71e0fc917f8e8461dc25992965c57c71e296eb49396e07fbde6fe5af971d

这根本就不是同一个hash,难道是两条不同的链。但是,如果查看比较早的区块信息,hash确实是一致的,那是从某个块开始我走到了分叉链上? 如果是这样,如何能够保证一致同步的是Ropsten链呢?
因为我要做测试的是POW链,因此也不要说这条链不行可切换其他链。
此问题已经困扰几天了,希望能在这里得到答案,谢谢!

  • 128
    ajian1984

    很可能是跑到了分叉链上,这问题只有时间能解决,因为 PoW 是概率性共识。就是继续运行,直到你的节点发现另一条分叉链。。当然你也可以手动连 etherscan 的节点。。