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
|
||||
HEARTWOOD_BRANCH_ID = 0xF5B9230B
|
||||
CANOPY_BRANCH_ID = 0xE9FF75A6
|
||||
NU5_BRANCH_ID = 0xF919A198
|
||||
|
||||
# The maximum number of nodes a single test can spawn
|
||||
MAX_NODES = 8
|
||||
|
|
|
@ -133,6 +133,9 @@ public:
|
|||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight = 1046400;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].hashActivationBlock =
|
||||
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;
|
||||
|
||||
|
@ -417,6 +420,9 @@ public:
|
|||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight = 1028500;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].hashActivationBlock =
|
||||
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;
|
||||
|
||||
|
@ -658,7 +664,10 @@ public:
|
|||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nProtocolVersion = 170012;
|
||||
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight =
|
||||
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;
|
||||
// Defined funding streams can be enabled with node config flags.
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ enum UpgradeIndex : uint32_t {
|
|||
UPGRADE_BLOSSOM,
|
||||
UPGRADE_HEARTWOOD,
|
||||
UPGRADE_CANOPY,
|
||||
UPGRADE_NU5,
|
||||
// NOTE: Also add new upgrades to NetworkUpgradeInfo in upgrades.cpp
|
||||
MAX_NETWORK_UPGRADES
|
||||
};
|
||||
|
|
|
@ -43,6 +43,11 @@ const struct NUInfo NetworkUpgradeInfo[Consensus::MAX_NETWORK_UPGRADES] = {
|
|||
/*.nBranchId =*/ 0xe9ff75a6,
|
||||
/*.strName =*/ "Canopy",
|
||||
/*.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);
|
||||
}
|
||||
|
||||
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() {
|
||||
std::vector<unsigned char, secure_allocator<unsigned char>> rawSeed(32);
|
||||
|
|
|
@ -54,6 +54,11 @@ const Consensus::Params& RegtestActivateCanopy();
|
|||
|
||||
void RegtestDeactivateCanopy();
|
||||
|
||||
const Consensus::Params& RegtestActivateNU5(bool updatePow, int nu5ActivationHeight = Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
const Consensus::Params& RegtestActivateNU5();
|
||||
|
||||
void RegtestDeactivateNU5();
|
||||
|
||||
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey();
|
||||
|
||||
CKey AddTestCKeyToKeyStore(CBasicKeyStore& keyStore);
|
||||
|
|
Loading…
Reference in New Issue