From 1ba43cc0ecaffcb6389dbbb6bcf038e78cf04023 Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Thu, 2 Mar 2017 10:08:25 -0500 Subject: [PATCH] Make EstimateMedianVal smarter about small failures. Instead of stopping if it encounters a "sufficient" number of transactions which don't meet the threshold for being confirmed within the target, it keeps looking to add more transactions to see if there is a temporary blip in the data. This allows a smaller number of required data points. --- src/policy/fees.cpp | 8 +++----- src/policy/fees.h | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp index 0e9fb4dfe..03a0df461 100644 --- a/src/policy/fees.cpp +++ b/src/policy/fees.cpp @@ -231,11 +231,9 @@ double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal, double curPct = nConf / (totalNum + extraNum); // Check to see if we are no longer getting confirmed at the success rate - if (requireGreater && curPct < successBreakPoint) - break; - if (!requireGreater && curPct > successBreakPoint) - break; - + if ((requireGreater && curPct < successBreakPoint) || (!requireGreater && curPct > successBreakPoint)) { + continue; + } // Otherwise update the cumulative stats, and the bucket variables // and reset the counters else { diff --git a/src/policy/fees.h b/src/policy/fees.h index 0df40df42..c5955d7b0 100644 --- a/src/policy/fees.h +++ b/src/policy/fees.h @@ -88,8 +88,8 @@ private: static constexpr double SUCCESS_PCT = .85; static constexpr double DOUBLE_SUCCESS_PCT = .95; - /** Require an avg of 1 tx in the combined feerate bucket per block to have stat significance */ - static constexpr double SUFFICIENT_FEETXS = 1; + /** Require an avg of 0.1 tx in the combined feerate bucket per block to have stat significance */ + static constexpr double SUFFICIENT_FEETXS = 0.1; /** Minimum and Maximum values for tracking feerates * The MIN_BUCKET_FEERATE should just be set to the lowest reasonable feerate we