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
|
SAPLING_BRANCH_ID = 0x76B809BB
|
||||||
BLOSSOM_BRANCH_ID = 0x2BB40E60
|
BLOSSOM_BRANCH_ID = 0x2BB40E60
|
||||||
HEARTWOOD_BRANCH_ID = 0xF5B9230B
|
HEARTWOOD_BRANCH_ID = 0xF5B9230B
|
||||||
|
NU4_BRANCH_ID = 0xE9FF75A6
|
||||||
|
|
||||||
MAX_INV_SZ = 50000
|
MAX_INV_SZ = 50000
|
||||||
|
|
||||||
|
|
|
@ -122,6 +122,9 @@ public:
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170011;
|
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170011;
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight =
|
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight =
|
||||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
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.
|
// The best chain should have at least this much work.
|
||||||
consensus.nMinimumChainWork = uint256S("000000000000000000000000000000000000000000000000017e73a331fae01c");
|
consensus.nMinimumChainWork = uint256S("000000000000000000000000000000000000000000000000017e73a331fae01c");
|
||||||
|
@ -322,6 +325,9 @@ public:
|
||||||
uint256S("00367515ef2e781b8c9358b443b6329572599edd02c59e8af67db9785122f298");
|
uint256S("00367515ef2e781b8c9358b443b6329572599edd02c59e8af67db9785122f298");
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170010;
|
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170010;
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight = 903800;
|
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
|
// 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.
|
// 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].nProtocolVersion = 170010;
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight =
|
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight =
|
||||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
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.
|
// The best chain should have at least this much work.
|
||||||
consensus.nMinimumChainWork = uint256S("0x00");
|
consensus.nMinimumChainWork = uint256S("0x00");
|
||||||
|
|
|
@ -28,6 +28,7 @@ enum UpgradeIndex : uint32_t {
|
||||||
UPGRADE_SAPLING,
|
UPGRADE_SAPLING,
|
||||||
UPGRADE_BLOSSOM,
|
UPGRADE_BLOSSOM,
|
||||||
UPGRADE_HEARTWOOD,
|
UPGRADE_HEARTWOOD,
|
||||||
|
UPGRADE_NU4,
|
||||||
// NOTE: Also add new upgrades to NetworkUpgradeInfo in upgrades.cpp
|
// NOTE: Also add new upgrades to NetworkUpgradeInfo in upgrades.cpp
|
||||||
MAX_NETWORK_UPGRADES
|
MAX_NETWORK_UPGRADES
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,22 +22,27 @@ const struct NUInfo NetworkUpgradeInfo[Consensus::MAX_NETWORK_UPGRADES] = {
|
||||||
{
|
{
|
||||||
/*.nBranchId =*/ 0x5ba81b19,
|
/*.nBranchId =*/ 0x5ba81b19,
|
||||||
/*.strName =*/ "Overwinter",
|
/*.strName =*/ "Overwinter",
|
||||||
/*.strInfo =*/ "See https://z.cash/upgrade/overwinter.html for details.",
|
/*.strInfo =*/ "See https://z.cash/upgrade/overwinter/ for details.",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
/*.nBranchId =*/ 0x76b809bb,
|
/*.nBranchId =*/ 0x76b809bb,
|
||||||
/*.strName =*/ "Sapling",
|
/*.strName =*/ "Sapling",
|
||||||
/*.strInfo =*/ "See https://z.cash/upgrade/sapling.html for details.",
|
/*.strInfo =*/ "See https://z.cash/upgrade/sapling/ for details.",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
/*.nBranchId =*/ 0x2bb40e60,
|
/*.nBranchId =*/ 0x2bb40e60,
|
||||||
/*.strName =*/ "Blossom",
|
/*.strName =*/ "Blossom",
|
||||||
/*.strInfo =*/ "See https://z.cash/upgrade/blossom.html for details.",
|
/*.strInfo =*/ "See https://z.cash/upgrade/blossom/ for details.",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
/*.nBranchId =*/ 0xf5b9230b,
|
/*.nBranchId =*/ 0xf5b9230b,
|
||||||
/*.strName =*/ "Heartwood",
|
/*.strName =*/ "Heartwood",
|
||||||
/*.strInfo =*/ "See https://z.cash/upgrade/heartwood/ for details.",
|
/*.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);
|
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() {
|
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey() {
|
||||||
std::vector<unsigned char, secure_allocator<unsigned char>> rawSeed(32);
|
std::vector<unsigned char, secure_allocator<unsigned char>> rawSeed(32);
|
||||||
|
|
|
@ -53,6 +53,10 @@ const Consensus::Params& RegtestActivateHeartwood(bool updatePow, int heartwoodA
|
||||||
|
|
||||||
void RegtestDeactivateHeartwood();
|
void RegtestDeactivateHeartwood();
|
||||||
|
|
||||||
|
const Consensus::Params& RegtestActivateNU4(bool updatePow, int nu4ActivationHeight = Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||||
|
|
||||||
|
void RegtestDeactivateNU4();
|
||||||
|
|
||||||
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey();
|
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey();
|
||||||
|
|
||||||
CKey AddTestCKeyToKeyStore(CBasicKeyStore& keyStore);
|
CKey AddTestCKeyToKeyStore(CBasicKeyStore& keyStore);
|
||||||
|
|
Loading…
Reference in New Issue