Auto merge of #5029 - steven-ecc:nu5-activation-logic, r=steven-ecc
Adding base NU5 declarations and logic Add NU5 base definitions and boilerplate logic. Closes [#5025](https://github.com/zcash/zcash/issues/5025).
This commit is contained in:
commit
1cf4a10456
|
@ -40,6 +40,7 @@ SAPLING_BRANCH_ID = 0x76B809BB
|
||||||
BLOSSOM_BRANCH_ID = 0x2BB40E60
|
BLOSSOM_BRANCH_ID = 0x2BB40E60
|
||||||
HEARTWOOD_BRANCH_ID = 0xF5B9230B
|
HEARTWOOD_BRANCH_ID = 0xF5B9230B
|
||||||
CANOPY_BRANCH_ID = 0xE9FF75A6
|
CANOPY_BRANCH_ID = 0xE9FF75A6
|
||||||
|
NU5_BRANCH_ID = 0xF919A198
|
||||||
|
|
||||||
# The maximum number of nodes a single test can spawn
|
# The maximum number of nodes a single test can spawn
|
||||||
MAX_NODES = 8
|
MAX_NODES = 8
|
||||||
|
|
|
@ -133,6 +133,9 @@ public:
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight = 1046400;
|
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight = 1046400;
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].hashActivationBlock =
|
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].hashActivationBlock =
|
||||||
uint256S("00000000002038016f976744c369dce7419fca30e7171dfac703af5e5f7ad1d4");
|
uint256S("00000000002038016f976744c369dce7419fca30e7171dfac703af5e5f7ad1d4");
|
||||||
|
consensus.vUpgrades[Consensus::UPGRADE_NU5].nProtocolVersion = 170015;
|
||||||
|
consensus.vUpgrades[Consensus::UPGRADE_NU5].nActivationHeight =
|
||||||
|
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||||
|
|
||||||
consensus.nFundingPeriodLength = consensus.nPostBlossomSubsidyHalvingInterval / 48;
|
consensus.nFundingPeriodLength = consensus.nPostBlossomSubsidyHalvingInterval / 48;
|
||||||
|
|
||||||
|
@ -417,6 +420,9 @@ public:
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight = 1028500;
|
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight = 1028500;
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].hashActivationBlock =
|
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].hashActivationBlock =
|
||||||
uint256S("01a4d7c6aada30c87762c1bf33fff5df7266b1fd7616bfdb5227fa59bd79e7a2");
|
uint256S("01a4d7c6aada30c87762c1bf33fff5df7266b1fd7616bfdb5227fa59bd79e7a2");
|
||||||
|
consensus.vUpgrades[Consensus::UPGRADE_NU5].nProtocolVersion = 170014;
|
||||||
|
consensus.vUpgrades[Consensus::UPGRADE_NU5].nActivationHeight =
|
||||||
|
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||||
|
|
||||||
consensus.nFundingPeriodLength = consensus.nPostBlossomSubsidyHalvingInterval / 48;
|
consensus.nFundingPeriodLength = consensus.nPostBlossomSubsidyHalvingInterval / 48;
|
||||||
|
|
||||||
|
@ -658,6 +664,9 @@ public:
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nProtocolVersion = 170012;
|
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nProtocolVersion = 170012;
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight =
|
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight =
|
||||||
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||||
|
consensus.vUpgrades[Consensus::UPGRADE_NU5].nProtocolVersion = 170014;
|
||||||
|
consensus.vUpgrades[Consensus::UPGRADE_NU5].nActivationHeight =
|
||||||
|
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
|
||||||
|
|
||||||
consensus.nFundingPeriodLength = consensus.nPostBlossomSubsidyHalvingInterval / 48;
|
consensus.nFundingPeriodLength = consensus.nPostBlossomSubsidyHalvingInterval / 48;
|
||||||
// Defined funding streams can be enabled with node config flags.
|
// Defined funding streams can be enabled with node config flags.
|
||||||
|
|
|
@ -37,6 +37,7 @@ enum UpgradeIndex : uint32_t {
|
||||||
UPGRADE_BLOSSOM,
|
UPGRADE_BLOSSOM,
|
||||||
UPGRADE_HEARTWOOD,
|
UPGRADE_HEARTWOOD,
|
||||||
UPGRADE_CANOPY,
|
UPGRADE_CANOPY,
|
||||||
|
UPGRADE_NU5,
|
||||||
// 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
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,6 +43,11 @@ const struct NUInfo NetworkUpgradeInfo[Consensus::MAX_NETWORK_UPGRADES] = {
|
||||||
/*.nBranchId =*/ 0xe9ff75a6,
|
/*.nBranchId =*/ 0xe9ff75a6,
|
||||||
/*.strName =*/ "Canopy",
|
/*.strName =*/ "Canopy",
|
||||||
/*.strInfo =*/ "See https://z.cash/upgrade/canopy/ for details.",
|
/*.strInfo =*/ "See https://z.cash/upgrade/canopy/ for details.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/*.nBranchId =*/ 0xf919a198,
|
||||||
|
/*.strName =*/ "NU5",
|
||||||
|
/*.strInfo =*/ "See https://z.cash/upgrade/nu5/ for details.",
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -276,6 +276,34 @@ void RegtestDeactivateCanopy() {
|
||||||
SelectParams(CBaseChainParams::MAIN);
|
SelectParams(CBaseChainParams::MAIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Consensus::Params& RegtestActivateNU5(bool updatePow, int nu5ActivationHeight) {
|
||||||
|
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_CANOPY, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||||
|
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_NU5, nu5ActivationHeight);
|
||||||
|
if (updatePow) {
|
||||||
|
UpdateRegtestPow(32, 16, uint256S("0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), false);
|
||||||
|
}
|
||||||
|
return Params().GetConsensus();
|
||||||
|
}
|
||||||
|
|
||||||
|
const Consensus::Params& RegtestActivateNU5() {
|
||||||
|
return RegtestActivateNU5(false, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RegtestDeactivateNU5() {
|
||||||
|
UpdateRegtestPow(0, 0, uint256S("0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f"), true);
|
||||||
|
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_NU5, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||||
|
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_CANOPY, 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);
|
||||||
|
|
|
@ -54,6 +54,11 @@ const Consensus::Params& RegtestActivateCanopy();
|
||||||
|
|
||||||
void RegtestDeactivateCanopy();
|
void RegtestDeactivateCanopy();
|
||||||
|
|
||||||
|
const Consensus::Params& RegtestActivateNU5(bool updatePow, int nu5ActivationHeight = Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||||
|
const Consensus::Params& RegtestActivateNU5();
|
||||||
|
|
||||||
|
void RegtestDeactivateNU5();
|
||||||
|
|
||||||
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey();
|
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey();
|
||||||
|
|
||||||
CKey AddTestCKeyToKeyStore(CBasicKeyStore& keyStore);
|
CKey AddTestCKeyToKeyStore(CBasicKeyStore& keyStore);
|
||||||
|
|
Loading…
Reference in New Issue