Ignore old versionbit activations
Adds a hardcoded height to the consensus chain parameters for ignoring versionbit activations prior to a fixed height.
This commit is contained in:
parent
5e202382a9
commit
fdb3e8f8b2
3 changed files with 8 additions and 1 deletions
|
@ -71,6 +71,7 @@ public:
|
||||||
consensus.BIP66Height = 363725; // 00000000000000000379eaa19dce8c9b722d46ae6a57c2f1a988119488b50931
|
consensus.BIP66Height = 363725; // 00000000000000000379eaa19dce8c9b722d46ae6a57c2f1a988119488b50931
|
||||||
consensus.CSVHeight = 419328; // 000000000000000004a1b34462cb8aeebd5799177f7a29cf28f2d1961716b5b5
|
consensus.CSVHeight = 419328; // 000000000000000004a1b34462cb8aeebd5799177f7a29cf28f2d1961716b5b5
|
||||||
consensus.SegwitHeight = 481824; // 0000000000000000001c8018d9cb3b742ef25114f27563e3fc4a1902167f9893
|
consensus.SegwitHeight = 481824; // 0000000000000000001c8018d9cb3b742ef25114f27563e3fc4a1902167f9893
|
||||||
|
consensus.MinBIP9WarningHeight = consensus.SegwitHeight + consensus.nMinerConfirmationWindow;
|
||||||
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
||||||
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
||||||
consensus.nPowTargetSpacing = 10 * 60;
|
consensus.nPowTargetSpacing = 10 * 60;
|
||||||
|
@ -177,6 +178,7 @@ public:
|
||||||
consensus.BIP66Height = 330776; // 000000002104c8c45e99a8853285a3b592602a3ccde2b832481da85e9e4ba182
|
consensus.BIP66Height = 330776; // 000000002104c8c45e99a8853285a3b592602a3ccde2b832481da85e9e4ba182
|
||||||
consensus.CSVHeight = 770112; // 00000000025e930139bac5c6c31a403776da130831ab85be56578f3fa75369bb
|
consensus.CSVHeight = 770112; // 00000000025e930139bac5c6c31a403776da130831ab85be56578f3fa75369bb
|
||||||
consensus.SegwitHeight = 834624; // 00000000002b980fcd729daaa248fd9316a5200e9b367f4ff2c42453e84201ca
|
consensus.SegwitHeight = 834624; // 00000000002b980fcd729daaa248fd9316a5200e9b367f4ff2c42453e84201ca
|
||||||
|
consensus.MinBIP9WarningHeight = consensus.SegwitHeight + consensus.nMinerConfirmationWindow;
|
||||||
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
||||||
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
||||||
consensus.nPowTargetSpacing = 10 * 60;
|
consensus.nPowTargetSpacing = 10 * 60;
|
||||||
|
@ -261,6 +263,7 @@ public:
|
||||||
consensus.BIP66Height = 1251; // BIP66 activated on regtest (Used in functional tests)
|
consensus.BIP66Height = 1251; // BIP66 activated on regtest (Used in functional tests)
|
||||||
consensus.CSVHeight = 432; // CSV activated on regtest (Used in rpc activation tests)
|
consensus.CSVHeight = 432; // CSV activated on regtest (Used in rpc activation tests)
|
||||||
consensus.SegwitHeight = 0; // SEGWIT is always activated on regtest unless overridden
|
consensus.SegwitHeight = 0; // SEGWIT is always activated on regtest unless overridden
|
||||||
|
consensus.MinBIP9WarningHeight = 0;
|
||||||
consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
||||||
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
||||||
consensus.nPowTargetSpacing = 10 * 60;
|
consensus.nPowTargetSpacing = 10 * 60;
|
||||||
|
|
|
@ -62,6 +62,9 @@ struct Params {
|
||||||
* Note that segwit v0 script rules are enforced on all blocks except the
|
* Note that segwit v0 script rules are enforced on all blocks except the
|
||||||
* BIP 16 exception blocks. */
|
* BIP 16 exception blocks. */
|
||||||
int SegwitHeight;
|
int SegwitHeight;
|
||||||
|
/** Don't warn about unknown BIP 9 activations below this height.
|
||||||
|
* This prevents us from warning about the CSV and segwit activations. */
|
||||||
|
int MinBIP9WarningHeight;
|
||||||
/**
|
/**
|
||||||
* Minimum blocks including miner confirmation of the total of 2016 blocks in a retargeting period,
|
* Minimum blocks including miner confirmation of the total of 2016 blocks in a retargeting period,
|
||||||
* (nPowTargetTimespan / nPowTargetSpacing) which is also used for BIP9 deployments.
|
* (nPowTargetTimespan / nPowTargetSpacing) which is also used for BIP9 deployments.
|
||||||
|
|
|
@ -1625,7 +1625,8 @@ public:
|
||||||
|
|
||||||
bool Condition(const CBlockIndex* pindex, const Consensus::Params& params) const override
|
bool Condition(const CBlockIndex* pindex, const Consensus::Params& params) const override
|
||||||
{
|
{
|
||||||
return ((pindex->nVersion & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS) &&
|
return pindex->nHeight >= params.MinBIP9WarningHeight &&
|
||||||
|
((pindex->nVersion & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS) &&
|
||||||
((pindex->nVersion >> bit) & 1) != 0 &&
|
((pindex->nVersion >> bit) & 1) != 0 &&
|
||||||
((ComputeBlockVersion(pindex->pprev, params) >> bit) & 1) == 0;
|
((ComputeBlockVersion(pindex->pprev, params) >> bit) & 1) == 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue