From 2dbeb076681e0041a6567c7ddf6b855e4b08c82c Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 25 Nov 2016 21:23:31 -0800 Subject: [PATCH] scripts: add heapdump script. --- scripts/dump.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 scripts/dump.js diff --git a/scripts/dump.js b/scripts/dump.js new file mode 100644 index 00000000..41a823dc --- /dev/null +++ b/scripts/dump.js @@ -0,0 +1,42 @@ +var fs = require('fs'); +var heapdump = require('heapdump'); + +var MempoolEntry = require('../lib/mempool/mempoolentry'); +var Coins = require('../lib/blockchain/coins'); +var TX = require('../lib/primitives/tx'); + +var SNAPSHOT = __dirname + '/../dump.heapsnapshot'; +var tx = parseTX('../test/data/tx4.hex'); + +function parseTX(file) { + var filename = __dirname + '/' + file; + var data = fs.readFileSync(filename, 'utf8'); + var parts = data.trim().split(/\n+/); + var hex = parts[0].trim(); + var tx = TX.fromRaw(hex, 'hex'); + var i, tx, coin; + + for (i = 1; i < parts.length; i++) { + hex = parts[i].trim(); + coin = TX.fromRaw(hex, 'hex'); + tx.fillCoins(coin); + } + + return tx; +} + +var coins = Coins.fromRaw(Coins.fromTX(tx).toRaw(), tx.hash('hex')); +var entry = MempoolEntry.fromTX(tx, 1000000); + +setInterval(function() { + console.log(tx.hash('hex')); + console.log(coins.hash); + console.log(entry.tx); +}, 60 * 1000) + +setImmediate(function() { + heapdump.writeSnapshot(SNAPSHOT, function(err) { + if (err) + throw err; + }); +});