aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Morcos <morcos@chaincode.com>2015-11-02 16:41:55 -0500
committerAlex Morcos <morcos@chaincode.com>2015-11-02 20:11:55 -0500
commit33c90cf197223fb95f858db80d090d570d70498a (patch)
tree07c236112b37b67a337aa8b9b10a4bf9fbe0e815
parent06d81ad516f1d136da9f03ca2ae823211c0f6988 (diff)
Make skipping BIP30 check chain agnostic
-rw-r--r--src/chainparams.cpp6
-rw-r--r--src/consensus/params.h3
-rw-r--r--src/main.cpp8
3 files changed, 13 insertions, 4 deletions
diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index dd26c3b31a..5d6d1ef9d8 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -73,6 +73,8 @@ public:
consensus.nMajorityEnforceBlockUpgrade = 750;
consensus.nMajorityRejectBlockOutdated = 950;
consensus.nMajorityWindow = 1000;
+ consensus.BIP34Height = 227931;
+ consensus.BIP34Hash = uint256S("0x000000000000024b89b42a942fe0d9fea3bb44ab7bd1b19115dd6a759c0808b8");
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
@@ -153,6 +155,8 @@ public:
consensus.nMajorityEnforceBlockUpgrade = 51;
consensus.nMajorityRejectBlockOutdated = 75;
consensus.nMajorityWindow = 100;
+ consensus.BIP34Height = 21111;
+ consensus.BIP34Hash = uint256S("0x0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8");
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
@@ -216,6 +220,8 @@ public:
consensus.nMajorityEnforceBlockUpgrade = 750;
consensus.nMajorityRejectBlockOutdated = 950;
consensus.nMajorityWindow = 1000;
+ consensus.BIP34Height = -1; // BIP34 has not necessarily activated on regtest
+ consensus.BIP34Hash = uint256();
consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
diff --git a/src/consensus/params.h b/src/consensus/params.h
index efbbbed352..5ebc48a8df 100644
--- a/src/consensus/params.h
+++ b/src/consensus/params.h
@@ -19,6 +19,9 @@ struct Params {
int nMajorityEnforceBlockUpgrade;
int nMajorityRejectBlockOutdated;
int nMajorityWindow;
+ /** Block height and hash at which BIP34 becomes active */
+ int BIP34Height;
+ uint256 BIP34Hash;
/** Proof of work parameters */
uint256 powLimit;
bool fPowAllowMinDifficultyBlocks;
diff --git a/src/main.cpp b/src/main.cpp
index 159f6f644c..a4c9de185d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1742,10 +1742,10 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
// time BIP34 activated, in each of the existing pairs the duplicate coinbase had overwritten the first
// before the first had been spent. Since those coinbases are sufficiently buried its no longer possible to create further
// duplicate transactions descending from the known pairs either.
- // If we're on the known chain at height greater than 227931 where BIP34 activated, we can save the db accesses needed for the BIP30 check.
- CBlockIndex *pindexBIP34height = pindex->pprev->GetAncestor(227931);
- //Only continue to enforce if we're below height 227931 or the block hash at that height doesn't correspond.
- fEnforceBIP30 = fEnforceBIP30 && (!pindexBIP34height || !(pindexBIP34height->GetBlockHash() == uint256S("0x000000000000024b89b42a942fe0d9fea3bb44ab7bd1b19115dd6a759c0808b8")));
+ // If we're on the known chain at height greater than where BIP34 activated, we can save the db accesses needed for the BIP30 check.
+ CBlockIndex *pindexBIP34height = pindex->pprev->GetAncestor(chainparams.GetConsensus().BIP34Height);
+ //Only continue to enforce if we're below BIP34 activation height or the block hash at that height doesn't correspond.
+ fEnforceBIP30 = fEnforceBIP30 && (!pindexBIP34height || !(pindexBIP34height->GetBlockHash() == chainparams.GetConsensus().BIP34Hash));
if (fEnforceBIP30) {
BOOST_FOREACH(const CTransaction& tx, block.vtx) {