mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-12 04:42:36 -03:00
Sanity checks for estimates
Require at least 11 samples before giving fee/priority estimates. And have wallet-created transactions go throught the fee-sanity-check code path.
This commit is contained in:
parent
b33d1f5ee5
commit
4b7b1bb1ac
3 changed files with 10 additions and 5 deletions
|
@ -1129,10 +1129,10 @@ int CMerkleTx::GetBlocksToMaturity() const
|
|||
}
|
||||
|
||||
|
||||
bool CMerkleTx::AcceptToMemoryPool(bool fLimitFree)
|
||||
bool CMerkleTx::AcceptToMemoryPool(bool fLimitFree, bool fRejectInsaneFee)
|
||||
{
|
||||
CValidationState state;
|
||||
return ::AcceptToMemoryPool(mempool, state, *this, fLimitFree, NULL);
|
||||
return ::AcceptToMemoryPool(mempool, state, *this, fLimitFree, NULL, fRejectInsaneFee);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -452,7 +452,7 @@ public:
|
|||
int GetDepthInMainChain() const { CBlockIndex *pindexRet; return GetDepthInMainChain(pindexRet); }
|
||||
bool IsInMainChain() const { CBlockIndex *pindexRet; return GetDepthInMainChainINTERNAL(pindexRet) > 0; }
|
||||
int GetBlocksToMaturity() const;
|
||||
bool AcceptToMemoryPool(bool fLimitFree=true);
|
||||
bool AcceptToMemoryPool(bool fLimitFree=true, bool fRejectInsaneFee=true);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -251,8 +251,13 @@ public:
|
|||
std::sort(sortedFeeSamples.begin(), sortedFeeSamples.end(),
|
||||
std::greater<CFeeRate>());
|
||||
}
|
||||
if (sortedFeeSamples.size() == 0)
|
||||
if (sortedFeeSamples.size() < 11)
|
||||
{
|
||||
// Eleven is Gavin's Favorite Number
|
||||
// ... but we also take a maximum of 10 samples per block so eleven means
|
||||
// we're getting samples from at least two different blocks
|
||||
return CFeeRate(0);
|
||||
}
|
||||
|
||||
int nBucketSize = history.at(nBlocksToConfirm).FeeSamples();
|
||||
|
||||
|
@ -281,7 +286,7 @@ public:
|
|||
std::sort(sortedPrioritySamples.begin(), sortedPrioritySamples.end(),
|
||||
std::greater<double>());
|
||||
}
|
||||
if (sortedPrioritySamples.size() == 0)
|
||||
if (sortedPrioritySamples.size() < 11)
|
||||
return -1.0;
|
||||
|
||||
int nBucketSize = history.at(nBlocksToConfirm).PrioritySamples();
|
||||
|
|
Loading…
Reference in a new issue