class PeerManager implements ConnectionHandler {

  public SafeFuture<Peer> connect(final MultiaddrPeerAddress peer, final Network network) {
    return pendingConnections.computeIfAbsent(peer.getId(), __ -> doConnect(peer, network));
  }

  public  PeerManager(
      final MetricsSystem metricsSystem,
      final ReputationManager reputationManager,
      final List<PeerHandler> peerHandlers,
      final Map<RpcMethod, RpcHandler> rpcHandlers);

}