aleth icon indicating copy to clipboard operation
aleth copied to clipboard

Aleth syncing restarts due to receiving (suspected) ETC block header

Open halfalicious opened this issue 6 years ago • 6 comments

I'm seeing Aleth syncing repeatedly restart due to it receiving what I suspect to be an ETC block header for dao hard fork block + 1:

INFO  12-04 20:38:44 p2p  net    Looking for peers...
INFO  12-04 20:39:14 p2p  net    Active peer count: 4
INFO  12-04 20:39:14 p2p  net    Looking for peers...
INFO  12-04 20:39:44 p2p  net    Active peer count: 4
INFO  12-04 20:39:44 p2p  net    Looking for peers...
INFO  12-04 20:40:14 p2p  net    Active peer count: 4
INFO  12-04 20:40:14 p2p  net    Looking for peers...
WARN  12-04 20:40:33 p2p  sync   Unknown block header 1920001 #ab7668df… (Restart syncing with ##e31cc195…)
INFO  12-04 20:40:37 p2p  sync   Starting full sync
INFO  12-04 20:40:42 eth  client 221 blocks imported in 2184 ms (101.172 blocks/s) in #377441
INFO  12-04 20:40:44 p2p  net    Active peer count: 4
INFO  12-04 20:40:44 p2p  net    Looking for peers...
INFO  12-04 20:40:44 eth  client 198 blocks imported in 2211 ms (89.5138 blocks/s) in #377639
INFO  12-04 20:40:45 eth  client 93 blocks imported in 1308 ms (71.0578 blocks/s) in #377732
INFO  12-04 20:41:14 p2p  net    Active peer count: 4
INFO  12-04 20:41:14 p2p  net    Looking for peers...
INFO  12-04 20:41:44 p2p  net    Active peer count: 4
INFO  12-04 20:41:44 p2p  net    Looking for peers...
INFO  12-04 20:42:14 p2p  net    Active peer count: 4
INFO  12-04 20:42:14 p2p  net    Looking for peers...
INFO  12-04 20:42:44 p2p  net    Active peer count: 4
INFO  12-04 20:42:44 p2p  net    Looking for peers...
INFO  12-04 20:43:14 p2p  net    Active peer count: 4
INFO  12-04 20:43:14 p2p  net    Looking for peers...
INFO  12-04 20:43:44 p2p  net    Active peer count: 4
INFO  12-04 20:43:44 p2p  net    Looking for peers...
INFO  12-04 20:44:14 p2p  net    Active peer count: 5
INFO  12-04 20:44:14 p2p  net    Looking for peers...
INFO  12-04 20:44:44 p2p  net    Active peer count: 3
INFO  12-04 20:44:44 p2p  net    Looking for peers...
INFO  12-04 20:45:14 p2p  net    Active peer count: 4
INFO  12-04 20:45:14 p2p  net    Looking for peers...
INFO  12-04 20:45:45 p2p  net    Active peer count: 4
INFO  12-04 20:45:45 p2p  net    Looking for peers...
INFO  12-04 20:46:15 p2p  net    Active peer count: 4
INFO  12-04 20:46:15 p2p  net    Looking for peers...
INFO  12-04 20:46:45 p2p  net    Active peer count: 3
INFO  12-04 20:46:45 p2p  net    Looking for peers...
INFO  12-04 20:47:15 p2p  net    Active peer count: 4
INFO  12-04 20:47:15 p2p  net    Looking for peers...
INFO  12-04 20:47:45 p2p  net    Active peer count: 3
INFO  12-04 20:47:45 p2p  net    Looking for peers...
INFO  12-04 20:48:15 p2p  net    Active peer count: 4
INFO  12-04 20:48:15 p2p  net    Looking for peers...
INFO  12-04 20:48:45 p2p  net    Active peer count: 3
INFO  12-04 20:48:45 p2p  net    Looking for peers...
INFO  12-04 20:49:15 p2p  net    Active peer count: 3
INFO  12-04 20:49:15 p2p  net    Looking for peers...
INFO  12-04 20:49:45 p2p  net    Active peer count: 4
INFO  12-04 20:49:45 p2p  net    Looking for peers...
INFO  12-04 20:50:15 p2p  net    Active peer count: 3
INFO  12-04 20:50:15 p2p  net    Looking for peers...
INFO  12-04 20:50:45 p2p  net    Active peer count: 3
INFO  12-04 20:50:45 p2p  net    Looking for peers...
INFO  12-04 20:51:15 p2p  net    Active peer count: 4
INFO  12-04 20:51:15 p2p  net    Looking for peers...
INFO  12-04 20:51:45 p2p  net    Active peer count: 3
INFO  12-04 20:51:45 p2p  net    Looking for peers...
INFO  12-04 20:52:15 p2p  net    Active peer count: 3
INFO  12-04 20:52:15 p2p  net    Looking for peers...
WARN  12-04 20:52:19 p2p  sync   Unknown block header 1920001 #ab7668df… (Restart syncing with ##e31cc195…)
INFO  12-04 20:52:22 p2p  sync   Starting full sync
INFO  12-04 20:52:22 eth  client 2 blocks imported in 6 ms (322.165 blocks/s) in #377734
INFO  12-04 20:52:23 eth  client 83 blocks imported in 722 ms (114.939 blocks/s) in #377817
INFO  12-04 20:52:24 eth  client 92 blocks imported in 755 ms (121.838 blocks/s) in #377909
INFO  12-04 20:52:24 eth  client 15 blocks imported in 104 ms (143.901 blocks/s) in #377924
INFO  12-04 20:52:45 p2p  net    Active peer count: 3
INFO  12-04 20:52:45 p2p  net    Looking for peers...
INFO  12-04 20:53:16 p2p  net    Active peer count: 3
INFO  12-04 20:53:16 p2p  net    Looking for peers...
INFO  12-04 20:53:46 p2p  net    Active peer count: 4
INFO  12-04 20:53:46 p2p  net    Looking for peers...
INFO  12-04 20:54:16 p2p  net    Active peer count: 3
INFO  12-04 20:54:16 p2p  net    Looking for peers...
INFO  12-04 20:54:46 p2p  net    Active peer count: 3
INFO  12-04 20:54:46 p2p  net    Looking for peers...
INFO  12-04 20:55:16 p2p  net    Active peer count: 4
INFO  12-04 20:55:16 p2p  net    Looking for peers...
INFO  12-04 20:55:46 p2p  net    Active peer count: 3
INFO  12-04 20:55:46 p2p  net    Looking for peers...
INFO  12-04 20:56:16 p2p  net    Active peer count: 3
INFO  12-04 20:56:16 p2p  net    Looking for peers...
INFO  12-04 20:56:46 p2p  net    Active peer count: 3
INFO  12-04 20:56:46 p2p  net    Looking for peers...
INFO  12-04 20:57:16 p2p  net    Active peer count: 3
INFO  12-04 20:57:16 p2p  net    Looking for peers...
INFO  12-04 20:57:46 p2p  net    Active peer count: 3
INFO  12-04 20:57:46 p2p  net    Looking for peers...
INFO  12-04 20:58:16 p2p  net    Active peer count: 3
INFO  12-04 20:58:16 p2p  net    Looking for peers...
INFO  12-04 20:58:47 p2p  net    Active peer count: 3
INFO  12-04 20:58:47 p2p  net    Looking for peers...
INFO  12-04 20:59:17 p2p  net    Active peer count: 3
INFO  12-04 20:59:17 p2p  net    Looking for peers...
INFO  12-04 20:59:47 p2p  net    Active peer count: 3
INFO  12-04 20:59:47 p2p  net    Looking for peers...
INFO  12-04 21:00:17 p2p  net    Active peer count: 3
INFO  12-04 21:00:17 p2p  net    Looking for peers...
INFO  12-04 21:00:47 p2p  net    Active peer count: 3
INFO  12-04 21:00:47 p2p  net    Looking for peers...
INFO  12-04 21:01:17 p2p  net    Active peer count: 3
INFO  12-04 21:01:17 p2p  net    Looking for peers...
INFO  12-04 21:01:47 p2p  net    Active peer count: 3
INFO  12-04 21:01:47 p2p  net    Looking for peers...
INFO  12-04 21:02:18 p2p  net    Active peer count: 4
INFO  12-04 21:02:18 p2p  net    Looking for peers...
INFO  12-04 21:02:48 p2p  net    Active peer count: 3
INFO  12-04 21:02:48 p2p  net    Looking for peers...
INFO  12-04 21:03:18 p2p  net    Active peer count: 4
INFO  12-04 21:03:18 p2p  net    Looking for peers...
INFO  12-04 21:03:48 p2p  net    Active peer count: 3
INFO  12-04 21:03:48 p2p  net    Looking for peers...
INFO  12-04 21:04:18 p2p  net    Active peer count: 3
INFO  12-04 21:04:18 p2p  net    Looking for peers...
INFO  12-04 21:04:48 p2p  net    Active peer count: 3
INFO  12-04 21:04:48 p2p  net    Looking for peers...
WARN  12-04 21:04:51 p2p  sync   Unknown block header 1920001 #ab7668df… (Restart syncing with ##e31cc195…)
INFO  12-04 21:04:52 p2p  sync   Starting full sync
INFO  12-04 21:04:55 eth  client 102 blocks imported in 760 ms (134.08 blocks/s) in #378026

