X-Git-Url: https://git.novaco.in/?p=electrum-server.git;a=blobdiff_plain;f=backends%2Fbitcoind%2Fblockchain_processor.py;fp=backends%2Fbitcoind%2Fblockchain_processor.py;h=7f65aa68aba05c2d38698560a1146a3e021b0861;hp=3d93fd89acc54c9c4e6b74ab1ba4f36e4dc0b77c;hb=c1bac19595bfadc2620216ce89255a6f68b20198;hpb=6196f3e206f2d0273a57075a1e085f133e17458b diff --git a/backends/bitcoind/blockchain_processor.py b/backends/bitcoind/blockchain_processor.py index 3d93fd8..7f65aa6 100644 --- a/backends/bitcoind/blockchain_processor.py +++ b/backends/bitcoind/blockchain_processor.py @@ -158,10 +158,17 @@ class BlockchainProcessor(Processor): try: while height < db_height: - height = height + 1 + height += 1 header = self.get_header(height) if height > 1: - assert prev_hash == header.get('prev_block_hash') + if prev_hash != header.get('prev_block_hash'): + # The prev_hash block is orphaned, go back + print_log("reorganizing, a block in file is orphaned:", prev_hash) + # Go to the parent of the orphaned block + height -= 2 + prev_hash = self.hash_header(self.read_header(height)) + continue + self.write_header(header, sync=False) prev_hash = self.hash_header(header) if (height % 1000) == 0: