code: func (bc *BlockChain) BadBlocks() []*types.Block {
  	blocks := make([]*types.Block, 0, bc.badBlocks.Len())
  	for _, hash := range bc.badBlocks.Keys() {
  		if blk, exist := bc.badBlocks.Peek(hash); exist {
  			block := blk.(*types.Block)
  			blocks = append(blocks, block)
  		}
  	}
  	return blocks
  }
docs: // BadBlocks returns a list of the last 'bad blocks' that the client has seen on the network