code: function VersionPacket(options) {
    if (!(this instanceof VersionPacket))
      return new VersionPacket(options);
  
    Packet.call(this);
  
    this.version = common.PROTOCOL_VERSION;
    this.services = common.LOCAL_SERVICES;
    this.time = util.now();
    this.remote = new NetAddress();
    this.local = new NetAddress();
    this.nonce = encoding.ZERO_U64;
    this.agent = common.USER_AGENT;
    this.height = 0;
    this.noRelay = false;
  
    if (options)
      this.fromOptions(options);
  }
docs: Version Packet
  @constructor
  @param {Object?} options
  @param {Number} options.version - Protocol version.
  @param {Number} options.services - Service bits.
  @param {Number} options.time - Timestamp of discovery.
  @param {NetAddress} options.local - Our address.
  @param {NetAddress} options.remote - Their address.
  @param {Buffer} options.nonce
  @param {String} options.agent - User agent string.
  @param {Number} options.height - Chain height.
  @param {Boolean} options.noRelay - Whether transactions
  should be relayed immediately.
  @property {Number} version - Protocol version.
  @property {Number} services - Service bits.
  @property {Number} time - Timestamp of discovery.
  @property {NetAddress} local - Our address.
  @property {NetAddress} remote - Their address.
  @property {Buffer} nonce
  @property {String} agent - User agent string.
  @property {Number} height - Chain height.
  @property {Boolean} noRelay - Whether transactions
  should be relayed immediately.