Here's where the header check is failing: https://github.com/ethereum/aleth/blob/d873d7363cae82113734afa671e026fed11905b2/libethereum/BlockChainSync.cpp#L528-L542

halfalicious avatar Dec 05 '19 05:12 halfalicious

This could be because we don't perform the dao hard fork check with a new peer until the latest block in our local chain is >= the dao hard fork block (1.92M): https://github.com/ethereum/aleth/blob/d873d7363cae82113734afa671e026fed11905b2/libethereum/BlockChainSync.cpp#L215-L220

halfalicious avatar Dec 05 '19 05:12 halfalicious

One way to fix this might be to initiate a dao hard fork test with a peer when we detect that the most recent block in our local chain is < the dao hard fork block and we're requesting a header from the peer which is >= the dao hard fork block.

Note that we request block headers from peers in BlockChainSync::requestBlocks: https://github.com/ethereum/aleth/blob/22bf7339583617692f30fa21d946b5845dca6b71/libethereum/BlockChainSync.cpp#L331-L386

halfalicious avatar Dec 08 '19 01:12 halfalicious

ETC bootnodes for testing: https://github.com/multi-geth/multi-geth/blob/864e5788786f198ef4d64d151766d10bab13a82d/params/bootnodes_classic.go#L20-L39

halfalicious avatar Dec 08 '19 06:12 halfalicious

Do I need to resynchronize the data for this hard fork(Muir Glacier ) from block 0?

wifi-ctrl avatar Jan 02 '20 02:01 wifi-ctrl

Do I need to resynchronize the data for this hard fork(Muir Glacier ) from block 0?

@halfalicious

wifi-ctrl avatar Jan 02 '20 02:01 wifi-ctrl

@wifi-ctrl None of the hard forks require a resync from genesis. Requiring a resync from genesis means that you’re on an entirely new chain.

halfalicious avatar Jan 04 '20 01:01 halfalicious