Merge pull request #5481
6484930
Apply AreSane() checks to the fees from the network. (Gregory Maxwell)
This commit is contained in:
commit
055f3ae9aa
@ -91,22 +91,32 @@ public:
|
||||
* Used as belt-and-suspenders check when reading to detect
|
||||
* file corruption
|
||||
*/
|
||||
bool AreSane(const std::vector<CFeeRate>& vecFee, const CFeeRate& minRelayFee)
|
||||
{
|
||||
BOOST_FOREACH(CFeeRate fee, vecFee)
|
||||
static bool AreSane(const CFeeRate fee, const CFeeRate& minRelayFee)
|
||||
{
|
||||
if (fee < CFeeRate(0))
|
||||
return false;
|
||||
if (fee.GetFeePerK() > minRelayFee.GetFeePerK() * 10000)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
static bool AreSane(const std::vector<CFeeRate>& vecFee, const CFeeRate& minRelayFee)
|
||||
{
|
||||
BOOST_FOREACH(CFeeRate fee, vecFee)
|
||||
{
|
||||
if (!AreSane(fee, minRelayFee))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool AreSane(const std::vector<double> vecPriority)
|
||||
static bool AreSane(const double priority)
|
||||
{
|
||||
return priority >= 0;
|
||||
}
|
||||
static bool AreSane(const std::vector<double> vecPriority)
|
||||
{
|
||||
BOOST_FOREACH(double priority, vecPriority)
|
||||
{
|
||||
if (priority < 0)
|
||||
if (!AreSane(priority))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -167,12 +177,12 @@ private:
|
||||
bool sufficientFee = (feeRate > minRelayFee);
|
||||
bool sufficientPriority = AllowFree(dPriority);
|
||||
const char* assignedTo = "unassigned";
|
||||
if (sufficientFee && !sufficientPriority)
|
||||
if (sufficientFee && !sufficientPriority && CBlockAverage::AreSane(feeRate, minRelayFee))
|
||||
{
|
||||
history[nBlocksTruncated].RecordFee(feeRate);
|
||||
assignedTo = "fee";
|
||||
}
|
||||
else if (sufficientPriority && !sufficientFee)
|
||||
else if (sufficientPriority && !sufficientFee && CBlockAverage::AreSane(dPriority))
|
||||
{
|
||||
history[nBlocksTruncated].RecordPriority(dPriority);
|
||||
assignedTo = "priority";
|
||||
|
Loading…
Reference in New Issue
Block a user