bitcoin-abc: Node won't sync after late upgrade (May 15th hardfork)
We did not upgrade our Bitcoin Cash node before the hardfork time, now after upgrading to 0.17.1 the wallet is no longer synching:
2018-05-16 08:07:47 ERROR: AcceptBlockHeader: block 0000000000000000011ada8bd08f46074f44a8f155396f43e38acf9501c49103 is marked invalid
2018-05-16 08:07:47 ERROR: invalid header received
2018-05-16 08:07:47 ProcessMessages(headers, 6562 bytes) FAILED peer=6
What should we do to re-sync with the network?
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 7
- Comments: 15 (5 by maintainers)
I tried it out by synching to the minority chain with a 0.16.2 client.
Then I did as follows to get onto the majority chain:
Invalidate a pre-fork block:
$ bitcoin-cli invalidateblock 000000000000000000434c281fb3ed692efea5af769aedb090b2b9f395b5386e
Stop the client:
$ bitcoin-cli stop
Upgrade to 0.17.1 and restart the daemon (not shown)
Reconsider the block I previously invalidated:
$ bitcoin-cli reconsiderblock 000000000000000000434c281fb3ed692efea5af769aedb090b2b9f395b5386e
I did not need to manually change my
peers.dat
orbanlist.dat
, but I didn’t leave much time for all my peers to become banned. It may be wise to delete those files (or move them out the way) before restarting the upgraded daemon.Great feedback by the developers here, what an amazing project!
We are having this as well. This error really signify a very poor prepared hard fork.
If you didn’t upgrade your node before the fork, the old version probably marked the first block using the new op codes as invalid, because the node fails to validate it. After upgrading the node the last version you can try using
./bitcoin-cli reconsiderblock 0000000000000000011ada8bd08f46074f44a8f155396f43e38acf9501c49103
to revalidate it using the new consensus rules.Generally, that applies with a network of nodes that use the same consensus rules.
But he wrote “We are having this as well” in response to OP’s issue. Meaning it is likely he didn’t upgrade on time either. He should post his log so we can see what happened. It’s likely that his node banned upgraded nodes. That way you stay on the minority fork if someone mines one.
This is how hard fork upgrades work.
If you miss upgrading before a fork happens, chances are that your pre-fork peers who are upgraded are no longer talking to you (at least for a while) because they banned you, and you have to take recovery steps such as rolling back and reconnecting to good peers after upgrading.
Glad it helped @got3nks , very sorry about the delay in answering and apologies for the inconvenience it caused yourself, @phuongnd08 and others. Thanks to @HostFat for bringing this report to my attention.
Top quality reply, @ftrader
@phuongnd08 : From the hash of the block above (0000000000000000012f7ed499fd8f51fa6b9ea0c1e35ed24d11b5bee8c8b0fe) you are on a minority fork chain that was briefly mined by some pools.
This chain was desribed in https://www.reddit.com/r/btc/comments/8ju0kd/info_rawpool_iswas_still_mining_on_the_old_chain/ and visible for some time in the block explorer https://www/bitfire.io/blocks . It seems to be a dead right now, and that block explorer has been updated to show the majority chain now.
You need to invalidate probably block 530356 and then reconsiderblock it while being connected to some good nodes (pick some others than your current peers, use cashnodes.io etc. to find some).
That should allow you to get back onto the majority chain.
EDIT: added Reddit link, updated link to bitfire.io to mention it no longer display minority chain
@ftrader that helped, thx a lot
Trying -reindex-chainstate atm. Hopefully this will fix this problem.
Hopefully when new block arrives it will trigger the downloading of these missing blocks in between.