core: never delete genesis block (#19617)

This commit is contained in:
gary rong 2019-05-27 17:05:45 +08:00 committed by Péter Szilágyi
parent 4e0c1a1a6b
commit 611113e967

View File

@ -1076,9 +1076,12 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [
// Wipe out canonical block data.
for _, block := range append(deleted, blockChain...) {
// Always keep genesis block in active database.
if block.NumberU64() != 0 {
rawdb.DeleteBlockWithoutNumber(batch, block.Hash(), block.NumberU64())
rawdb.DeleteCanonicalHash(batch, block.NumberU64())
}
}
if err := batch.Write(); err != nil {
return 0, err
}
@ -1086,10 +1089,13 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [
// Wipe out side chain too.
for _, block := range append(deleted, blockChain...) {
// Always keep genesis block in active database.
if block.NumberU64() != 0 {
for _, hash := range rawdb.ReadAllHashes(bc.db, block.NumberU64()) {
rawdb.DeleteBlock(batch, hash, block.NumberU64())
}
}
}
if err := batch.Write(); err != nil {
return 0, err
}