code: func (b *blockManager) Start() {
  	// Already started?
  	if atomic.AddInt32(&b.started, 1) != 1 {
  		return
  	}
  
  	log.Trace("Starting block manager")
  	b.wg.Add(2)
  	go b.blockHandler()
  	go func() {
  		defer b.wg.Done()
  
  		log.Debug("Waiting for peer connection...")
  
  		// Before starting the cfHandler we want to make sure we are
  		// connected with at least one peer.
  		select {
  		case <-b.firstPeerSignal:
  		case <-b.quit:
  			return
  		}
  
  		log.Debug("Peer connected, starting cfHandler.")
  		b.cfHandler()
  	}()
  }
docs: // Start begins the core block handler which processes block and inv messages.