code: func NewIDService(ctx context.Context, h host.Host) *IDService {
  	s := &IDService{
  		Host:          h,
  		ctx:           ctx,
  		currid:        make(map[inet.Conn]chan struct{}),
  		observedAddrs: NewObservedAddrSet(ctx),
  	}
  	h.SetStreamHandler(ID, s.requestHandler)
  	h.SetStreamHandler(IDPush, s.pushHandler)
  	h.Network().Notify((*netNotifiee)(s))
  	return s
  }
docs: // NewIDService constructs a new *IDService and activates it by
  // attaching its stream handler to the given host.Host.