X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=protocol%2Fblock.go;fp=protocol%2Fblock.go;h=c1dc2651fa9b8a281d04ab127216f912b79e193b;hp=d03497b52a97b6c072de1f273d337df77d15504b;hb=3bf61490e8df4a17777877b56176ce608f4ccc26;hpb=1ac37da4a879c053df6a5dce0442b52c3e491873 diff --git a/protocol/block.go b/protocol/block.go index d03497b5..c1dc2651 100644 --- a/protocol/block.go +++ b/protocol/block.go @@ -110,7 +110,7 @@ func (c *Chain) connectBlock(block *types.Block) (err error) { return err } - irrBlockHeader := c.bestIrrBlockHeader + irrBlockHeader := c.lastIrrBlockHeader if c.isIrreversible(&block.BlockHeader) && block.Height > irrBlockHeader.Height { irrBlockHeader = &block.BlockHeader } @@ -167,7 +167,7 @@ func (c *Chain) reorganizeChain(blockHeader *types.BlockHeader) error { log.WithFields(log.Fields{"module": logModule, "height": blockHeader.Height, "hash": blockHash.String()}).Debug("detach from mainchain") } - irrBlockHeader := c.bestIrrBlockHeader + irrBlockHeader := c.lastIrrBlockHeader for _, attachBlockHeader := range attachBlockHeaders { attachHash := attachBlockHeader.Hash() b, err := c.store.GetBlock(&attachHash) @@ -205,7 +205,9 @@ func (c *Chain) reorganizeChain(blockHeader *types.BlockHeader) error { log.WithFields(log.Fields{"module": logModule, "height": blockHeader.Height, "hash": blockHash.String()}).Debug("attach from mainchain") } - if len(detachBlockHeaders) > 0 && detachBlockHeaders[len(detachBlockHeaders)-1].Height <= c.bestIrrBlockHeader.Height && irrBlockHeader.Height <= c.bestIrrBlockHeader.Height { + if len(detachBlockHeaders) > 0 && + detachBlockHeaders[len(detachBlockHeaders)-1].Height <= c.lastIrrBlockHeader.Height && + irrBlockHeader.Height <= c.lastIrrBlockHeader.Height { return errors.New("rollback block below the height of irreversible block") } consensusResults = append(consensusResults, consensusResult.Fork())