Settings.prototype.setLivenetDefaults = function () { this.network.type = 'livenet'; this.network.port = 8333; this.network.magicBytes = hex('f9beb4d9'); // List of bootstrapping mechanisms this.network.bootstrap = [ new DnsBootstrapper([ "bitseed.xf2.org", "dnsseed.bluematt.me", "seed.bitcoin.sipa.be", "dnsseed.bitcoin.dashjr.org", ]), new IrcBootstrapper('irc.lfnet.org', '#bitcoin') ]; this.network.genesisBlock = { 'height': 0, 'nonce': 2083236893, 'version': 1, 'hash': hex('6FE28C0AB6F1B372C1A6A246AE63F74F' + '931E8365E15A089C68D6190000000000'), 'prev_hash': new Buffer(32).clear(), 'timestamp': 1231006505, 'merkle_root': hex('3BA3EDFD7A7B12B27AC72C3E67768F61' + '7FC81BC3888A51323A9FB8AA4B1E5E4A'), 'bits': 486604799 }; this.network.genesisBlockTx = { 'outs': [{ 'v': hex('00F2052A01000000'), // 50 BTC 's': Binary.put() .word8(65) // 65 bytes of data follow .put(hex('04678AFDB0FE5548271967F1A67130B7105CD6A828E03909' + 'A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112' + 'DE5C384DF7BA0B8D578A4C702B6BF11D5F')) .word8(0xAC) // OP_CHECKSIG .buffer() }], 'lock_time': 0, 'version': 1, 'hash': hex('3BA3EDFD7A7B12B27AC72C3E67768F61' + '7FC81BC3888A51323A9FB8AA4B1E5E4A'), 'ins': [{ 'q': 0xFFFFFFFF, 'o': hex("000000000000000000000000000000000000" + "0000000000000000000000000000FFFFFFFF"), 's': Binary.put() .put(hex('04FFFF001D010445')) .put(new Buffer('The Times 03/Jan/2009 Chancellor on brink of ' + 'second bailout for banks', 'ascii')) .buffer() }] }; this.network.proofOfWorkLimit = hex("00000000FFFFFFFFFFFFFFFFFFFFFFFF" + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); this.network.checkpoints = checkpoints.livenet; };
Packet.prototype.toData = function() { if (!this._data) { return binary.put() .word16be(this._type) .word16be(0) .buffer(); } return binary.put() .word16be(this._type) .word16be(this._data.length) .put(this._data) .buffer(); }
Script.chunksToBuffer = function (chunks) { var buf = Put(); for (var i = 0, l = chunks.length; i < l; i++) { var data = chunks[i]; if (Buffer.isBuffer(data)) { if (data.length < OP_PUSHDATA1) { buf.word8(data.length); } else if (data.length <= 0xff) { buf.word8(OP_PUSHDATA1); buf.word8(data.length); } else if (data.length <= 0xffff) { buf.word8(OP_PUSHDATA2); buf.word16le(data.length); } else { buf.word8(OP_PUSHDATA4); buf.word32le(data.length); } buf.put(data); } else if ("number" === typeof data) { buf.word8(data); } else { throw new Error("Script.chunksToBuffer(): Invalid chunk datatype"); } } return buf.buffer(); };
Packet.createStartAppPacket = function(info) { var data = binary.put() .word32be(info.size) .buffer(); return new Packet(START_APP_TYPE, data); }
Peer.prototype.toBuffer = function() { var put = Binary.put(); put.word32le(this.lastSeen); put.word64le(this.services); put.put(this.getHostAsBuffer()); put.word16be(this.port); return put.buffer(); };
Script.prototype.writeOp = function (opcode) { var buf = Put(); buf.put(this.buffer); buf.word8(opcode); this.buffer = buf.buffer(); this.chunks.push(opcode); };
Block.method('getHeader', function () { put = Binary.put(); put.word32le(this.version); put.put(this.prev_hash); put.put(this.merkle_root); put.word32le(this.timestamp); put.word32le(this.bits); put.word32le(this.nonce); return put.buffer(); });
Script.prototype.writeBytes = function (data) { var buf = Put(); buf.put(this.buffer); if (data.length < OP_PUSHDATA1) { buf.word8(data.length); } else if (data.length <= 0xff) { buf.word8(OP_PUSHDATA1); buf.word8(data.length); } else if (data.length <= 0xffff) { buf.word8(OP_PUSHDATA2); buf.word16le(data.length); } else { buf.word8(OP_PUSHDATA4); buf.word32le(data.length); } buf.put(data); this.buffer = buf.buffer(); this.chunks.push(data); };
// 29812: a3d2c18acc First block to use merged mining with more than one auxiliary chain cfg.network.genesisBlock = { 'height': 0, 'nonce': 0xa21ea192, 'version': 1, 'hash': hex('70c7a9f0a2fb3d48e635a70d5b157c807e58c8fb45eb2c5e2cb7620000000000'), 'prev_hash': new Buffer(32).clear(), 'timestamp': 1303000001, 'merkle_root': hex('0dcbd3e6f061215bf3b3383c8ce2ec201bc65acde32595449ac86890bd2dc641'), 'bits': 0x1c007fff }; cfg.network.genesisBlockTx = { 'outs': [{ 'v': hex('00F2052A01'), // 50 BTC 's': Binary.put() .word8(65) // 65 bytes of data follow .put(hex('04b620369050cd899ffbbc4e8ee51e8c4534a855bb463439d63d235d4779685d8b6f4870a238cf365ac94fa13ef9a2a22cd99d0d5ee86dcabcafce36c7acf43ce5')) .word8(0xAC) // OP_CHECKSIG .buffer() }], 'lock_time': 0, 'version': 1, 'hash': hex('a6df68c2e882cc6406a477b90e58cd01d102032a8a5e9f49c5e17d44dbef8b5e'), 'ins': [{ 'q': hex('00F2052A01'), 'o': hex("000000000000000000000000000000000000" + "0000000000000000000000000000FFFFFFFF"), 's': Binary.put() .put(hex('04ff7f001c')) .put(hex('020a024b'))