Enable policy enforcing GetMedianTimePast as the end point of lock-time constraints
Transactions are not allowed in the memory pool or selected for inclusion in a block until their lock times exceed chainActive.Tip()->GetMedianTimePast(). However blocks including transactions which are only mature under the old rules are still accepted; this is *not* the soft-fork required to actually rely on the new constraint in production.
This commit is contained in:
parent
a1d3c6fb9d
commit
f720c5fc9f
|
@ -20,6 +20,6 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Used as the flags parameter to CheckFinalTx() in non-consensus code */
|
/** Used as the flags parameter to CheckFinalTx() in non-consensus code */
|
||||||
static const unsigned int STANDARD_LOCKTIME_VERIFY_FLAGS = 0;
|
static const unsigned int STANDARD_LOCKTIME_VERIFY_FLAGS = LOCKTIME_MEDIAN_TIME_PAST;
|
||||||
|
|
||||||
#endif // BITCOIN_CONSENSUS_CONSENSUS_H
|
#endif // BITCOIN_CONSENSUS_CONSENSUS_H
|
||||||
|
|
|
@ -223,7 +223,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
||||||
tx.nLockTime = chainActive.Tip()->nHeight+1;
|
tx.nLockTime = chainActive.Tip()->nHeight+1;
|
||||||
hash = tx.GetHash();
|
hash = tx.GetHash();
|
||||||
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
|
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
|
||||||
BOOST_CHECK(!CheckFinalTx(tx));
|
BOOST_CHECK(!CheckFinalTx(tx, LOCKTIME_MEDIAN_TIME_PAST));
|
||||||
|
|
||||||
// time locked
|
// time locked
|
||||||
tx2.vin.resize(1);
|
tx2.vin.resize(1);
|
||||||
|
@ -237,7 +237,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
||||||
tx2.nLockTime = chainActive.Tip()->GetMedianTimePast()+1;
|
tx2.nLockTime = chainActive.Tip()->GetMedianTimePast()+1;
|
||||||
hash = tx2.GetHash();
|
hash = tx2.GetHash();
|
||||||
mempool.addUnchecked(hash, CTxMemPoolEntry(tx2, 11, GetTime(), 111.0, 11));
|
mempool.addUnchecked(hash, CTxMemPoolEntry(tx2, 11, GetTime(), 111.0, 11));
|
||||||
BOOST_CHECK(!CheckFinalTx(tx2));
|
BOOST_CHECK(!CheckFinalTx(tx2, LOCKTIME_MEDIAN_TIME_PAST));
|
||||||
|
|
||||||
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
|
||||||
|
|
||||||
|
@ -255,7 +255,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
||||||
//BOOST_CHECK(CheckFinalTx(tx2));
|
//BOOST_CHECK(CheckFinalTx(tx2));
|
||||||
|
|
||||||
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
|
||||||
BOOST_CHECK_EQUAL(pblocktemplate->block.vtx.size(), 3);
|
BOOST_CHECK_EQUAL(pblocktemplate->block.vtx.size(), 2);
|
||||||
delete pblocktemplate;
|
delete pblocktemplate;
|
||||||
|
|
||||||
chainActive.Tip()->nHeight--;
|
chainActive.Tip()->nHeight--;
|
||||||
|
|
Loading…
Reference in New Issue