code: func NewDialer(p peer.ID, pk ci.PrivKey, wrap ConnWrapper) *Dialer {
  	return &Dialer{
  		LocalPeer:  p,
  		PrivateKey: pk,
  		Wrapper:    wrap,
  		fallback:   new(transport.FallbackDialer),
  	}
  }
docs: // NewDialer creates a new Dialer object.
  //
  // Before any calls to Dial are made, underlying dialers must be added
  // with AddDialer, and Protector (if any) must be set.