aboutsummaryrefslogtreecommitdiff
path: root/src/policy
diff options
context:
space:
mode:
authorAlex Morcos <morcos@chaincode.com>2017-03-02 10:08:25 -0500
committerAlex Morcos <morcos@chaincode.com>2017-05-10 11:45:26 -0400
commit1ba43cc0ecaffcb6389dbbb6bcf038e78cf04023 (patch)
tree796977bf2f41e53fbe45b588151709fb47123fc7 /src/policy
parentd3e30bca1bfa9900bc31fec957bb001115acac7b (diff)
downloadbitcoin-1ba43cc0ecaffcb6389dbbb6bcf038e78cf04023.tar.xz
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.
Diffstat (limited to 'src/policy')
-rw-r--r--src/policy/fees.cpp8
-rw-r--r--src/policy/fees.h4
2 files changed, 5 insertions, 7 deletions
diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp
index 0e9fb4dfea..03a0df4610 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 0df40df42a..c5955d7b04 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