Merge #9602: Remove coin age priority and free transactions - implementation
b421e6dUpdate example bitcoin.conf (Alex Morcos)7d4e950Allow setting minrelaytxfee to 0 (Alex Morcos)359e8a0[cleanup] Remove coin age priority completely. (Alex Morcos)f9b9371[rpc] Remove priorityDelta from prioritisetransaction (Alex Morcos)49be7e1[rpc] Remove priority information from mempool RPC calls (Alex Morcos)0315888[test] Remove priority from tests (Alex Morcos)f838005No longer allow "free" transactions (Alex Morcos)ad727f4[rpc] sendrawtransaction no longer bypasses minRelayTxFee (Alex Morcos)fe282ac[cleanup] Remove estimatePriority and estimateSmartPriority (Alex Morcos)400b151[debug] Change -printpriority option (Alex Morcos)272b25a[mining] Remove -blockprioritysize. (Alex Morcos)12839cd[rpc] Remove estimatepriority and estimatesmartpriority. (Alex Morcos)ddf58c7wallet: Remove sendfree (MarcoFalke) Tree-SHA512: a9a4499405923ce794ef18f9e334dbbd59dfc73a3dc2df6f85cc9c62af6f353ec2eed9c2d5e58e904f918d0d7ab738f403dd4939d9bc2276136864fe63710782
This commit is contained in:
+5
-47
@@ -29,18 +29,6 @@
|
||||
class CAutoFile;
|
||||
class CBlockIndex;
|
||||
|
||||
inline double AllowFreeThreshold()
|
||||
{
|
||||
return COIN * 144 / 250;
|
||||
}
|
||||
|
||||
inline bool AllowFree(double dPriority)
|
||||
{
|
||||
// Large (in bytes) low-priority (new, small-coin) transactions
|
||||
// need a fee.
|
||||
return dPriority > AllowFreeThreshold();
|
||||
}
|
||||
|
||||
/** Fake height value used in CCoins to signify they are only in the memory pool (since 0.8) */
|
||||
static const unsigned int MEMPOOL_HEIGHT = 0x7FFFFFFF;
|
||||
|
||||
@@ -84,12 +72,9 @@ private:
|
||||
CTransactionRef tx;
|
||||
CAmount nFee; //!< Cached to avoid expensive parent-transaction lookups
|
||||
size_t nTxWeight; //!< ... and avoid recomputing tx weight (also used for GetTxSize())
|
||||
size_t nModSize; //!< ... and modified size for priority
|
||||
size_t nUsageSize; //!< ... and total memory usage
|
||||
int64_t nTime; //!< Local time when entering the mempool
|
||||
double entryPriority; //!< Priority when entering the mempool
|
||||
unsigned int entryHeight; //!< Chain height when entering the mempool
|
||||
CAmount inChainInputValue; //!< Sum of all txin values that are already in blockchain
|
||||
bool spendsCoinbase; //!< keep track of transactions that spend a coinbase
|
||||
int64_t sigOpCost; //!< Total sigop cost
|
||||
int64_t feeDelta; //!< Used for determining the priority of the transaction for mining in a block
|
||||
@@ -112,19 +97,14 @@ private:
|
||||
|
||||
public:
|
||||
CTxMemPoolEntry(const CTransactionRef& _tx, const CAmount& _nFee,
|
||||
int64_t _nTime, double _entryPriority, unsigned int _entryHeight,
|
||||
CAmount _inChainInputValue, bool spendsCoinbase,
|
||||
int64_t _nTime, unsigned int _entryHeight,
|
||||
bool spendsCoinbase,
|
||||
int64_t nSigOpsCost, LockPoints lp);
|
||||
|
||||
CTxMemPoolEntry(const CTxMemPoolEntry& other);
|
||||
|
||||
const CTransaction& GetTx() const { return *this->tx; }
|
||||
CTransactionRef GetSharedTx() const { return this->tx; }
|
||||
/**
|
||||
* Fast calculation of lower bound of current priority as update
|
||||
* from entry priority. Only inputs that were originally in-chain will age.
|
||||
*/
|
||||
double GetPriority(unsigned int currentHeight) const;
|
||||
const CAmount& GetFee() const { return nFee; }
|
||||
size_t GetTxSize() const;
|
||||
size_t GetTxWeight() const { return nTxWeight; }
|
||||
@@ -512,7 +492,7 @@ private:
|
||||
|
||||
public:
|
||||
indirectmap<COutPoint, const CTransaction*> mapNextTx;
|
||||
std::map<uint256, std::pair<double, CAmount> > mapDeltas;
|
||||
std::map<uint256, CAmount> mapDeltas;
|
||||
|
||||
/** Create a new CTxMemPool.
|
||||
*/
|
||||
@@ -554,8 +534,8 @@ public:
|
||||
bool HasNoInputsOf(const CTransaction& tx) const;
|
||||
|
||||
/** Affect CreateNewBlock prioritisation of transactions */
|
||||
void PrioritiseTransaction(const uint256& hash, double dPriorityDelta, const CAmount& nFeeDelta);
|
||||
void ApplyDeltas(const uint256 hash, double &dPriorityDelta, CAmount &nFeeDelta) const;
|
||||
void PrioritiseTransaction(const uint256& hash, const CAmount& nFeeDelta);
|
||||
void ApplyDelta(const uint256 hash, CAmount &nFeeDelta) const;
|
||||
void ClearPrioritisation(const uint256 hash);
|
||||
|
||||
public:
|
||||
@@ -647,15 +627,6 @@ public:
|
||||
/** Estimate fee rate needed to get into the next nBlocks */
|
||||
CFeeRate estimateFee(int nBlocks) const;
|
||||
|
||||
/** Estimate priority needed to get into the next nBlocks
|
||||
* If no answer can be given at nBlocks, return an estimate
|
||||
* at the lowest number of blocks where one can be given
|
||||
*/
|
||||
double estimateSmartPriority(int nBlocks, int *answerFoundAtBlocks = NULL) const;
|
||||
|
||||
/** Estimate priority needed to get into the next nBlocks */
|
||||
double estimatePriority(int nBlocks) const;
|
||||
|
||||
/** Write/Read estimates to disk */
|
||||
bool WriteFeeEstimates(CAutoFile& fileout) const;
|
||||
bool ReadFeeEstimates(CAutoFile& filein);
|
||||
@@ -719,17 +690,4 @@ public:
|
||||
bool HaveCoins(const uint256 &txid) const;
|
||||
};
|
||||
|
||||
// We want to sort transactions by coin age priority
|
||||
typedef std::pair<double, CTxMemPool::txiter> TxCoinAgePriority;
|
||||
|
||||
struct TxCoinAgePriorityCompare
|
||||
{
|
||||
bool operator()(const TxCoinAgePriority& a, const TxCoinAgePriority& b)
|
||||
{
|
||||
if (a.first == b.first)
|
||||
return CompareTxMemPoolEntryByScore()(*(b.second), *(a.second)); //Reverse order to make sort less than
|
||||
return a.first < b.first;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // BITCOIN_TXMEMPOOL_H
|
||||
|
||||
Reference in New Issue
Block a user