diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2032,6 +2032,12 @@ } } +static void LogUpgradeActivation(const std::string upgradeName) { + LogPrintf("Upgrade activated: '%s'. The next block will abide by the new " + "rules.\n", + upgradeName); +} + /** Check warning conditions and do some notifications on new chain tip set. */ static void UpdateTip(const CChainParams ¶ms, CBlockIndex *pindexNew) { // New best block @@ -2053,6 +2059,33 @@ GuessVerificationProgress(params.TxData(), pindexNew), pcoinsTip->DynamicMemoryUsage() * (1.0 / (1 << 20)), pcoinsTip->GetCacheSize()); + + // Log upgrade activations + const Consensus::Params &consensusParams = params.GetConsensus(); + if (!IsUAHFenabled(consensusParams, pindexNew->pprev) && + IsUAHFenabled(consensusParams, pindexNew)) { + LogUpgradeActivation("UAHF"); + } + if (!IsDAAEnabled(consensusParams, pindexNew->pprev) && + IsDAAEnabled(consensusParams, pindexNew)) { + LogUpgradeActivation("DAA (2017)"); + } + if (!IsMagneticAnomalyEnabled(consensusParams, pindexNew->pprev) && + IsMagneticAnomalyEnabled(consensusParams, pindexNew)) { + LogUpgradeActivation("Magnetic Anomaly"); + } + if (!IsGravitonEnabled(consensusParams, pindexNew->pprev) && + IsGravitonEnabled(consensusParams, pindexNew)) { + LogUpgradeActivation("Graviton"); + } + if (!IsPhononEnabled(consensusParams, pindexNew->pprev) && + IsPhononEnabled(consensusParams, pindexNew)) { + LogUpgradeActivation("Phonon"); + } + if (!IsAxionEnabled(consensusParams, pindexNew->pprev) && + IsAxionEnabled(consensusParams, pindexNew)) { + LogUpgradeActivation("Axion"); + } } /**