code: function AbstractBlock() {
    if (!(this instanceof AbstractBlock))
      return new AbstractBlock();
  
    this.version = 1;
    this.prevBlock = encoding.NULL_HASH;
    this.merkleRoot = encoding.NULL_HASH;
    this.time = 0;
    this.bits = 0;
    this.nonce = 0;
  
    this.mutable = false;
  
    this._hash = null;
    this._hhash = null;
  }
docs: The class which all block-like objects inherit from.
  @alias module:primitives.AbstractBlock
  @constructor
  @abstract
  @property {Number} version - Block version. Note
  that WMCC reads versions as unsigned despite
  them being signed on the protocol level. This
  number will never be negative.
  @property {Hash} prevBlock - Previous block hash.
  @property {Hash} merkleRoot - Merkle root hash.
  @property {Number} time - Timestamp.
  @property {Number} bits
  @property {Number} nonce