Merge #10196 via branch 'prioritisetx_gbtcache-0.14' into 0.14.2_fixes
This commit is contained in:
commit
74653a41fe
|
@ -16,7 +16,7 @@ class PrioritiseTransactionTest(BitcoinTestFramework):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.setup_clean_chain = True
|
self.setup_clean_chain = True
|
||||||
self.num_nodes = 1
|
self.num_nodes = 2
|
||||||
|
|
||||||
self.txouts = gen_return_txouts()
|
self.txouts = gen_return_txouts()
|
||||||
|
|
||||||
|
@ -25,8 +25,11 @@ class PrioritiseTransactionTest(BitcoinTestFramework):
|
||||||
self.is_network_split = False
|
self.is_network_split = False
|
||||||
|
|
||||||
self.nodes.append(start_node(0, self.options.tmpdir, ["-debug", "-printpriority=1"]))
|
self.nodes.append(start_node(0, self.options.tmpdir, ["-debug", "-printpriority=1"]))
|
||||||
|
self.nodes.append(start_node(1, self.options.tmpdir, ["-debug", "-printpriority=1"]))
|
||||||
|
connect_nodes(self.nodes[0], 1)
|
||||||
self.relayfee = self.nodes[0].getnetworkinfo()['relayfee']
|
self.relayfee = self.nodes[0].getnetworkinfo()['relayfee']
|
||||||
|
|
||||||
|
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
utxo_count = 90
|
utxo_count = 90
|
||||||
utxos = create_confirmed_utxos(self.relayfee, self.nodes[0], utxo_count)
|
utxos = create_confirmed_utxos(self.relayfee, self.nodes[0], utxo_count)
|
||||||
|
@ -139,5 +142,16 @@ class PrioritiseTransactionTest(BitcoinTestFramework):
|
||||||
assert_equal(self.nodes[0].sendrawtransaction(tx2_hex), tx2_id)
|
assert_equal(self.nodes[0].sendrawtransaction(tx2_hex), tx2_id)
|
||||||
assert(tx2_id in self.nodes[0].getrawmempool())
|
assert(tx2_id in self.nodes[0].getrawmempool())
|
||||||
|
|
||||||
|
# Test that calling prioritisetransaction is sufficient to trigger
|
||||||
|
# getblocktemplate to (eventually) return a new block.
|
||||||
|
mock_time = int(time.time())
|
||||||
|
self.nodes[0].setmocktime(mock_time)
|
||||||
|
template = self.nodes[0].getblocktemplate()
|
||||||
|
self.nodes[0].prioritisetransaction(txid, 0, -int(self.relayfee*COIN))
|
||||||
|
self.nodes[0].setmocktime(mock_time+10)
|
||||||
|
new_template = self.nodes[0].getblocktemplate()
|
||||||
|
|
||||||
|
assert(template != new_template)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
PrioritiseTransactionTest().main()
|
PrioritiseTransactionTest().main()
|
||||||
|
|
|
@ -945,6 +945,7 @@ void CTxMemPool::PrioritiseTransaction(const uint256 hash, const std::string str
|
||||||
BOOST_FOREACH(txiter descendantIt, setDescendants) {
|
BOOST_FOREACH(txiter descendantIt, setDescendants) {
|
||||||
mapTx.modify(descendantIt, update_ancestor_state(0, nFeeDelta, 0, 0));
|
mapTx.modify(descendantIt, update_ancestor_state(0, nFeeDelta, 0, 0));
|
||||||
}
|
}
|
||||||
|
++nTransactionsUpdated;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LogPrintf("PrioritiseTransaction: %s priority += %f, fee += %d\n", strHash, dPriorityDelta, FormatMoney(nFeeDelta));
|
LogPrintf("PrioritiseTransaction: %s priority += %f, fee += %d\n", strHash, dPriorityDelta, FormatMoney(nFeeDelta));
|
||||||
|
|
|
@ -432,7 +432,7 @@ class CTxMemPool
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
uint32_t nCheckFrequency; //!< Value n means that n times in 2^32 we check.
|
uint32_t nCheckFrequency; //!< Value n means that n times in 2^32 we check.
|
||||||
unsigned int nTransactionsUpdated;
|
unsigned int nTransactionsUpdated; //!< Used by getblocktemplate to trigger CreateNewBlock() invocation
|
||||||
CBlockPolicyEstimator* minerPolicyEstimator;
|
CBlockPolicyEstimator* minerPolicyEstimator;
|
||||||
|
|
||||||
uint64_t totalTxSize; //!< sum of all mempool tx's virtual sizes. Differs from serialized tx size since witness data is discounted. Defined in BIP 141.
|
uint64_t totalTxSize; //!< sum of all mempool tx's virtual sizes. Differs from serialized tx size since witness data is discounted. Defined in BIP 141.
|
||||||
|
|
Loading…
Reference in a new issue