fix: The idea behind fDIP0001LockedInAtTip was to indicate that it WAS locked in, not that it IS locked in (#1666)
This commit is contained in:
parent
c3bc06bbf8
commit
d286198728
@ -38,8 +38,8 @@ void CDSNotificationInterface::UpdatedBlockTip(const CBlockIndex *pindexNew, con
|
||||
|
||||
bool fDIP0001ActiveAtTipTmp = fDIP0001ActiveAtTip;
|
||||
// Update global flags
|
||||
fDIP0001LockedInAtTip = (VersionBitsState(pindexNew, Params().GetConsensus(), Consensus::DEPLOYMENT_DIP0001, versionbitscache) == THRESHOLD_LOCKED_IN);
|
||||
fDIP0001ActiveAtTip = (VersionBitsState(pindexNew, Params().GetConsensus(), Consensus::DEPLOYMENT_DIP0001, versionbitscache) == THRESHOLD_ACTIVE);
|
||||
fDIP0001WasLockedIn = fDIP0001ActiveAtTip || (VersionBitsState(pindexNew, Params().GetConsensus(), Consensus::DEPLOYMENT_DIP0001, versionbitscache) == THRESHOLD_LOCKED_IN);
|
||||
|
||||
// Update min fees only if activation changed and we are using default fees
|
||||
if (fDIP0001ActiveAtTipTmp != fDIP0001ActiveAtTip) {
|
||||
|
@ -701,7 +701,7 @@ bool CMasternodePaymentVote::IsValid(CNode* pnode, int nValidationHeight, std::s
|
||||
strError = strprintf("Masternode is not in the top %d (%d)", MNPAYMENTS_SIGNATURES_TOTAL*2, nRank);
|
||||
LogPrintf("CMasternodePaymentVote::IsValid -- Error: %s\n", strError);
|
||||
// do not ban nodes before DIP0001 is locked in to avoid banning majority of (old) masternodes
|
||||
if (fDIP0001LockedInAtTip) {
|
||||
if (fDIP0001WasLockedIn) {
|
||||
Misbehaving(pnode->GetId(), 20);
|
||||
}
|
||||
}
|
||||
@ -783,7 +783,7 @@ void CMasternodePaymentVote::Relay(CConnman& connman)
|
||||
if (!masternodeSync.IsWinnersListSynced()) return;
|
||||
CInv inv(MSG_MASTERNODE_PAYMENT_VOTE, GetHash());
|
||||
// relay votes only strictly to new nodes until DIP0001 is locked in to avoid being banned by majority of (old) masternodes
|
||||
connman.RelayInv(inv, fDIP0001LockedInAtTip ? mnpayments.GetMinMasternodePaymentsProto() : MIN_MASTERNODE_PAYMENT_PROTO_VERSION_2);
|
||||
connman.RelayInv(inv, fDIP0001WasLockedIn ? mnpayments.GetMinMasternodePaymentsProto() : MIN_MASTERNODE_PAYMENT_PROTO_VERSION_2);
|
||||
}
|
||||
|
||||
bool CMasternodePaymentVote::CheckSignature(const CPubKey& pubKeyMasternode, int nValidationHeight, int &nDos)
|
||||
|
@ -90,7 +90,7 @@ bool CMasternode::UpdateFromNewBroadcast(CMasternodeBroadcast& mnb, CConnman& co
|
||||
//
|
||||
arith_uint256 CMasternode::CalculateScore(const uint256& blockHash)
|
||||
{
|
||||
if (fDIP0001LockedInAtTip) {
|
||||
if (fDIP0001WasLockedIn) {
|
||||
// Deterministically calculate a "score" for a Masternode based on any given (block)hash
|
||||
CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION);
|
||||
ss << vin.prevout << nCollateralMinConfBlockHash << blockHash;
|
||||
|
@ -85,7 +85,7 @@ uint64_t nPruneTarget = 0;
|
||||
bool fAlerts = DEFAULT_ALERTS;
|
||||
bool fEnableReplacement = DEFAULT_ENABLE_REPLACEMENT;
|
||||
|
||||
std::atomic<bool> fDIP0001LockedInAtTip{false};
|
||||
std::atomic<bool> fDIP0001WasLockedIn{false};
|
||||
std::atomic<bool> fDIP0001ActiveAtTip{false};
|
||||
|
||||
uint256 hashAssumeValid;
|
||||
|
@ -165,7 +165,7 @@ extern bool fEnableReplacement;
|
||||
extern std::map<uint256, int64_t> mapRejectedBlocks;
|
||||
|
||||
static const int DIP0001_PROTOCOL_VERSION = 70208;
|
||||
extern std::atomic<bool> fDIP0001LockedInAtTip;
|
||||
extern std::atomic<bool> fDIP0001WasLockedIn;
|
||||
extern std::atomic<bool> fDIP0001ActiveAtTip;
|
||||
|
||||
/** Block hash whose ancestors we will assume to have valid scripts without checking them. */
|
||||
|
Loading…
Reference in New Issue
Block a user