lib/messages/commands/version.js
function VersionMessage(arg, options) {
  /* jshint maxcomplexity: 10 */
  if (!arg) {
    arg = {};
  }
  Message.call(this, options);
  this.command = 'version';
  this.version = arg.version || options.protocolVersion;
  this.nonce = arg.nonce || utils.getNonce();
  this.services = arg.services || new BN(1, 10);
  this.timestamp = arg.timestamp || new Date();
  this.subversion = arg.subversion || '/axecore:' + packageInfo.version + '/';
  this.startHeight = arg.startHeight || 0;
  this.relay = arg.relay === false ? false : true;
}
function VersionMessage(arg, options) {
  /* jshint maxcomplexity: 10 */
  if (!arg) {
    arg = {};
  }
  Message.call(this, options);
  this.command = 'version';
  this.version = arg.version || options.protocolVersion;
  this.nonce = arg.nonce || utils.getNonce();
  this.services = arg.services || new BN(1, 10);
  this.timestamp = arg.timestamp || new Date();
  this.subversion = arg.subversion || '/axecore:' + packageInfo.version + '/';
  this.startHeight = arg.startHeight || 0;
  this.relay = arg.relay === false ? false : true;
}
function VersionMessage ( arg , options ) { /* jshint maxcomplexity: 10 */ if ( ! arg ) { arg = { } ; } Message . call ( this , options ) ; this . command = 'version' ; this . version = arg . version || options . protocolVersion ; this . nonce = arg . nonce || utils . getNonce ( ) ; this . services = arg . services || new BN ( 1 , 10 ) ; this . timestamp = arg . timestamp || new Date ( ) ; this . subversion = arg . subversion || '/axecore:' + packageInfo . version + '/' ; this . startHeight = arg . startHeight || 0 ; this . relay = arg . relay === false ? false : true ; }
The version message is used on connection creation to advertise
the type of node. The remote node will respond with its version, and no
communication is possible until both peers have exchanged their versions.

@see https://en.bitcoin.it/wiki/Protocol_documentation#version
@param {Object=} arg - properties for the version message
@param {Buffer=} arg.nonce - a random 8 byte buffer
@param {String=} arg.subversion - version of the client
@param {BN=} arg.services
@param {Date=} arg.timestamp
@param {Number=} arg.startHeight
@param {Object} options
@extends Message
@constructor
The version message is used on connection creation to advertise the type of node . The remote node will respond with its version and no communication is possible until both peers have exchanged their versions .