Skip to content

Commit b75e1ce

Browse files
authored
Decouple lite mode and client-side PrivateSend (#2893)
* Decouple lite mode and client-side PrivateSend `-enableprivatesend`: 1. off by default in lite mode but can be overridden 2. does not start mixing, use `-privatesendautostart` (default is off) or `privatesend` rpc instead * Disable PS when there is no wallet, do not auto-start mixing when wallet is locked * Check for `!fEnablePrivateSend` and `!fPrivateSendRunning` instead of `!pwalletMain` in ps client code * Add meaningful `privatesend` rpc error messages for various cases when mmixing is disabled
1 parent b9a7385 commit b75e1ce

File tree

12 files changed

+108
-94
lines changed

12 files changed

+108
-94
lines changed

src/dsnotificationinterface.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,17 @@ void CDSNotificationInterface::UpdatedBlockTip(const CBlockIndex *pindexNew, con
5656
if (fInitialDownload)
5757
return;
5858

59+
CPrivateSend::UpdatedBlockTip(pindexNew);
60+
#ifdef ENABLE_WALLET
61+
privateSendClient.UpdatedBlockTip(pindexNew);
62+
#endif // ENABLE_WALLET
63+
5964
if (fLiteMode)
6065
return;
6166

6267
llmq::quorumInstantSendManager->UpdatedBlockTip(pindexNew);
6368
llmq::chainLocksHandler->UpdatedBlockTip(pindexNew);
6469

65-
CPrivateSend::UpdatedBlockTip(pindexNew);
66-
#ifdef ENABLE_WALLET
67-
privateSendClient.UpdatedBlockTip(pindexNew);
68-
#endif // ENABLE_WALLET
6970
instantsend.UpdatedBlockTip(pindexNew);
7071
governance.UpdatedBlockTip(pindexNew, connman);
7172
llmq::quorumManager->UpdatedBlockTip(pindexNew, fInitialDownload);

src/init.cpp

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ void PrepareShutdown()
242242
bool fRPCInWarmup = RPCIsInWarmup(&statusmessage);
243243

244244
#ifdef ENABLE_WALLET
245-
if (!fLiteMode && !fRPCInWarmup) {
245+
if (privateSendClient.fEnablePrivateSend && !fRPCInWarmup) {
246246
// Stop PrivateSend, release keys
247-
privateSendClient.fEnablePrivateSend = false;
247+
privateSendClient.fPrivateSendRunning = false;
248248
privateSendClient.ResetPool();
249249
}
250250
if (pwalletMain)
@@ -600,7 +600,8 @@ std::string HelpMessage(HelpMessageMode mode)
600600

601601
#ifdef ENABLE_WALLET
602602
strUsage += HelpMessageGroup(_("PrivateSend options:"));
603-
strUsage += HelpMessageOpt("-enableprivatesend", strprintf(_("Enable use of automated PrivateSend for funds stored in this wallet (0-1, default: %u)"), 0));
603+
strUsage += HelpMessageOpt("-enableprivatesend", strprintf(_("Enable use of PrivateSend for funds stored in this wallet (0-1, default: %u)"), 0));
604+
strUsage += HelpMessageOpt("-privatesendautostart", strprintf(_("Start PrivateSend automatically (0-1, default: %u)"), DEFAULT_PRIVATESEND_AUTOSTART));
604605
strUsage += HelpMessageOpt("-privatesendmultisession", strprintf(_("Enable multiple PrivateSend mixing sessions per block, experimental (0-1, default: %u)"), DEFAULT_PRIVATESEND_MULTISESSION));
605606
strUsage += HelpMessageOpt("-privatesendsessions=<n>", strprintf(_("Use N separate masternodes in parallel to mix funds (%u-%u, default: %u)"), MIN_PRIVATESEND_SESSIONS, MAX_PRIVATESEND_SESSIONS, DEFAULT_PRIVATESEND_SESSIONS));
606607
strUsage += HelpMessageOpt("-privatesendrounds=<n>", strprintf(_("Use N separate masternodes for each denominated input to mix funds (%u-%u, default: %u)"), MIN_PRIVATESEND_ROUNDS, MAX_PRIVATESEND_ROUNDS, DEFAULT_PRIVATESEND_ROUNDS));
@@ -970,6 +971,8 @@ void InitParameterInteraction()
970971
if (nLiqProvTmp > 0) {
971972
gArgs.ForceSetArg("-enableprivatesend", "1");
972973
LogPrintf("%s: parameter interaction: -liquidityprovider=%d -> setting -enableprivatesend=1\n", __func__, nLiqProvTmp);
974+
gArgs.ForceSetArg("-privatesendautostart", "1");
975+
LogPrintf("%s: parameter interaction: -liquidityprovider=%d -> setting -privatesendautostart=1\n", __func__, nLiqProvTmp);
973976
gArgs.ForceSetArg("-privatesendsessions", itostr(MIN_PRIVATESEND_SESSIONS));
974977
LogPrintf("%s: parameter interaction: -liquidityprovider=%d -> setting -privatesendsessions=%d\n", __func__, nLiqProvTmp, itostr(std::numeric_limits<int>::max()));
975978
gArgs.ForceSetArg("-privatesendrounds", itostr(std::numeric_limits<int>::max()));
@@ -1740,7 +1743,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
17401743
LogPrintf("fLiteMode %d\n", fLiteMode);
17411744

17421745
if(fLiteMode) {
1743-
InitWarning(_("You are starting in lite mode, all Dash-specific functionality is disabled."));
1746+
InitWarning(_("You are starting in lite mode, most Dash-specific functionality is disabled."));
17441747
}
17451748

17461749
if((!fLiteMode && fTxIndex == false)
@@ -1996,17 +1999,26 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
19961999
nMaxRounds = std::numeric_limits<int>::max();
19972000
}
19982001

1999-
privateSendClient.fEnablePrivateSend = gArgs.GetBoolArg("-enableprivatesend", false);
2002+
if (pwalletMain == nullptr) {
2003+
privateSendClient.fEnablePrivateSend = privateSendClient.fPrivateSendRunning = false;
2004+
} else {
2005+
privateSendClient.fEnablePrivateSend = gArgs.GetBoolArg("-enableprivatesend", !fLiteMode);
2006+
privateSendClient.fPrivateSendRunning = pwalletMain->IsLocked() ? false : gArgs.GetBoolArg("-privatesendautostart", DEFAULT_PRIVATESEND_AUTOSTART);
2007+
}
20002008
privateSendClient.fPrivateSendMultiSession = gArgs.GetBoolArg("-privatesendmultisession", DEFAULT_PRIVATESEND_MULTISESSION);
20012009
privateSendClient.nPrivateSendSessions = std::min(std::max((int)gArgs.GetArg("-privatesendsessions", DEFAULT_PRIVATESEND_SESSIONS), MIN_PRIVATESEND_SESSIONS), MAX_PRIVATESEND_SESSIONS);
20022010
privateSendClient.nPrivateSendRounds = std::min(std::max((int)gArgs.GetArg("-privatesendrounds", DEFAULT_PRIVATESEND_ROUNDS), MIN_PRIVATESEND_ROUNDS), nMaxRounds);
20032011
privateSendClient.nPrivateSendAmount = std::min(std::max((int)gArgs.GetArg("-privatesendamount", DEFAULT_PRIVATESEND_AMOUNT), MIN_PRIVATESEND_AMOUNT), MAX_PRIVATESEND_AMOUNT);
20042012
privateSendClient.nPrivateSendDenoms = std::min(std::max((int)gArgs.GetArg("-privatesenddenoms", DEFAULT_PRIVATESEND_DENOMS), MIN_PRIVATESEND_DENOMS), MAX_PRIVATESEND_DENOMS);
20052013

2006-
LogPrintf("PrivateSend liquidityprovider: %d\n", privateSendClient.nLiquidityProvider);
2007-
LogPrintf("PrivateSend rounds: %d\n", privateSendClient.nPrivateSendRounds);
2008-
LogPrintf("PrivateSend amount: %d\n", privateSendClient.nPrivateSendAmount);
2009-
LogPrintf("PrivateSend denoms: %d\n", privateSendClient.nPrivateSendDenoms);
2014+
if (privateSendClient.fEnablePrivateSend) {
2015+
LogPrintf("PrivateSend: liquidityprovider=%d, autostart=%d, multisession=%d, "
2016+
"sessions=%d, rounds=%d, amount=%d, denoms=%d\n",
2017+
privateSendClient.nLiquidityProvider, privateSendClient.fPrivateSendRunning,
2018+
privateSendClient.fPrivateSendMultiSession, privateSendClient.nPrivateSendSessions,
2019+
privateSendClient.nPrivateSendRounds, privateSendClient.nPrivateSendAmount,
2020+
privateSendClient.nPrivateSendDenoms);
2021+
}
20102022
#endif // ENABLE_WALLET
20112023

20122024
CPrivateSend::InitStandardDenominations();
@@ -2062,17 +2074,19 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
20622074
if (!fLiteMode) {
20632075
scheduler.scheduleEvery(boost::bind(&CNetFulfilledRequestManager::DoMaintenance, boost::ref(netfulfilledman)), 60 * 1000);
20642076
scheduler.scheduleEvery(boost::bind(&CMasternodeSync::DoMaintenance, boost::ref(masternodeSync), boost::ref(*g_connman)), 1 * 1000);
2065-
scheduler.scheduleEvery(boost::bind(&CMasternodeUtils::DoMaintenance, boost::ref(*g_connman)), 1 * 1000);
20662077

20672078
scheduler.scheduleEvery(boost::bind(&CGovernanceManager::DoMaintenance, boost::ref(governance), boost::ref(*g_connman)), 60 * 5 * 1000);
20682079

20692080
scheduler.scheduleEvery(boost::bind(&CInstantSend::DoMaintenance, boost::ref(instantsend)), 60 * 1000);
2081+
}
2082+
2083+
scheduler.scheduleEvery(boost::bind(&CMasternodeUtils::DoMaintenance, boost::ref(*g_connman)), 1 * 1000);
20702084

2071-
if (fMasternodeMode)
2072-
scheduler.scheduleEvery(boost::bind(&CPrivateSendServer::DoMaintenance, boost::ref(privateSendServer), boost::ref(*g_connman)), 1 * 1000);
2085+
if (fMasternodeMode) {
2086+
scheduler.scheduleEvery(boost::bind(&CPrivateSendServer::DoMaintenance, boost::ref(privateSendServer), boost::ref(*g_connman)), 1 * 1000);
20732087
#ifdef ENABLE_WALLET
2074-
else
2075-
scheduler.scheduleEvery(boost::bind(&CPrivateSendClientManager::DoMaintenance, boost::ref(privateSendClient), boost::ref(*g_connman)), 1 * 1000);
2088+
} else if (privateSendClient.fEnablePrivateSend) {
2089+
scheduler.scheduleEvery(boost::bind(&CPrivateSendClientManager::DoMaintenance, boost::ref(privateSendClient), boost::ref(*g_connman)), 1 * 1000);
20762090
#endif // ENABLE_WALLET
20772091
}
20782092

src/masternode/masternode-utils.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,6 @@ void CMasternodeUtils::ProcessMasternodeConnections(CConnman& connman)
9292

9393
void CMasternodeUtils::DoMaintenance(CConnman& connman)
9494
{
95-
if(fLiteMode) return; // disable all Dash specific functionality
96-
9795
if(!masternodeSync.IsBlockchainSynced() || ShutdownRequested())
9896
return;
9997

src/privatesend/privatesend-client.cpp

Lines changed: 19 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ CPrivateSendClientManager privateSendClient;
2525
void CPrivateSendClientManager::ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStream& vRecv, CConnman& connman)
2626
{
2727
if (fMasternodeMode) return;
28-
if (fLiteMode) return; // ignore all Dash related functionality
28+
if (!fEnablePrivateSend) return;
2929
if (!masternodeSync.IsBlockchainSynced()) return;
3030

3131
if (!CheckDiskSpace()) {
3232
ResetPool();
33-
fEnablePrivateSend = false;
33+
fPrivateSendRunning = false;
3434
LogPrintf("CPrivateSendClientManager::ProcessMessage -- Not enough disk space, disabling PrivateSend.\n");
3535
return;
3636
}
@@ -131,7 +131,7 @@ void CPrivateSendClientManager::ProcessMessage(CNode* pfrom, const std::string&
131131
void CPrivateSendClientSession::ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStream& vRecv, CConnman& connman)
132132
{
133133
if (fMasternodeMode) return;
134-
if (fLiteMode) return; // ignore all Dash related functionality
134+
if (!privateSendClient.fEnablePrivateSend) return;
135135
if (!masternodeSync.IsBlockchainSynced()) return;
136136

137137
if (strCommand == NetMsgType::DSSTATUSUPDATE) {
@@ -265,7 +265,7 @@ void CPrivateSendClientSession::SetNull()
265265
//
266266
void CPrivateSendClientSession::UnlockCoins()
267267
{
268-
if (!pwalletMain) return;
268+
if (!privateSendClient.fEnablePrivateSend) return;
269269

270270
while (true) {
271271
TRY_LOCK(pwalletMain->cs_wallet, lockWallet);
@@ -428,7 +428,7 @@ void CPrivateSendClientManager::CheckTimeout()
428428

429429
CheckQueue();
430430

431-
if (!fEnablePrivateSend) return;
431+
if (!fEnablePrivateSend || !fPrivateSendRunning) return;
432432

433433
LOCK(cs_deqsessions);
434434
for (auto& session : deqSessions) {
@@ -548,7 +548,7 @@ bool CPrivateSendClientSession::CheckPoolStateUpdate(CPrivateSendStatusUpdate ps
548548
//
549549
bool CPrivateSendClientSession::SignFinalTransaction(const CTransaction& finalTransactionNew, CNode* pnode, CConnman& connman)
550550
{
551-
if (!pwalletMain) return false;
551+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
552552

553553
if (fMasternodeMode || pnode == nullptr) return false;
554554
if (!mixingMasternode) return false;
@@ -699,18 +699,13 @@ bool CPrivateSendClientManager::WaitForAnotherBlock()
699699

700700
bool CPrivateSendClientManager::CheckAutomaticBackup()
701701
{
702-
if (!pwalletMain) {
703-
LogPrint(BCLog::PRIVATESEND, "CPrivateSendClientManager::CheckAutomaticBackup -- Wallet is not initialized, no mixing available.\n");
704-
strAutoDenomResult = _("Wallet is not initialized") + ", " + _("no mixing available.");
705-
fEnablePrivateSend = false; // no mixing
706-
return false;
707-
}
702+
if (!fEnablePrivateSend || !fPrivateSendRunning) return false;
708703

709704
switch (nWalletBackups) {
710705
case 0:
711706
LogPrint(BCLog::PRIVATESEND, "CPrivateSendClientManager::CheckAutomaticBackup -- Automatic backups disabled, no mixing available.\n");
712707
strAutoDenomResult = _("Automatic backups disabled") + ", " + _("no mixing available.");
713-
fEnablePrivateSend = false; // stop mixing
708+
fPrivateSendRunning = false; // stop mixing
714709
pwalletMain->nKeysLeftSinceAutoBackup = 0; // no backup, no "keys since last backup"
715710
return false;
716711
case -1:
@@ -734,7 +729,7 @@ bool CPrivateSendClientManager::CheckAutomaticBackup()
734729
LogPrint(BCLog::PRIVATESEND, "CPrivateSendClientManager::CheckAutomaticBackup -- Very low number of keys left: %d, no mixing available.\n", pwalletMain->nKeysLeftSinceAutoBackup);
735730
strAutoDenomResult = strprintf(_("Very low number of keys left: %d") + ", " + _("no mixing available."), pwalletMain->nKeysLeftSinceAutoBackup);
736731
// It's getting really dangerous, stop mixing
737-
fEnablePrivateSend = false;
732+
fPrivateSendRunning = false;
738733
return false;
739734
} else if (pwalletMain->nKeysLeftSinceAutoBackup < PRIVATESEND_KEYS_THRESHOLD_WARNING) {
740735
// Low number of keys left but it's still more or less safe to continue
@@ -782,10 +777,7 @@ bool CPrivateSendClientSession::DoAutomaticDenominating(CConnman& connman, bool
782777
return false;
783778
}
784779

785-
if (!pwalletMain) {
786-
strAutoDenomResult = _("Wallet is not initialized");
787-
return false;
788-
}
780+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
789781

790782
CAmount nBalanceNeedsAnonymized;
791783

@@ -953,18 +945,13 @@ bool CPrivateSendClientSession::DoAutomaticDenominating(CConnman& connman, bool
953945
bool CPrivateSendClientManager::DoAutomaticDenominating(CConnman& connman, bool fDryRun)
954946
{
955947
if (fMasternodeMode) return false; // no client-side mixing on masternodes
956-
if (!fEnablePrivateSend) return false;
948+
if (!fEnablePrivateSend || !fPrivateSendRunning) return false;
957949

958950
if (!masternodeSync.IsBlockchainSynced()) {
959951
strAutoDenomResult = _("Can't mix while sync in progress.");
960952
return false;
961953
}
962954

963-
if (!pwalletMain) {
964-
strAutoDenomResult = _("Wallet is not initialized");
965-
return false;
966-
}
967-
968955
if (!fDryRun && pwalletMain->IsLocked(true)) {
969956
strAutoDenomResult = _("Wallet is locked.");
970957
return false;
@@ -1048,7 +1035,7 @@ CDeterministicMNCPtr CPrivateSendClientManager::GetRandomNotUsedMasternode()
10481035

10491036
bool CPrivateSendClientSession::JoinExistingQueue(CAmount nBalanceNeedsAnonymized, CConnman& connman)
10501037
{
1051-
if (!pwalletMain) return false;
1038+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
10521039

10531040
auto mnList = deterministicMNManager->GetListAtChainTip();
10541041

@@ -1116,7 +1103,7 @@ bool CPrivateSendClientSession::JoinExistingQueue(CAmount nBalanceNeedsAnonymize
11161103

11171104
bool CPrivateSendClientSession::StartNewQueue(CAmount nBalanceNeedsAnonymized, CConnman& connman)
11181105
{
1119-
if (!pwalletMain) return false;
1106+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
11201107
if (nBalanceNeedsAnonymized <= 0) return false;
11211108

11221109
int nTries = 0;
@@ -1283,10 +1270,7 @@ bool CPrivateSendClientSession::SubmitDenominate(CConnman& connman)
12831270

12841271
bool CPrivateSendClientSession::SelectDenominate(std::string& strErrorRet, std::vector<std::pair<CTxDSIn, CTxOut> >& vecPSInOutPairsRet)
12851272
{
1286-
if (!pwalletMain) {
1287-
strErrorRet = "Wallet is not initialized";
1288-
return false;
1289-
}
1273+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
12901274

12911275
if (pwalletMain->IsLocked(true)) {
12921276
strErrorRet = "Wallet locked, unable to create transaction!";
@@ -1392,7 +1376,7 @@ bool CPrivateSendClientSession::PrepareDenominate(int nMinRounds, int nMaxRounds
13921376
// Create collaterals by looping through inputs grouped by addresses
13931377
bool CPrivateSendClientSession::MakeCollateralAmounts(CConnman& connman)
13941378
{
1395-
if (!pwalletMain) return false;
1379+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
13961380

13971381
std::vector<CompactTallyItem> vecTally;
13981382
if (!pwalletMain->SelectCoinsGroupedByAddresses(vecTally, false, false)) {
@@ -1425,7 +1409,7 @@ bool CPrivateSendClientSession::MakeCollateralAmounts(CConnman& connman)
14251409
// Split up large inputs or create fee sized inputs
14261410
bool CPrivateSendClientSession::MakeCollateralAmounts(const CompactTallyItem& tallyItem, bool fTryDenominated, CConnman& connman)
14271411
{
1428-
if (!pwalletMain) return false;
1412+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
14291413

14301414
LOCK2(cs_main, pwalletMain->cs_wallet);
14311415

@@ -1501,7 +1485,7 @@ bool CPrivateSendClientSession::MakeCollateralAmounts(const CompactTallyItem& ta
15011485
// Create denominations by looping through inputs grouped by addresses
15021486
bool CPrivateSendClientSession::CreateDenominated(CAmount nBalanceToDenominate, CConnman& connman)
15031487
{
1504-
if (!pwalletMain) return false;
1488+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
15051489

15061490
LOCK2(cs_main, pwalletMain->cs_wallet);
15071491

@@ -1534,7 +1518,7 @@ bool CPrivateSendClientSession::CreateDenominated(CAmount nBalanceToDenominate,
15341518
// Create denominations
15351519
bool CPrivateSendClientSession::CreateDenominated(CAmount nBalanceToDenominate, const CompactTallyItem& tallyItem, bool fCreateMixingCollaterals, CConnman& connman)
15361520
{
1537-
if (!pwalletMain) return false;
1521+
if (!privateSendClient.fEnablePrivateSend || !privateSendClient.fPrivateSendRunning) return false;
15381522

15391523
std::vector<CRecipient> vecSend;
15401524
CKeyHolderStorage keyHolderStorageDenom;
@@ -1679,7 +1663,7 @@ void CPrivateSendClientManager::UpdatedBlockTip(const CBlockIndex* pindex)
16791663

16801664
void CPrivateSendClientManager::DoMaintenance(CConnman& connman)
16811665
{
1682-
if (fLiteMode) return; // disable all Dash specific functionality
1666+
if (!fEnablePrivateSend) return;
16831667
if (fMasternodeMode) return; // no client-side mixing on masternodes
16841668

16851669
if (!masternodeSync.IsBlockchainSynced() || ShutdownRequested()) return;

src/privatesend/privatesend-client.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ static const int DEFAULT_PRIVATESEND_AMOUNT = 1000;
3232
static const int DEFAULT_PRIVATESEND_DENOMS = 300;
3333
static const int DEFAULT_PRIVATESEND_LIQUIDITY = 0;
3434

35+
static const bool DEFAULT_PRIVATESEND_AUTOSTART = false;
3536
static const bool DEFAULT_PRIVATESEND_MULTISESSION = false;
3637

3738
// Warn user if mixing in gui or try to create backup if mixing in daemon mode
@@ -199,6 +200,7 @@ class CPrivateSendClientManager : public CPrivateSendBaseManager
199200
int nPrivateSendDenoms;
200201
int nLiquidityProvider;
201202
bool fEnablePrivateSend;
203+
bool fPrivateSendRunning;
202204
bool fPrivateSendMultiSession;
203205

204206
int nCachedNumBlocks; //used for the overview screen
@@ -217,6 +219,7 @@ class CPrivateSendClientManager : public CPrivateSendBaseManager
217219
nPrivateSendDenoms(DEFAULT_PRIVATESEND_DENOMS),
218220
nLiquidityProvider(DEFAULT_PRIVATESEND_LIQUIDITY),
219221
fEnablePrivateSend(false),
222+
fPrivateSendRunning(false),
220223
fPrivateSendMultiSession(DEFAULT_PRIVATESEND_MULTISESSION),
221224
nCachedNumBlocks(std::numeric_limits<int>::max()),
222225
fCreateAutoBackups(true)

src/privatesend/privatesend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ void CPrivateSend::CheckDSTXes(int nHeight)
503503

504504
void CPrivateSend::UpdatedBlockTip(const CBlockIndex* pindex)
505505
{
506-
if (pindex && !fLiteMode && masternodeSync.IsBlockchainSynced()) {
506+
if (pindex && masternodeSync.IsBlockchainSynced()) {
507507
CheckDSTXes(pindex->nHeight);
508508
}
509509
}

0 commit comments

Comments
 (0)