diff --git a/src/masternode-payments.cpp b/src/masternode-payments.cpp index 2c6aaf4e9f2ff..56ed72642ca52 100644 --- a/src/masternode-payments.cpp +++ b/src/masternode-payments.cpp @@ -164,8 +164,7 @@ std::string CMasternodePaymentWinner::GetStrMessage() const bool CMasternodePaymentWinner::IsValid(CNode* pnode, std::string& strError, int chainHeight) { int n = mnodeman.GetMasternodeRank(vinMasternode, nBlockHeight - 100); - bool guard = Params().GetConsensus().NetworkUpgradeActive(chainHeight, Consensus::UPGRADE_V5_3); - if ((guard && n < 1) || n > MNPAYMENTS_SIGNATURES_TOTAL) { + if (n < 1 || n > MNPAYMENTS_SIGNATURES_TOTAL) { //It's common to have masternodes mistakenly think they are in the top 10 // We don't want to print all of these messages, or punish them unless they're way off if (n > MNPAYMENTS_SIGNATURES_TOTAL * 2) { @@ -177,7 +176,7 @@ bool CMasternodePaymentWinner::IsValid(CNode* pnode, std::string& strError, int } // Must be a P2PKH - if (guard && !payee.IsPayToPublicKeyHash()) { + if (!payee.IsPayToPublicKeyHash()) { LogPrint(BCLog::MASTERNODE, "%s - payee must be a P2PKH\n", __func__); return false; } @@ -225,9 +224,7 @@ bool IsBlockValueValid(int nHeight, CAmount& nExpectedValue, CAmount nMinted, CA } } - // !todo: remove after V5.3 enforcement and default it to true - const bool isUpgradeEnforced = consensus.NetworkUpgradeActive(nHeight, Consensus::UPGRADE_V5_3); - return (!isUpgradeEnforced || nMinted >= 0) && nMinted <= nExpectedValue; + return nMinted >= 0 && nMinted <= nExpectedValue; } bool IsBlockPayeeValid(const CBlock& block, const CBlockIndex* pindexPrev) @@ -332,8 +329,7 @@ bool CMasternodePayments::GetLegacyMasternodeTxOut(int nHeight, std::vectorGetPayeeScript(); diff --git a/src/masternode.cpp b/src/masternode.cpp index 57c08d6300b82..01e7019476261 100644 --- a/src/masternode.cpp +++ b/src/masternode.cpp @@ -65,8 +65,7 @@ int MasternodeRemovalSeconds() // Used for sigTime < maxTimeWindow int64_t GetMaxTimeWindow(int chainHeight) { - bool isV5_3 = Params().GetConsensus().NetworkUpgradeActive(chainHeight, Consensus::UPGRADE_V5_3); - return GetAdjustedTime() + (isV5_3 ? (60 * 2) : (60 * 60)); + return GetAdjustedTime() + 60 * 2; } @@ -301,13 +300,6 @@ bool CMasternodeBroadcast::Create(const std::string& strService, if (!CheckDefaultPort(_service, strErrorRet, "CMasternodeBroadcast::Create")) return false; - // Check if the MN has a ADDRv2 and reject it if the new NU wasn't enforced. - if (!_service.IsAddrV1Compatible() && - !Params().GetConsensus().NetworkUpgradeActive(chainHeight, Consensus::UPGRADE_V5_3)) { - strErrorRet = "Cannot start MN with a v2 address before the v5.3 enforcement"; - return false; - } - return Create(txin, _service, keyCollateralAddressNew, pubKeyCollateralAddressNew, keyMasternodeNew, pubKeyMasternodeNew, strErrorRet, mnbRet); } @@ -412,9 +404,8 @@ bool CMasternodeBroadcast::CheckAndUpdate(int& nDos, int nChainHeight) return false; } - // reject old signature version after v5.3 - if (nMessVersion != MessageVersion::MESS_VER_HASH && - Params().GetConsensus().NetworkUpgradeActive(nChainHeight, Consensus::UPGRADE_V5_3)) { + // reject old signature version + if (nMessVersion != MessageVersion::MESS_VER_HASH) { LogPrint(BCLog::MASTERNODE, "mnb - rejecting old message version for mn %s\n", vin.prevout.hash.ToString()); nDos = 30; return false; @@ -619,9 +610,8 @@ bool CMasternodePing::CheckAndUpdate(int& nDos, int nChainHeight, bool fRequireA return false; } - // reject old signature version after v5.3 - if (nMessVersion != MessageVersion::MESS_VER_HASH && - Params().GetConsensus().NetworkUpgradeActive(nChainHeight, Consensus::UPGRADE_V5_3)) { + // reject old signature version + if (nMessVersion != MessageVersion::MESS_VER_HASH) { LogPrint(BCLog::MNPING, "mnp - rejecting old message version for mn %s\n", vin.prevout.hash.ToString()); nDos = 30; return false; diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index d84f371f8d374..1884b8555cc1c 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -243,9 +243,6 @@ int CMasternodeMan::CheckAndRemove(bool forceExpiredRemoval) return 0; } - // !TODO: can be removed after enforcement - bool reject_v0 = Params().GetConsensus().NetworkUpgradeActive(GetBestHeight(), Consensus::UPGRADE_V5_3); - LOCK(cs); //remove inactive and outdated (or replaced by DMN) @@ -256,8 +253,7 @@ int CMasternodeMan::CheckAndRemove(bool forceExpiredRemoval) if (activeState == CMasternode::MASTERNODE_REMOVE || activeState == CMasternode::MASTERNODE_VIN_SPENT || (forceExpiredRemoval && activeState == CMasternode::MASTERNODE_EXPIRED) || - mn->protocolVersion < ActiveProtocol() || - (reject_v0 && mn->nMessVersion != MessageVersion::MESS_VER_HASH)) { + mn->protocolVersion < ActiveProtocol()) { LogPrint(BCLog::MASTERNODE, "Removing inactive (legacy) Masternode %s\n", it->first.ToString()); //erase all of the broadcasts we've seen from this vin // -- if we missed a few pings and the node was removed, this will allow is to get it back without them @@ -728,16 +724,8 @@ int CMasternodeMan::ProcessMNBroadcast(CNode* pfrom, CMasternodeBroadcast& mnb) } int chainHeight = GetBestHeight(); - const auto& consensus = Params().GetConsensus(); - // Check if mnb contains a ADDRv2 and reject it if the new NU wasn't enforced. - if (!mnb.addr.IsAddrV1Compatible() && - !consensus.NetworkUpgradeActive(chainHeight, Consensus::UPGRADE_V5_3)) { - LogPrint(BCLog::MASTERNODE, "mnb - received a ADDRv2 before enforcement\n"); - return 33; - } - int nDoS = 0; - if (!mnb.CheckAndUpdate(nDoS, GetBestHeight())) { + if (!mnb.CheckAndUpdate(nDoS, chainHeight)) { return nDoS; } @@ -880,10 +868,6 @@ int CMasternodeMan::ProcessMessageInner(CNode* pfrom, std::string& strCommand, C return ProcessMNBroadcast(pfrom, mnb); } else if (strCommand == NetMsgType::MNBROADCAST2) { - if (!Params().GetConsensus().NetworkUpgradeActive(GetBestHeight(), Consensus::UPGRADE_V5_3)) { - LogPrint(BCLog::MASTERNODE, "%s: mnb2 not enabled pre-V5.3 enforcement\n", __func__); - return 30; - } CMasternodeBroadcast mnb; OverrideStream s(&vRecv, vRecv.GetType(), vRecv.GetVersion() | ADDRV2_FORMAT); s >> mnb; diff --git a/src/net_processing.cpp b/src/net_processing.cpp index c8c18826fe6f3..af8726fbca29a 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -910,11 +910,6 @@ bool static PushTierTwoGetDataRequest(const CInv& inv, if (it != mnodeman.mapSeenMasternodeBroadcast.end()) { const auto& mnb = it->second; - // Just to be double sure, do not broadcast BIP155 addresses pre-v5.3 enforcement - if (mnb.isBIP155Addr && !Params().GetConsensus().NetworkUpgradeActive(chainHeight, Consensus::UPGRADE_V5_3)) { - return false; - } - int version = mnb.isBIP155Addr ? PROTOCOL_VERSION | ADDRV2_FORMAT : PROTOCOL_VERSION; CDataStream ss(SER_NETWORK, version); ss.reserve(1000); diff --git a/src/test/budget_tests.cpp b/src/test/budget_tests.cpp index b8044d89d8b2c..79312309ef519 100644 --- a/src/test/budget_tests.cpp +++ b/src/test/budget_tests.cpp @@ -61,6 +61,9 @@ BOOST_FIXTURE_TEST_CASE(block_value, TestnetSetup) CAmount nExpectedRet = nBlockReward; CAmount nBudgetAmtRet = 0; + // under-minting + BOOST_CHECK(!IsBlockValueValid(nHeight, nExpectedRet, -1, nBudgetAmtRet)); + // regular block BOOST_CHECK(IsBlockValueValid(nHeight, nExpectedRet, 0, nBudgetAmtRet)); BOOST_CHECK(IsBlockValueValid(nHeight, nExpectedRet, nBlockReward-1, nBudgetAmtRet)); @@ -129,17 +132,6 @@ BOOST_FIXTURE_TEST_CASE(block_value, TestnetSetup) BOOST_CHECK_EQUAL(nBudgetAmtRet, 0); } -BOOST_FIXTURE_TEST_CASE(block_value_undermint, RegTestingSetup) -{ - int nHeight = 100; - CAmount nExpectedRet = GetBlockValue(nHeight); - CAmount nBudgetAmtRet = 0; - // under-minting blocks are invalid after v6 - BOOST_CHECK(IsBlockValueValid(nHeight, nExpectedRet, -1, nBudgetAmtRet)); - UpdateNetworkUpgradeParameters(Consensus::UPGRADE_V5_3, Consensus::NetworkUpgrade::ALWAYS_ACTIVE); - BOOST_CHECK(!IsBlockValueValid(nHeight, nExpectedRet, -1, nBudgetAmtRet)); -} - /** * 1) Create two proposals and two budget finalizations with a different proposal payment order: BudA pays propA and propB, BudB pays propB and propA. diff --git a/src/validation.cpp b/src/validation.cpp index ee04e902de8de..81eebeb1b1674 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2076,9 +2076,7 @@ bool static ConnectTip(CValidationState& state, CBlockIndex* pindexNew, const st // Update chainActive & related variables. UpdateTip(pindexNew); // Update TierTwo managers - // !TODO: remove isV5_3 guard after v5.3 enforcement - bool isV5_3 = Params().GetConsensus().NetworkUpgradeActive(pindexNew->nHeight, Consensus::UPGRADE_V5_3); - if (!fLiteMode && isV5_3) { + if (!fLiteMode) { mnodeman.SetBestHeight(pindexNew->nHeight); g_budgetman.SetBestHeight(pindexNew->nHeight); } @@ -2942,8 +2940,7 @@ bool ContextualCheckBlock(const CBlock& block, CValidationState& state, CBlockIn } } - bool fActiveV5_3 = chainparams.GetConsensus().NetworkUpgradeActive(nHeight, Consensus::UPGRADE_V5_3); - if (fActiveV5_3 && block.IsProofOfStake()) { + if (block.IsProofOfStake()) { CTransactionRef csTx = block.vtx[1]; if (csTx->vin.size() > 1) { return state.DoS(100, false, REJECT_INVALID, "bad-cs-multi-inputs", false, @@ -3369,15 +3366,6 @@ bool ProcessNewBlock(const std::shared_ptr& pblock, const FlatFile if (!ActivateBestChain(state, pblock)) return error("%s : ActivateBestChain failed", __func__); - // !TODO: remove after v5.3 enforcement - bool isV5_3 = Params().GetConsensus().NetworkUpgradeActive( - WITH_LOCK(cs_main, return chainActive.Height(); ), - Consensus::UPGRADE_V5_3); - if (!fLiteMode && !isV5_3) { - mnodeman.SetBestHeight(newHeight); - g_budgetman.SetBestHeight(newHeight); - } - LogPrintf("%s : ACCEPTED Block %ld in %ld milliseconds with size=%d\n", __func__, newHeight, GetTimeMillis() - nStartTime, GetSerializeSize(*pblock, CLIENT_VERSION));