From 22935aca7df26afaa19f5147b57d08259fdf7a05 Mon Sep 17 00:00:00 2001 From: ipqhjjybj <250657661@qq.com> Date: Thu, 12 Nov 2020 10:51:41 +0800 Subject: [PATCH] fix rollback (#543) Co-authored-by: Paladz --- protocol/block.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/protocol/block.go b/protocol/block.go index 862c01ae..ab690bac 100644 --- a/protocol/block.go +++ b/protocol/block.go @@ -224,15 +224,26 @@ func (c *Chain) Rollback(targetHeight uint64) error { } startSeq := state.CalcVoteSeq(c.bestBlockHeader.Height) - if err = c.setState(targetBlockHeader, setIrrBlockHeader, nil, utxoView, []*state.ConsensusResult{consensusResult.Fork()}); err != nil { return err } for _, block := range deletedBlocks { - if err := c.store.DeleteBlock(block); err != nil { + hashes, err := c.store.GetBlockHashesByHeight(block.Height) + if err != nil{ return err } + + for _, hash := range hashes{ + block, err := c.store.GetBlock(hash) + if err != nil{ + return err + } + + if err := c.store.DeleteBlock(block); err != nil{ + return err + } + } } endSeq := state.CalcVoteSeq(targetHeight) -- 2.11.0