From 31ae382f755e26dd6c717f157efbaaa6f8c40b3a Mon Sep 17 00:00:00 2001 From: softsimon Date: Tue, 27 Jun 2023 18:46:28 +0200 Subject: [PATCH 1/4] Lowering mempool loop break limit --- backend/src/api/mempool.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 70635237f..e2dc09ada 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -156,7 +156,6 @@ class Mempool { } }; - let loggerTimer = new Date().getTime() / 1000; for (const txid of transactions) { if (!this.mempoolCache[txid]) { try { @@ -179,18 +178,19 @@ class Mempool { logger.debug(`Error finding transaction '${txid}' in the mempool: ` + (e instanceof Error ? e.message : e)); } } - const elapsedSeconds = Math.round((new Date().getTime() / 1000) - loggerTimer); - if (elapsedSeconds > 4) { + + if (new Date().getTime() - start > 5_000) { const progress = (currentMempoolSize + newTransactions.length) / transactions.length * 100; logger.debug(`Mempool is synchronizing. Processed ${newTransactions.length}/${diff} txs (${Math.round(progress)}%)`); - loadingIndicators.setProgress('mempool', progress); - loggerTimer = new Date().getTime() / 1000; - } - // Break and restart mempool loop if we spend too much time processing - // new transactions that may lead to falling behind on block height - if (this.inSync && (new Date().getTime()) - start > 10_000) { - logger.debug('Breaking mempool loop because the 10s time limit exceeded.'); - break; + + if (this.inSync) { + // Break and restart mempool loop if we spend too much time processing + // new transactions that may lead to falling behind on block height + logger.debug('Breaking mempool loop because the 5s time limit exceeded.'); + break; + } else { + loadingIndicators.setProgress('mempool', progress); + } } } From 1e83a99bae287dbfb26b664740108ded559d1de2 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 2 Jul 2023 18:10:02 +0200 Subject: [PATCH 2/4] Update backend/src/api/mempool.ts Co-authored-by: mononaut <83316221+mononaut@users.noreply.github.com> --- backend/src/api/mempool.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index e2dc09ada..1a6bce853 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -156,6 +156,7 @@ class Mempool { } }; + let intervalTimer = Date.now(); for (const txid of transactions) { if (!this.mempoolCache[txid]) { try { From 59713e21322dd97d548fcf6a26ecb709aa4e1085 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 2 Jul 2023 18:10:08 +0200 Subject: [PATCH 3/4] Update backend/src/api/mempool.ts Co-authored-by: mononaut <83316221+mononaut@users.noreply.github.com> --- backend/src/api/mempool.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 1a6bce853..4d47fa0c1 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -180,9 +180,7 @@ class Mempool { } } - if (new Date().getTime() - start > 5_000) { - const progress = (currentMempoolSize + newTransactions.length) / transactions.length * 100; - logger.debug(`Mempool is synchronizing. Processed ${newTransactions.length}/${diff} txs (${Math.round(progress)}%)`); + if (Date.now() - intervalTimer > 5_000) { if (this.inSync) { // Break and restart mempool loop if we spend too much time processing From a567a28c5cb8c82a1c42605f7580b7b2172d80d1 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 2 Jul 2023 18:10:14 +0200 Subject: [PATCH 4/4] Update backend/src/api/mempool.ts Co-authored-by: mononaut <83316221+mononaut@users.noreply.github.com> --- backend/src/api/mempool.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 4d47fa0c1..d237818b2 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -188,7 +188,10 @@ class Mempool { logger.debug('Breaking mempool loop because the 5s time limit exceeded.'); break; } else { + const progress = (currentMempoolSize + newTransactions.length) / transactions.length * 100; + logger.debug(`Mempool is synchronizing. Processed ${newTransactions.length}/${diff} txs (${Math.round(progress)}%)`); loadingIndicators.setProgress('mempool', progress); + intervalTimer = Date.now() } } }