code: func (ps *peerSet) Unregister(id string) error {
  	ps.lock.Lock()
  	if p, ok := ps.peers[id]; !ok {
  		ps.lock.Unlock()
  		return errNotRegistered
  	} else {
  		delete(ps.peers, id)
  		peers := make([]peerSetNotify, len(ps.notifyList))
  		copy(peers, ps.notifyList)
  		ps.lock.Unlock()
  
  		for _, n := range peers {
  			n.unregisterPeer(p)
  		}
  
  		p.sendQueue.quit()
  		p.Peer.Disconnect(p2p.DiscUselessPeer)
  
  		return nil
  	}
  }
docs: // Unregister removes a remote peer from the active set, disabling any further
  // actions to/from that particular entity. It also initiates disconnection at the networking layer.