code: function fetchDelta(params, callback) {
    if(!params.limit) params.limit = 100;
  
    blnApi.nodeDelta(params, (err, data) => {
      if(err) return callback(err);
  
      logger.info('Got remote delta', data);
  
      if(data.reset === true && params.cursor) {
        //only reset if it is not the intial delta without cursor
        throw new blnApiError('Got delta reset', 'BLN_API_DELTA_RESET');
      }
  
      async.parallel([
        (cb) => {
          if(data.has_more === false) return cb(null, data.cursor);
  
          //recursively fetch delte if there are further pages
          process.nextTick(() => {
            Object.assign(params, {cursor: data.cursor});
            fetchDelta(params, cb);
          });
        },
        (cb) => {
          groupDelta(data.nodes, cb);
        }
      ], (err, results) => {
        if(err) return callback(err);
  
        return callback(null, results[0]);
      });
    });
  }
docs: fetches the delta from the server,
  if there are multiple `pages` the api is called recursively until there is no further page
  The results are grouped by node id.
  @see groupedDelta
  
  @param {Object} params - parameters to pass to the api endpoint
  @param {Function} callback - callback function
  @returns {void} - no return value