aboutsummaryrefslogtreecommitdiff
path: root/src/miner.cpp
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2014-10-07 14:22:58 -0400
committerGavin Andresen <gavinandresen@gmail.com>2014-10-09 10:28:27 -0400
commitdbca89b74b76610331d21656cd6747f5bf8375d6 (patch)
treeaaf91b54261aa4f57654367a3ee4fe96454bb784 /src/miner.cpp
parente01a7939d3a3b231f68ae2f36cbc4de0cf4d4999 (diff)
downloadbitcoin-dbca89b74b76610331d21656cd6747f5bf8375d6.tar.xz
Trigger -alertnotify if network is upgrading without you
This adds a -regetest-only undocumented (for regression testing only) command-line option -blockversion=N to set block.nVersion. Adds to the "has the rest of the network upgraded to a block.nVersion we don't understand" code so it calls -alertnotify when 51 of the last 100 blocks are up-version. But it only alerts once, not with every subsequent new, upversion block. And adds a forknotify.py regression test to make sure it works. Tested using forknotify.py: Before adding CAlert::Notify, get: Assertion failed: -alertnotify did not warn of up-version blocks Before adding code to only alert once: Assertion failed: -alertnotify excessive warning of up-version blocks After final code in this pull: Tests successful
Diffstat (limited to 'src/miner.cpp')
-rw-r--r--src/miner.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/miner.cpp b/src/miner.cpp
index 280349e8c2..2eb028b1d3 100644
--- a/src/miner.cpp
+++ b/src/miner.cpp
@@ -83,6 +83,11 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn)
return NULL;
CBlock *pblock = &pblocktemplate->block; // pointer for convenience
+ // -regtest only: allow overriding block.nVersion with
+ // -blockversion=N to test forking scenarios
+ if (Params().MineBlocksOnDemand())
+ pblock->nVersion = GetArg("-blockversion", pblock->nVersion);
+
// Create coinbase tx
CMutableTransaction txNew;
txNew.vin.resize(1);