aboutsummaryrefslogtreecommitdiff
path: root/src/init.cpp
diff options
context:
space:
mode:
authorismaelsadeeq <ask4ismailsadiq@gmail.com>2023-06-08 13:14:11 +0100
committerfanquake <fanquake@gmail.com>2023-09-26 16:26:55 +0100
commit77979e0172d0bc86bfbc60f6a652e26c77722e29 (patch)
tree3abf15ae12cb092f518925c65da08aae6be96d09 /src/init.cpp
parent67b6d99aead0d1b2030bc3e88256d279477894b5 (diff)
tx fees, policy: periodically flush fee estimates to fee_estimates.dat
This reduces chances of having old estimates in fee_estimates.dat. Github-Pull: #27622 Rebased-From: 5b886f2b436eaa8c2b7de58dc4644dc6223040da
Diffstat (limited to 'src/init.cpp')
-rw-r--r--src/init.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/init.cpp b/src/init.cpp
index 25b40c6c6e..7fcd1fee2f 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -1253,7 +1253,13 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
assert(!node.fee_estimator);
// Don't initialize fee estimation with old data if we don't relay transactions,
// as they would never get updated.
- if (!ignores_incoming_txs) node.fee_estimator = std::make_unique<CBlockPolicyEstimator>(FeeestPath(args));
+ if (!ignores_incoming_txs) {
+ node.fee_estimator = std::make_unique<CBlockPolicyEstimator>(FeeestPath(args));
+
+ // Flush estimates to disk periodically
+ CBlockPolicyEstimator* fee_estimator = node.fee_estimator.get();
+ node.scheduler->scheduleEvery([fee_estimator] { fee_estimator->FlushFeeEstimates(); }, FEE_FLUSH_INTERVAL);
+ }
// sanitize comments per BIP-0014, format user agent and check total size
std::vector<std::string> uacomments;