code: func ValidateBootstrapBlock(block *common.Block) error {
  	if block == nil {
  		return errors.New("nil block")
  	}
  
  	if block.Data == nil || len(block.Data.Data) == 0 {
  		return errors.New("empty block data")
  	}
  
  	firstTransaction := &common.Envelope{}
  	if err := proto.Unmarshal(block.Data.Data[0], firstTransaction); err != nil {
  		return errors.Wrap(err, "failed extracting envelope from block")
  	}
  
  	bundle, err := channelconfig.NewBundleFromEnvelope(firstTransaction)
  	if err != nil {
  		return err
  	}
  
  	_, exists := bundle.ConsortiumsConfig()
  	if !exists {
  		return errors.New("the block isn't a system channel block because it lacks ConsortiumsConfig")
  	}
  	return nil
  }
docs: // ValidateBootstrapBlock returns whether this block can be used as a bootstrap block.
  // A bootstrap block is a block of a system channel, and needs to have a ConsortiumsConfig.