Version 2 transactions remain non-standard until CSV activates
Before activation, such transactions might not be mined, so don't allow into the mempool.
This commit is contained in:
parent
5851915a00
commit
e4ba9f6b04
1 changed files with 8 additions and 0 deletions
|
@ -1025,6 +1025,14 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C
|
||||||
if (fRequireStandard && !IsStandardTx(tx, reason))
|
if (fRequireStandard && !IsStandardTx(tx, reason))
|
||||||
return state.DoS(0, false, REJECT_NONSTANDARD, reason);
|
return state.DoS(0, false, REJECT_NONSTANDARD, reason);
|
||||||
|
|
||||||
|
// Don't relay version 2 transactions until CSV is active, and we can be
|
||||||
|
// sure that such transactions will be mined (unless we're on
|
||||||
|
// -testnet/-regtest).
|
||||||
|
const CChainParams& chainparams = Params();
|
||||||
|
if (fRequireStandard && tx.nVersion >= 2 && VersionBitsTipState(chainparams.GetConsensus(), Consensus::DEPLOYMENT_CSV) != THRESHOLD_ACTIVE) {
|
||||||
|
return state.DoS(0, false, REJECT_NONSTANDARD, "premature-version2-tx");
|
||||||
|
}
|
||||||
|
|
||||||
// Only accept nLockTime-using transactions that can be mined in the next
|
// Only accept nLockTime-using transactions that can be mined in the next
|
||||||
// block; we don't want our mempool filled up with transactions that can't
|
// block; we don't want our mempool filled up with transactions that can't
|
||||||
// be mined yet.
|
// be mined yet.
|
||||||
|
|
Loading…
Reference in a new issue