Adding base NU5 declarations and logic

This commit is contained in:
Steven Smith 2021-03-06 17:35:54 -08:00
parent 39a860c12b
commit 48d5142dc1
6 changed files with 50 additions and 1 deletions

View File

@ -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

View File

@ -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.

View File

@ -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
};

View File

@ -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.",
}
};

View File

@ -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);

View File

@ -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);