From f559daac4ed1c44550cc400e2a4f56c212a12571 Mon Sep 17 00:00:00 2001 From: Chris Kleeschulte Date: Tue, 7 Feb 2017 16:15:49 -0500 Subject: [PATCH] wip --- lib/services/db/sync.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/services/db/sync.js b/lib/services/db/sync.js index 02d34198..a8a31f98 100644 --- a/lib/services/db/sync.js +++ b/lib/services/db/sync.js @@ -8,7 +8,6 @@ var async = require('async'); var bitcore = require('bitcore-lib'); var BufferUtil = bitcore.util.buffer; var ProgressBar = require('progress'); -var utils = require('../../utils.js'); var green = '\u001b[42m \u001b[0m'; var red = '\u001b[41m \u001b[0m'; @@ -66,6 +65,7 @@ function Sync(node, db) { this.syncing = false; this.highWaterMark = 100; this.progressBar = null; + this.lastReportedBlock = 0; } inherits(Sync, EventEmitter); @@ -78,16 +78,27 @@ Sync.prototype.initialSync = function() { return; } - self.progressBar = new ProgressBar('[:bar] :percent processed: :current blocks/sec: :blockspersec', { + self.lastReportedBlock = self.db.tip.__height; + self.progressBar = new ProgressBar('[:bar] :percent :current blks, :blockspersec blks/sec, :elapsed secs', { complete: green, incomplete: red, - total: self.node.services.bitcoind.height + total: self.node.services.bitcoind.height, + clear: true }); - console.log('starting at tip: ', self.db.tip.__height); self.progressBar.tick(self.db.tip.__height, { - blockspersec: 0.0000 + blockspersec: 0 }); + + var timer = setInterval(function () { + var tick = self.db.tip.__height - self.lastReportedBlock; + self.progressBar.tick(tick, { blockspersec: tick }); + self.lastReportedBlock = self.db.tip.__height; + if (self.progressBar.complete) { + clearInterval(timer); + } + }, 1000); + self.syncing = true; self.blockStream = new BlockStream(self.highWaterMark, self.node.services.bitcoind, self.db.tip.__height); @@ -275,10 +286,6 @@ ProcessSerial.prototype._process = function(block, callback) { self.db.tip = block; self.db.emit('addblock'); - self.progressBar.tick(1, { - blockspersec: (1 / utils.diffTime(self.processBlockStartTime)).toFixed(4) - }); - callback(); }); });