@NotNull
  private CompletableFuture<PeerConnection> createPeerConnectionCompletableFuture(final Peer peer) {
    final CompletableFuture<PeerConnection> peerConnectionCompletableFuture =
        initiateOutboundConnection(peer);
    peerConnectionCompletableFuture.whenComplete(
        (peerConnection, throwable) -> {
          if (throwable == null) {
            dispatchConnect(peerConnection);
          }
        });
    return peerConnectionCompletableFuture;
  }
Connect to the peer

@param peer The peer to connect to
@return A future that will resolve to the existing or newly-established connection with this
    peer.
ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/rlpx/RlpxAgent.java