private void handleDisconnect(
      final PeerConnection peerConnection,
      final DisconnectReason reason,
      final boolean initiatedByPeer) {
    if (isNotABootnode(peerConnection)) {
      // if we just lost the last non bootnode
      if (--nonBootnodePeerConnections == 0) {
        permissioningUpdateSubscribers.forEach(Runnable::run);
      }
    }
  }
Creates the provider observing the provided p2p network

@param p2pNetwork the p2p network to observe
@param bootnodeEnodes the bootnodes that this node is configured to connect to
ethereum/permissioning/src/main/java/org/hyperledger/besu/ethereum/permissioning/node/InsufficientPeersPermissioningProvider.java