From 2478795213ae1fcfabdc6449f2efa57414a859a6 Mon Sep 17 00:00:00 2001 From: Chris Kleeschulte Date: Wed, 25 Oct 2017 15:17:11 -0400 Subject: [PATCH] Disable mempool until system is synchronized. --- lib/services/block/index.js | 4 +++- lib/services/mempool/index.js | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/services/block/index.js b/lib/services/block/index.js index 2130825e..87f74f9d 100644 --- a/lib/services/block/index.js +++ b/lib/services/block/index.js @@ -30,11 +30,12 @@ var BlockService = function(options) { this._recentBlockHashesCount = options.recentBlockHashesCount || 50; // if you expect this chain to reorg deeper than 50, set this this._recentBlockHashes = new LRU(this._recentBlockHashesCount); this._readAheadBlockCount = options.readAheadBlockCount || 2; // this is the number of blocks to direct the p2p service to read aheead + this._mempool = this.node.services.mempool; }; inherits(BlockService, BaseService); -BlockService.dependencies = [ 'timestamp', 'p2p', 'db', 'header' ]; +BlockService.dependencies = [ 'timestamp', 'p2p', 'db', 'header', 'mempool' ]; // --- public prototype functions BlockService.prototype.getAPIMethods = function() { @@ -914,6 +915,7 @@ BlockService.prototype._onSynced = function() { self._initialSync = false; self._startBlockSubscription(); self._logSynced(self._tip.hash); + self._mempool.enable(); }; BlockService.prototype._startSync = function() { diff --git a/lib/services/mempool/index.js b/lib/services/mempool/index.js index 2fdb2183..68e1de35 100644 --- a/lib/services/mempool/index.js +++ b/lib/services/mempool/index.js @@ -13,6 +13,7 @@ var MempoolService = function(options) { this._p2p = this.node.services.p2p; this._network = this.node.network; this._flush = options.flush; + this._enabled = false; if (this._network === 'livenet') { this._network = 'main'; @@ -87,10 +88,14 @@ MempoolService.prototype._flushMempool = function(callback) { MempoolService.prototype.onReorg = function(args, callback) { - var oldBlockList = args[1]; - var removalOps = []; + if (!this._enabled) { + return callback(null, removalOps); + } + + var oldBlockList = args[1]; + for(var i = 0; i < oldBlockList.length; i++) { var block = oldBlockList[i]; @@ -139,12 +144,20 @@ MempoolService.prototype._startSubscriptions = function() { }; +MempoolService.prototype.enable = function() { + this._enabled = true; +}; + MempoolService.prototype.onBlock = function(block, callback) { // remove this block's txs from mempool var self = this; var ops = []; + if (!self._enabled) { + return callback(null, ops); + } + for(var i = 0; i < block.txs.length; i++) { var tx = block.txs[i];