From f7d2f614dbe09fc0134d1492932244dfdbfc6fe7 Mon Sep 17 00:00:00 2001 From: Levon Petrosyan Date: Thu, 20 Aug 2020 19:53:02 +0400 Subject: [PATCH] Version bump and Sigma Reactivation --- configure.ac | 2 +- src/chainparams.cpp | 7 +++++-- src/clientversion.h | 2 +- src/consensus/params.h | 1 + src/validation.cpp | 7 ++++--- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 5b52554335..dab85119c5 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 14) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 4) +define(_CLIENT_VERSION_BUILD, 5) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2020) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 52c5584723..185b668c28 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -370,6 +370,7 @@ class CMainParams : public CChainParams { consensus.nSigmaPaddingBlock = ZC_SIGMA_PADDING_BLOCK; consensus.nDisableUnpaddedSigmaBlock = ZC_SIGMA_DISABLE_UNPADDED_BLOCK; consensus.nStartSigmaBlacklist = 293790; + consensus.nRestartSigmaWithBlacklistCheck = 296900; consensus.nOldSigmaBanBlock = ZC_OLD_SIGMA_BAN_BLOCK; consensus.nZerocoinV2MintMempoolGracefulPeriod = ZC_V2_MINT_GRACEFUL_MEMPOOL_PERIOD; consensus.nZerocoinV2MintGracefulPeriod = ZC_V2_MINT_GRACEFUL_PERIOD; @@ -577,7 +578,8 @@ class CTestNetParams : public CChainParams { consensus.nSigmaStartBlock = 1; consensus.nSigmaPaddingBlock = 1; consensus.nDisableUnpaddedSigmaBlock = 1; - consensus.nStartSigmaBlacklist = 1; + consensus.nStartSigmaBlacklist = INT_MAX; + consensus.nRestartSigmaWithBlacklistCheck = INT_MAX; consensus.nOldSigmaBanBlock = 1; consensus.nZerocoinV2MintMempoolGracefulPeriod = ZC_V2_MINT_TESTNET_GRACEFUL_MEMPOOL_PERIOD; @@ -761,7 +763,8 @@ class CRegTestParams : public CChainParams { consensus.nSigmaStartBlock = 400; consensus.nSigmaPaddingBlock = 550; consensus.nDisableUnpaddedSigmaBlock = 510; - consensus.nStartSigmaBlacklist = 1; + consensus.nStartSigmaBlacklist = INT_MAX; + consensus.nRestartSigmaWithBlacklistCheck = INT_MAX; consensus.nOldSigmaBanBlock = 450; consensus.nZerocoinV2MintMempoolGracefulPeriod = 2; consensus.nZerocoinV2MintGracefulPeriod = 5; diff --git a/src/clientversion.h b/src/clientversion.h index 77ad1a7bbc..c86bf50dcb 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -17,7 +17,7 @@ #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 14 #define CLIENT_VERSION_REVISION 0 -#define CLIENT_VERSION_BUILD 4 +#define CLIENT_VERSION_BUILD 5 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true diff --git a/src/consensus/params.h b/src/consensus/params.h index d59f59b0b5..71c04a727d 100644 --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -227,6 +227,7 @@ struct Params { int nDisableUnpaddedSigmaBlock; int nStartSigmaBlacklist; + int nRestartSigmaWithBlacklistCheck; // The block number after which old sigma clients are banned. int nOldSigmaBanBlock; diff --git a/src/validation.cpp b/src/validation.cpp index 4ae8aa4ea2..df47fcfb29 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -651,7 +651,7 @@ bool CheckTransaction(const CTransaction &tx, CValidationState &state, bool fChe return false; } - if(nHeight != INT_MAX && nHeight >= ::Params().GetConsensus().nStartBlacklist) { + if (nHeight >= ::Params().GetConsensus().nStartBlacklist) { for (const auto& vin : tx.vin) { if(txid_blacklist.count(vin.prevout.hash.GetHex()) > 0) { return state.DoS(100, error("Spending this tx is temporarily disabled"), @@ -761,7 +761,8 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C } if (tx.IsSigmaMint() || tx.IsSigmaSpend()) { - return state.DoS(100, error("Sigma is temporarily disabled"), + if (consensus.nStartSigmaBlacklist != INT_MAX && chainActive.Height() < consensus.nRestartSigmaWithBlacklistCheck) + return state.DoS(100, error("Sigma is temporarily disabled"), REJECT_INVALID, "bad-txns-zerocoin"); } @@ -3896,7 +3897,7 @@ bool CheckBlock(const CBlock& block, CValidationState& state, const Consensus::P nHeight = ZerocoinGetNHeight(block.GetBlockHeader()); for (CTransactionRef tx : block.vtx) { - if (nHeight >= consensusParams.nStartSigmaBlacklist && (tx->IsSigmaMint() || tx->IsSigmaSpend())) { + if (nHeight >= consensusParams.nStartSigmaBlacklist && nHeight < consensusParams.nRestartSigmaWithBlacklistCheck && (tx->IsSigmaMint() || tx->IsSigmaSpend())) { return state.DoS(100, error("Sigma is temporarily disabled"), REJECT_INVALID, "bad-txns-zerocoin"); } // We don't check transactions against zerocoin state here, we'll check it again later in ConnectBlock