44 int64_t blockTime = 0;
52 bool is_chain_synced = blockTime + 60 * 60 >
lastProcess;
89 LogPrintf(
"%s - invalid asset %d\n", __func__, currentAsset);
92 switch (currentAsset) {
115 const int nextAsset =
GetNextAsset(RequestedMasternodeAssets);
117 LogPrintf(
"%s - Sync has finished\n", __func__);
128 return _(
"MNs synchronization pending...");
130 return _(
"Synchronizing sporks...");
132 return _(
"Synchronizing masternodes...");
134 return _(
"Synchronizing masternode winners...");
136 return _(
"Synchronizing budgets...");
138 return _(
"Synchronization failed");
140 return _(
"Synchronization finished");
153 if (nItemID != RequestedMasternodeAssets)
return;
158 if (nItemID != RequestedMasternodeAssets)
return;
246 g_connman->ForEachNodeInRandomOrderContinueIf([sync, fLegacyMnObsolete](
CNode* pnode){
253 LogPrintf(
"%s - ERROR - Sync has failed on %s, will retry later\n", __func__, reason);
288 if (fLegacyMnObsolete) {
303 if (lastMasternodeList == 0 &&
333 if (fLegacyMnObsolete) {
349 if (lastMasternodeWinner == 0 &&
395 if (lastBudgetItem == 0 &&
CBudgetManager g_budgetman
const CChainParams & Params()
Return the currently selected parameters.
void ManageStatus()
Manage status of main Masternode.
bool IsRegTestNet() const
int CountEnabled(bool only_legacy=false) const
bool RequestMnList(CNode *pnode)
void ProcessSyncStatusMsg(int nItemID, int itemCount)
void ClearFulfilledRequest()
void UpdateBlockchainSynced(bool isRegTestNet)
bool SyncWithNode(CNode *pnode, bool fLegacyMnObsolete)
static int GetNextAsset(int currentAsset)
int RequestedMasternodeAttempt
void SyncRegtest(CNode *pnode)
std::atomic< int64_t > lastProcess
int countMasternodeWinner
int64_t nAssetSyncStarted
std::string GetSyncStatus()
void syncTimeout(const std::string &reason)
void AddFulfilledRequest(const CService &addr, const std::string &strRequest)
bool HasFulfilledRequest(const CService &addr, const std::string &strRequest) const
CSerializedNetMsg Make(int nFlags, std::string sCommand, Args &&... args)
Information about a peer.
std::atomic< int > nVersion
int GetSendVersion() const
bool IsSporkActive(SporkId nSporkID)
bool IsSporkListSynced() const
bool IsBlockchainSynced() const
void ResetLastBudgetItem()
int64_t GetlastMasternodeWinner() const
int64_t GetlastMasternodeList() const
bool CanUpdateChainSync(int64_t cur_time) const
void SetBlockchainSync(bool f, int64_t cur_time)
void SetCurrentSyncPhase(int sync_phase)
int64_t GetlastBudgetItem() const
std::unique_ptr< CDeterministicMNManager > deterministicMNManager
std::unique_ptr< CConnman > g_connman
#define LogPrint(category,...)
CMasternodeSync masternodeSync
#define MASTERNODE_SYNC_TIMEOUT
CMasternodeMan mnodeman
Masternode manager.
CActiveMasternode activeMasternode
Keep track of the active Masternode.
const char * BUDGETVOTESYNC
The budgetvotesync message is used to request budget vote data from connected peers.
const char * GETMNWINNERS
The getmnwinners message is used to request winning masternode data from connected peers.
const char * GETSPORKS
The getsporks message is used to request spork data from connected peers.
CNetFulfilledRequestManager g_netfulfilledman(DEFAULT_ITEMS_FILTER_SIZE)
CSporkManager sporkManager
@ SPORK_9_MASTERNODE_BUDGET_ENFORCEMENT
@ SPORK_13_ENABLE_SUPERBLOCKS
@ SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT
#define TRY_LOCK(cs, name)
std::string _(const char *psz)
Translation function: Call Translate signal on UI interface, which returns a Optional result.
TierTwoSyncState g_tiertwo_sync_state
#define MASTERNODE_SYNC_MNW
#define MASTERNODE_SYNC_SPORKS
#define MASTERNODE_SYNC_BUDGET_PROP
#define MASTERNODE_SYNC_BUDGET
#define MASTERNODE_SYNC_THRESHOLD
#define MASTERNODE_SYNC_INITIAL
#define MASTERNODE_SYNC_BUDGET_FIN
#define MASTERNODE_SYNC_FINISHED
#define MASTERNODE_SYNC_FAILED
#define MASTERNODE_SYNC_LIST
int64_t GetTime()
DEPRECATED Use either GetSystemTimeInSeconds (not mockable) or GetTime<T> (mockable)
int ActiveProtocol()
See whether the protocol update is enforced for connected nodes.
int64_t g_best_block_time
std::atomic< bool > fImporting
std::atomic< bool > fReindex