Auto merge of #4487 - str4d:nu4-activation-logic, r=str4d
Add NU4 to upgrade list Once NU4 has been named, we will rename the constants and functions. Closes #4472.
This commit is contained in:
commit
1abdc883ac
|
@ -58,6 +58,7 @@ OVERWINTER_BRANCH_ID = 0x5BA81B19
|
|||
SAPLING_BRANCH_ID = 0x76B809BB
|
||||
BLOSSOM_BRANCH_ID = 0x2BB40E60
|
||||
HEARTWOOD_BRANCH_ID = 0xF5B9230B
|
||||
NU4_BRANCH_ID = 0xE9FF75A6
|
||||
|
||||
MAX_INV_SZ = 50000
|
||||
|
||||
|
|
|
@ -122,6 +122,9 @@ public:
|
|||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170011;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight =
|
||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_NU4].nProtocolVersion = 170013;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_NU4].nActivationHeight =
|
||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||
|
||||
// The best chain should have at least this much work.
|
||||
consensus.nMinimumChainWork = uint256S("000000000000000000000000000000000000000000000000017e73a331fae01c");
|
||||
|
@ -322,6 +325,9 @@ public:
|
|||
uint256S("00367515ef2e781b8c9358b443b6329572599edd02c59e8af67db9785122f298");
|
||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170010;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight = 903800;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_NU4].nProtocolVersion = 170012;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_NU4].nActivationHeight =
|
||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||
|
||||
// On testnet we activate this rule 6 blocks after Blossom activation. From block 299188 and
|
||||
// prior to Blossom activation, the testnet minimum-difficulty threshold was 15 minutes (i.e.
|
||||
|
@ -479,6 +485,9 @@ public:
|
|||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170010;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight =
|
||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_NU4].nProtocolVersion = 170012;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_NU4].nActivationHeight =
|
||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||
|
||||
// The best chain should have at least this much work.
|
||||
consensus.nMinimumChainWork = uint256S("0x00");
|
||||
|
|
|
@ -28,6 +28,7 @@ enum UpgradeIndex : uint32_t {
|
|||
UPGRADE_SAPLING,
|
||||
UPGRADE_BLOSSOM,
|
||||
UPGRADE_HEARTWOOD,
|
||||
UPGRADE_NU4,
|
||||
// NOTE: Also add new upgrades to NetworkUpgradeInfo in upgrades.cpp
|
||||
MAX_NETWORK_UPGRADES
|
||||
};
|
||||
|
|
|
@ -22,22 +22,27 @@ const struct NUInfo NetworkUpgradeInfo[Consensus::MAX_NETWORK_UPGRADES] = {
|
|||
{
|
||||
/*.nBranchId =*/ 0x5ba81b19,
|
||||
/*.strName =*/ "Overwinter",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/overwinter.html for details.",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/overwinter/ for details.",
|
||||
},
|
||||
{
|
||||
/*.nBranchId =*/ 0x76b809bb,
|
||||
/*.strName =*/ "Sapling",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/sapling.html for details.",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/sapling/ for details.",
|
||||
},
|
||||
{
|
||||
/*.nBranchId =*/ 0x2bb40e60,
|
||||
/*.strName =*/ "Blossom",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/blossom.html for details.",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/blossom/ for details.",
|
||||
},
|
||||
{
|
||||
/*.nBranchId =*/ 0xf5b9230b,
|
||||
/*.strName =*/ "Heartwood",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/heartwood/ for details.",
|
||||
},
|
||||
{
|
||||
/*.nBranchId =*/ 0xe9ff75a6,
|
||||
/*.strName =*/ "NU4",
|
||||
/*.strInfo =*/ "See https://z.cash/upgrade/nu4/ for details.",
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -251,6 +251,29 @@ void RegtestDeactivateHeartwood() {
|
|||
SelectParams(CBaseChainParams::MAIN);
|
||||
}
|
||||
|
||||
const Consensus::Params& RegtestActivateNU4(bool updatePow, int nu4ActivationHeight) {
|
||||
SelectParams(CBaseChainParams::REGTEST);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_SAPLING, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_BLOSSOM, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_HEARTWOOD, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_NU4, nu4ActivationHeight);
|
||||
if (updatePow) {
|
||||
UpdateRegtestPow(32, 16, uint256S("0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));
|
||||
}
|
||||
return Params().GetConsensus();
|
||||
}
|
||||
|
||||
void RegtestDeactivateNU4() {
|
||||
UpdateRegtestPow(0, 0, uint256S("0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f"));
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_NU4, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_HEARTWOOD, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_BLOSSOM, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_SAPLING, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
SelectParams(CBaseChainParams::MAIN);
|
||||
}
|
||||
|
||||
|
||||
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey() {
|
||||
std::vector<unsigned char, secure_allocator<unsigned char>> rawSeed(32);
|
||||
|
|
|
@ -53,6 +53,10 @@ const Consensus::Params& RegtestActivateHeartwood(bool updatePow, int heartwoodA
|
|||
|
||||
void RegtestDeactivateHeartwood();
|
||||
|
||||
const Consensus::Params& RegtestActivateNU4(bool updatePow, int nu4ActivationHeight = Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
|
||||
void RegtestDeactivateNU4();
|
||||
|
||||
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey();
|
||||
|
||||
CKey AddTestCKeyToKeyStore(CBasicKeyStore& keyStore);
|
||||
|
|
Loading…
Reference in New Issue