private synchronized CompletableFuture<RemoteService> discoverService(final String serviceType) {
    return recognizedServices.get(serviceType);
  }
Returns a CompletableFuture that will wait for the given service type to be discovered. No new
query will be performed, and if the service has already been discovered, the future will
complete in the very near future.

@param serviceType is the service type to wait to be discovered.
@return future that will return the desired service once it is discovered, or null if the
    future is cancelled.
nat/src/main/java/org/hyperledger/besu/nat/upnp/UpnpNatManager.java