code: func (sm *SyncManager) shouldDCStalledSyncPeer() bool {
  	lastBlock := sm.syncPeer.LastBlock()
  	startHeight := sm.syncPeer.StartingHeight()
  
  	var peerHeight int32
  	if lastBlock > startHeight {
  		peerHeight = lastBlock
  	} else {
  		peerHeight = startHeight
  	}
  
  	// If we've stalled out yet the sync peer reports having more blocks for
  	// us we will disconnect them. This allows us at tip to not disconnect
  	// peers when we are equal or they temporarily lag behind us.
  	best := sm.chain.BestSnapshot()
  	return peerHeight > best.Height
  }
docs: // shouldDCStalledSyncPeer determines whether or not we should disconnect a
  // stalled sync peer. If the peer has stalled and its reported height is greater
  // than our own best height, we will disconnect it. Otherwise, we will keep the
  // peer connected in case we are already at tip.