This commit is contained in:
2026-02-18 23:32:06 -08:00
parent c89f018967
commit b4f1e4161c
2 changed files with 8 additions and 20 deletions
+8 -1
View File
@@ -131,7 +131,14 @@ public:
nMaxMoneyOut = 999999999999 * COIN; nMaxMoneyOut = 999999999999 * COIN;
/** Height or Time Based Activations **/ /** Height or Time Based Activations **/
nLastPOWBlock = 100; //
// Hybrid PoW/PoS schedule:
// - PoW is permitted for ~50 years (based on target spacing)
// - After that, the chain becomes PoS-only
//
// We use the Julian year (365.25 days) for a deterministic conversion.
static const int64_t JULIAN_YEAR_SECONDS = 31557600; // 365.25 * 24 * 60 * 60
nLastPOWBlock = (int)((50LL * JULIAN_YEAR_SECONDS) / nTargetSpacing);
// Hybrid consensus: PoW mining and PoS staking are both permitted beginning at block 2. // Hybrid consensus: PoW mining and PoS staking are both permitted beginning at block 2.
// PoW remains permitted until nLastPOWBlock. // PoW remains permitted until nLastPOWBlock.
-19
View File
@@ -131,25 +131,6 @@ static bool SelectBlockFromCandidates(
LogPrintf("SelectBlockFromCandidates: selection hash=%s\n", hashBest.ToString().c_str()); LogPrintf("SelectBlockFromCandidates: selection hash=%s\n", hashBest.ToString().c_str());
return fSelected; return fSelected;
} }
// the selection hash is divided by 2**32 so that proof-of-stake block
// is always favored over proof-of-work block. this is to preserve
// the energy efficiency property
if (pindex->IsProofOfStake())
hashSelection >>= 32;
if (fSelected && hashSelection < hashBest) {
hashBest = hashSelection;
*pindexSelected = (const CBlockIndex*)pindex;
} else if (!fSelected) {
fSelected = true;
hashBest = hashSelection;
*pindexSelected = (const CBlockIndex*)pindex;
}
}
if (GetBoolArg("-printstakemodifier", false))
LogPrintf("SelectBlockFromCandidates: selection hash=%s\n", hashBest.ToString().c_str());
return fSelected;
}
// Stake Modifier (hash modifier of proof-of-stake): // Stake Modifier (hash modifier of proof-of-stake):
// The purpose of stake modifier is to prevent a txout (coin) owner from // The purpose of stake modifier is to prevent a txout (coin) owner from