Is there an existing issue for this?
- I have searched the existing issues
Current behaviour
The bitcoind
process exits with the given log message. If I try to run again, the same message appears. I need to run bitcoind
with -reindex
(-reindex-chainstate
doesn’t work as block index is corrupted) to continue which takes alot of time and I had to do reindexing like 8 times before I was able to sync about 445,000 blocks. This only slows down my full sync as I download more and more blocks, my reindex times goes higher every time. It doesn’t make sense for me to sync this way. I did not have any unexpected power failures, unexptect bitcoind exits or anything as well. It just happens randomly out of nowhere.
Expected behaviour
Since this is happening while in the initial sync, this should be some corruption happened in the memory, or the block being received from the peer itself is corrupted.
Wouldn’t it be possible that we just discard that block, or maybe disconnect from that peer we got the corrupted block and continue syncing? Why it has to just exit the process with corrupted index on disk that has to be reindexed from scratch before any use. Is there anything fundamental that I’m missing here?
Steps to reproduce
- Clone the repo
- Checkout to
v28x
tag - Run
./autogen.sh && ./configure && make && make install
Relevant log output
ERROR: AcceptBlock: bad-txnmrklroot, hashMerkleRoot mismatch *** Corrupt block found indicating potential hardware failure; shutting down
How did you obtain Bitcoin Core
Compiled from source
What version of Bitcoin Core are you using?
v28.1.0rc1
Operating system and version
macOS Sequoia Version 15.1.1 (24B91)
Machine specifications
Apple M1 Pro
16GB Memory
Using an external Transcend 1TB SSD as datadir
.