pub(crate) async fn try_connect<F>(
    network: &Network,
    address: &str,
    override_port: Option<u16>,
    prefer_ipv6: bool,
    f: F
) -> Result<Participant, Error>
where F: Fn(SocketAddr) -> ConnectAddr,