src/kad/bucket.js
function Bucket (index, routingTable) {
  if (!(this instanceof Bucket)) {
    return new Bucket()
  }
  assert(_.isNumber(index) && index >= 0 && index <= constants.B)
  this.index = index
  this.contacts = []
  this._cache = {}
  this._routingTable = routingTable
}
function Bucket (index, routingTable) {
  if (!(this instanceof Bucket)) {
    return new Bucket()
  }
  assert(_.isNumber(index) && index >= 0 && index <= constants.B)
  this.index = index
  this.contacts = []
  this._cache = {}
  this._routingTable = routingTable
}
A bucket is a "column" of the routing table. It is an array-like object that
holds {@link Contact}s.
@constructor