Remove CENT-output free transaction rule when relaying
Remove the (relay/mempool) rule that all outputs of free transactions must be greater than 0.01 XBT. Dust spam is now taken care of by making dusty outputs non-standard.
This commit is contained in:
parent
b16e9f02c8
commit
ea1cd5b47f
2 changed files with 8 additions and 5 deletions
|
@ -760,8 +760,10 @@ int64 GetMinFee(const CTransaction& tx, bool fAllowFree, enum GetMinFee_mode mod
|
|||
nMinFee = 0;
|
||||
}
|
||||
|
||||
// To limit dust spam, require base fee if any output is less than 0.01
|
||||
if (nMinFee < nBaseFee)
|
||||
// This code can be removed after enough miners have upgraded to version 0.9.
|
||||
// Until then, be safe when sending and require a fee if any output
|
||||
// is less than CENT:
|
||||
if (nMinFee < nBaseFee && mode == GMF_SEND)
|
||||
{
|
||||
BOOST_FOREACH(const CTxOut& txout, tx.vout)
|
||||
if (txout.nValue < CENT)
|
||||
|
|
|
@ -1232,9 +1232,10 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend,
|
|||
}
|
||||
|
||||
int64 nChange = nValueIn - nValue - nFeeRet;
|
||||
// if sub-cent change is required, the fee must be raised to at least nMinTxFee
|
||||
// or until nChange becomes zero
|
||||
// NOTE: this depends on the exact behaviour of GetMinFee
|
||||
// The following if statement should be removed once enough miners
|
||||
// have upgraded to the 0.9 GetMinFee() rules. Until then, this avoids
|
||||
// creating free transactions that have change outputs less than
|
||||
// CENT bitcoins.
|
||||
if (nFeeRet < CTransaction::nMinTxFee && nChange > 0 && nChange < CENT)
|
||||
{
|
||||
int64 nMoveToFee = min(nChange, CTransaction::nMinTxFee - nFeeRet);
|
||||
|
|
Loading…
Reference in a new issue