code: function Limitation(options) {
      events.EventEmitter(this);
      this._options = options = options || {};
      if (options.interval === undefined) {
          options.interval = 10000;
      }
  
      // Local counters. Contain objects with `value` and `limits` properties.
      this._counters = {};
      this._blocks = {};
  
      this._end = false;
      this._globalUpdatesTimeout = null;
  
      if (!options.seeds || !options.seeds.length) {
          // Single-node operation
          this._store = new MemoryBackend(options);
      } else if (options.seeds && options.seeds.length) {
          this._store = new KadBackend(options);
      }
  }
docs: Limitation constructor
  
  @param {object} options:
  - `listen`: {object} describing the local interface to listen on. Default:
  `{ address: 'localhost', port: 3050 }`. If this port is used, a random
  port is used instead.
  - `seeds`: {[object]} describing seeds nodes, containing `port` and
  `address` string properties
  - `interval`: Update interval in ms. Default: 10000ms. Longer intervals
  reduce load, but also increase detection latency.
  - `minValue`: Drop global counters below this value. Default: 0.1.