diff --git a/lib/services/header/index.js b/lib/services/header/index.js index bce9440b..5a586919 100644 --- a/lib/services/header/index.js +++ b/lib/services/header/index.js @@ -532,7 +532,9 @@ HeaderService.prototype._onHeadersSave = function(callback) { return callback(); } - clearInterval(self._syncCheckInterval); //SZ: clear the interval check as sync is completed + //SZ: clear the interval check as sync is completed + if(self._syncCheckInterval) + clearInterval(self._syncCheckInterval); self._endHeaderSubscription(); // we don't need headers any more self._startBlockSubscription(); // we need new blocks coming tu us aynchronuously @@ -714,13 +716,20 @@ HeaderService.prototype._startSync = function() { log.info('Header Service: Gathering: ' + numNeeded + ' ' + 'header(s) from the peer-to-peer network.'); //SZ: Adding interval check for sync with peer is responsive or not - self._syncUnresponsive = true; - self._syncCheckInterval = setInterval(() => { - if(self._syncUnresponsive) - self._sync(); - else //reset unresponsive as true - self._syncUnresponsive = true; - }, SYNC_CHECK_INTERVAL); + //(only if fcoin is started by flocore) + if(self._p2p._bcoin){ + self._syncUnresponsive = true; + self._syncCheckInterval = setInterval(() => { + //check the best height + if(self._bestHeight < self._p2p._bcoin._bcoin.pool.chain.height) + self._bestHeight = self._p2p._bcoin._bcoin.pool.chain.height; + //call sync again if unresponsive + if(self._syncUnresponsive) + self._sync(); + else //reset unresponsive as true + self._syncUnresponsive = true; + }, SYNC_CHECK_INTERVAL); + } return self._sync(); }