code: func (t *Transport) UpdatePeer(id uint64, addr string) error {
  	t.mu.Lock()
  	defer t.mu.Unlock()
  
  	if t.stopped {
  		return errors.New("transport stopped")
  	}
  	p, ok := t.peers[id]
  	if !ok {
  		return ErrIsNotFound
  	}
  	if err := p.update(addr); err != nil {
  		return err
  	}
  	log.G(t.ctx).Debugf("peer %x updated to address %s", id, addr)
  	return nil
  }
docs: // UpdatePeer updates peer with new address. It replaces connection immediately.