https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L896
CAmount GetMinRelayFee(const CTransaction& tx, unsigned int nBytes, bool fAllowFree)
{
...
CAmount nMinFee = ::minRelayTxFee.GetFee(nBytes);
if (fAllowFree)
{
// There is a free transaction area in blocks created by most miners,
// * If we are relaying we allow transactions up to DEFAULT_BLOCK_PRIORITY_SIZE - 1000
// to be considered to fall into this category. We don't want to encourage sending
// multiple transactions instead of one big transaction to avoid fees.
if (nBytes < (DEFAULT_BLOCK_PRIORITY_SIZE - 1000))
nMinFee = 0;
}
That 1000 is a magic number, previously 10000 in versions prior to 0.8.6.
https://github.com/bitcoin/bitcoin/blob/master/src/wallet.h#L48
//! Largest (in bytes) free transaction we're willing to create
static const unsigned int MAX_FREE_TRANSACTION_CREATE_SIZE = 1000;
It has been equal to what is now defined as MAX_FREE_TRANSACTION_CREATE_SIZE for the creation of wallet transactions, but this constant can't be used directly by main.cpp because it isn't reliant on the wallet.
Should we unify it so isn't it is no longer an unexplained magic number or should we just eliminate the magic?