diff options
| author | Wladimir J. van der Laan <[email protected]> | 2016-03-21 18:02:47 +0100 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2016-03-21 18:02:58 +0100 |
| commit | c946a15075ba5a2da74a08bb5575391541196475 (patch) | |
| tree | 66efd73dc16ec1cd8a7a5515dfe1cde9fd49284d /src/policy/fees.cpp | |
| parent | Merge #7692: Remove p2p alert system (diff) | |
| parent | modify release-notes.md and bips.md (diff) | |
| download | discoin-c946a15075ba5a2da74a08bb5575391541196475.tar.xz discoin-c946a15075ba5a2da74a08bb5575391541196475.zip | |
Merge #7542: Implement "feefilter" P2P message
0371797 modify release-notes.md and bips.md (Alex Morcos)
b536a6f Add p2p test for feefilter (Alex Morcos)
5fa66e4 Create SingleNodeConnCB class for RPC tests (Alex Morcos)
9e072a6 Implement "feefilter" P2P message. (Alex Morcos)
Diffstat (limited to 'src/policy/fees.cpp')
| -rw-r--r-- | src/policy/fees.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp index de3c060d6..7b0e8b7d0 100644 --- a/src/policy/fees.cpp +++ b/src/policy/fees.cpp @@ -8,6 +8,7 @@ #include "amount.h" #include "primitives/transaction.h" +#include "random.h" #include "streams.h" #include "txmempool.h" #include "util.h" @@ -580,3 +581,21 @@ void CBlockPolicyEstimator::Read(CAutoFile& filein) priStats.Read(filein); nBestSeenHeight = nFileBestSeenHeight; } + +FeeFilterRounder::FeeFilterRounder(const CFeeRate& minIncrementalFee) +{ + CAmount minFeeLimit = minIncrementalFee.GetFeePerK() / 2; + feeset.insert(0); + for (double bucketBoundary = minFeeLimit; bucketBoundary <= MAX_FEERATE; bucketBoundary *= FEE_SPACING) { + feeset.insert(bucketBoundary); + } +} + +CAmount FeeFilterRounder::round(CAmount currentMinFee) +{ + std::set<double>::iterator it = feeset.lower_bound(currentMinFee); + if ((it != feeset.begin() && insecure_rand() % 3 != 0) || it == feeset.end()) { + it--; + } + return *it; +} |