From 595196b5ec1c7a57d621544d42c271ef9c3c0f34 Mon Sep 17 00:00:00 2001
From: SChernykh <sergey.v.chernykh@gmail.com>
Date: Fri, 20 Jan 2023 10:43:18 +0100
Subject: [PATCH] Reduced transaction time-to-include delay

Based on data from https://rucknium.me/posts/monero-pool-transaction-delay/
> 95 percent all transactions arrived at all five Monero nodes within a five-second interval.
---
 src/block_template.cpp | 4 ++--
 src/p2p_server.cpp     | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/block_template.cpp b/src/block_template.cpp
index e31c402..4139196 100644
--- a/src/block_template.cpp
+++ b/src/block_template.cpp
@@ -325,7 +325,7 @@ void BlockTemplate::update(const MinerData& data, const Mempool& mempool, Wallet
 		parallel_run(uv_default_loop_checked(), Precalc(m_shares, m_poolBlockTemplate->m_txkeySec));
 	}
 
-	// Only choose transactions that were received 10 or more seconds ago, or high fee (>= 0.006 XMR) transactions
+	// Only choose transactions that were received 5 or more seconds ago, or high fee (>= 0.006 XMR) transactions
 	size_t total_mempool_transactions;
 	{
 		m_mempoolTxs.clear();
@@ -337,7 +337,7 @@ void BlockTemplate::update(const MinerData& data, const Mempool& mempool, Wallet
 		const uint64_t cur_time = seconds_since_epoch();
 
 		for (auto& it : mempool.m_transactions) {
-			if ((cur_time >= it.second.time_received + 10) || (it.second.fee >= HIGH_FEE_VALUE)) {
+			if ((cur_time > it.second.time_received + 5) || (it.second.fee >= HIGH_FEE_VALUE)) {
 				m_mempoolTxs.emplace_back(it.second);
 			}
 		}
diff --git a/src/p2p_server.cpp b/src/p2p_server.cpp
index 4dea4e9..ca6e1b4 100644
--- a/src/p2p_server.cpp
+++ b/src/p2p_server.cpp
@@ -1162,9 +1162,9 @@ void P2PServer::check_block_template()
 		return;
 	}
 
-	// Force update block template every 30 seconds after the initial sync is done
-	if (seconds_since_epoch() >= m_pool->block_template().last_updated() + 30) {
-		LOGINFO(4, "block template is 30 seconds old, updating it");
+	// Force update block template every 20 seconds after the initial sync is done
+	if (seconds_since_epoch() >= m_pool->block_template().last_updated() + 20) {
+		LOGINFO(4, "block template is 20 seconds old, updating it");
 		m_pool->update_block_template_async();
 	}
 }