initStandaloneProcess() {
    let logQueue = [];

    // on every log logged in logger (say that 3x fast), send the log
    // to the IPC serve listening (only if we're connected of course)
    this.logger.events.on('log', (logLevel, message) => {
      if (this.ipc.connected) {
        this.ipc.request('blockchain:log', { logLevel, message });
      } else {
        logQueue.push({ logLevel, message });
      }
    });

    this.ipc = new IPC({ ipcRole: 'client' });

    // Wait for an IPC server to start (ie `embark run`) by polling `.connect()`.
    // Do not kill this interval as the IPC server may restart (ie restart
    // `embark run` without restarting `embark blockchain`)
    setInterval(() => {
      if (!this.ipc.connected) {
        this.ipc.connect(() => {
          if (this.ipc.connected) {
            logQueue.forEach(message => {
              this.ipc.request('blockchain:log', message);
            });
            logQueue = [];
            this.ipc.client.on('process:blockchain:stop', () => {
              this.kill();
              process.exit(0);
            });
          }
        });
      }
    }, IPC_CONNECT_INTERVAL);
  }
Polls for a connection to an IPC server (generally this is set up
in the Embark process). Once connected, any logs logged to the
Logger will be shipped off to the IPC server. In the case of `embark
run`, the BlockchainListener module is listening for these logs.

@returns {void}