code: func (h *Hive) Stop() error {
  	log.Info(fmt.Sprintf("%08x hive stopping, saving peers", h.BaseAddr()[:4]))
  	h.ticker.Stop()
  	if h.Store != nil {
  		if err := h.savePeers(); err != nil {
  			return fmt.Errorf("could not save peers to persistence store: %v", err)
  		}
  		if err := h.Store.Close(); err != nil {
  			return fmt.Errorf("could not close file handle to persistence store: %v", err)
  		}
  	}
  	log.Info(fmt.Sprintf("%08x hive stopped, dropping peers", h.BaseAddr()[:4]))
  	h.EachConn(nil, 255, func(p *Peer, _ int) bool {
  		log.Info(fmt.Sprintf("%08x dropping peer %08x", h.BaseAddr()[:4], p.Address()[:4]))
  		p.Drop(nil)
  		return true
  	})
  
  	log.Info(fmt.Sprintf("%08x all peers dropped", h.BaseAddr()[:4]))
  	return nil
  }
docs: // Stop terminates the updateloop and saves the peers