mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 21:12:48 +01:00
Merge pull request #4942
9406471
Write fee estimate and peers files only when initialized (Wladimir J. van der Laan)
This commit is contained in:
commit
992ab87114
27
src/init.cpp
27
src/init.cpp
@ -47,6 +47,7 @@ using namespace std;
|
|||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
CWallet* pwalletMain = NULL;
|
CWallet* pwalletMain = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
bool fFeeEstimatesInitialized = false;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
// Win32 LevelDB doesn't use filedescriptors, and the ones used for
|
// Win32 LevelDB doesn't use filedescriptors, and the ones used for
|
||||||
@ -119,6 +120,10 @@ void Shutdown()
|
|||||||
if (!lockShutdown)
|
if (!lockShutdown)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/// Note: Shutdown() must be able to handle cases in which AppInit2() failed part of the way,
|
||||||
|
/// for example if the data directory was found to be locked.
|
||||||
|
/// Be sure that anything that writes files or flushes caches only does this if the respective
|
||||||
|
/// module was initialized.
|
||||||
RenameThread("bitcoin-shutoff");
|
RenameThread("bitcoin-shutoff");
|
||||||
mempool.AddTransactionsUpdated(1);
|
mempool.AddTransactionsUpdated(1);
|
||||||
StopRPCThreads();
|
StopRPCThreads();
|
||||||
@ -130,6 +135,7 @@ void Shutdown()
|
|||||||
StopNode();
|
StopNode();
|
||||||
UnregisterNodeSignals(GetNodeSignals());
|
UnregisterNodeSignals(GetNodeSignals());
|
||||||
|
|
||||||
|
if (fFeeEstimatesInitialized)
|
||||||
{
|
{
|
||||||
boost::filesystem::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
|
boost::filesystem::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
|
||||||
CAutoFile est_fileout(fopen(est_path.string().c_str(), "wb"), SER_DISK, CLIENT_VERSION);
|
CAutoFile est_fileout(fopen(est_path.string().c_str(), "wb"), SER_DISK, CLIENT_VERSION);
|
||||||
@ -137,6 +143,7 @@ void Shutdown()
|
|||||||
mempool.WriteFeeEstimates(est_fileout);
|
mempool.WriteFeeEstimates(est_fileout);
|
||||||
else
|
else
|
||||||
LogPrintf("%s: Failed to write fee estimates to %s\n", __func__, est_path.string());
|
LogPrintf("%s: Failed to write fee estimates to %s\n", __func__, est_path.string());
|
||||||
|
fFeeEstimatesInitialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -1059,6 +1066,7 @@ bool AppInit2(boost::thread_group& threadGroup)
|
|||||||
// Allowed to fail as this file IS missing on first startup.
|
// Allowed to fail as this file IS missing on first startup.
|
||||||
if (est_filein)
|
if (est_filein)
|
||||||
mempool.ReadFeeEstimates(est_filein);
|
mempool.ReadFeeEstimates(est_filein);
|
||||||
|
fFeeEstimatesInitialized = true;
|
||||||
|
|
||||||
// ********************************************************* Step 8: load wallet
|
// ********************************************************* Step 8: load wallet
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
@ -1215,22 +1223,7 @@ bool AppInit2(boost::thread_group& threadGroup)
|
|||||||
}
|
}
|
||||||
threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles));
|
threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles));
|
||||||
|
|
||||||
// ********************************************************* Step 10: load peers
|
// ********************************************************* Step 10: start node
|
||||||
|
|
||||||
uiInterface.InitMessage(_("Loading addresses..."));
|
|
||||||
|
|
||||||
nStart = GetTimeMillis();
|
|
||||||
|
|
||||||
{
|
|
||||||
CAddrDB adb;
|
|
||||||
if (!adb.Read(addrman))
|
|
||||||
LogPrintf("Invalid or missing peers.dat; recreating\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
LogPrintf("Loaded %i addresses from peers.dat %dms\n",
|
|
||||||
addrman.size(), GetTimeMillis() - nStart);
|
|
||||||
|
|
||||||
// ********************************************************* Step 11: start node
|
|
||||||
|
|
||||||
if (!CheckDiskSpace())
|
if (!CheckDiskSpace())
|
||||||
return false;
|
return false;
|
||||||
@ -1259,7 +1252,7 @@ bool AppInit2(boost::thread_group& threadGroup)
|
|||||||
GenerateBitcoins(GetBoolArg("-gen", false), pwalletMain, GetArg("-genproclimit", -1));
|
GenerateBitcoins(GetBoolArg("-gen", false), pwalletMain, GetArg("-genproclimit", -1));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ********************************************************* Step 12: finished
|
// ********************************************************* Step 11: finished
|
||||||
|
|
||||||
uiInterface.InitMessage(_("Done loading"));
|
uiInterface.InitMessage(_("Done loading"));
|
||||||
|
|
||||||
|
18
src/net.cpp
18
src/net.cpp
@ -78,6 +78,7 @@ uint64_t nLocalHostNonce = 0;
|
|||||||
static std::vector<ListenSocket> vhListenSocket;
|
static std::vector<ListenSocket> vhListenSocket;
|
||||||
CAddrMan addrman;
|
CAddrMan addrman;
|
||||||
int nMaxConnections = 125;
|
int nMaxConnections = 125;
|
||||||
|
bool fAddressesInitialized = false;
|
||||||
|
|
||||||
vector<CNode*> vNodes;
|
vector<CNode*> vNodes;
|
||||||
CCriticalSection cs_vNodes;
|
CCriticalSection cs_vNodes;
|
||||||
@ -1739,6 +1740,18 @@ void static Discover(boost::thread_group& threadGroup)
|
|||||||
|
|
||||||
void StartNode(boost::thread_group& threadGroup)
|
void StartNode(boost::thread_group& threadGroup)
|
||||||
{
|
{
|
||||||
|
uiInterface.InitMessage(_("Loading addresses..."));
|
||||||
|
// Load addresses for peers.dat
|
||||||
|
int64_t nStart = GetTimeMillis();
|
||||||
|
{
|
||||||
|
CAddrDB adb;
|
||||||
|
if (!adb.Read(addrman))
|
||||||
|
LogPrintf("Invalid or missing peers.dat; recreating\n");
|
||||||
|
}
|
||||||
|
LogPrintf("Loaded %i addresses from peers.dat %dms\n",
|
||||||
|
addrman.size(), GetTimeMillis() - nStart);
|
||||||
|
fAddressesInitialized = true;
|
||||||
|
|
||||||
if (semOutbound == NULL) {
|
if (semOutbound == NULL) {
|
||||||
// initialize semaphore
|
// initialize semaphore
|
||||||
int nMaxOutbound = min(MAX_OUTBOUND_CONNECTIONS, nMaxConnections);
|
int nMaxOutbound = min(MAX_OUTBOUND_CONNECTIONS, nMaxConnections);
|
||||||
@ -1785,7 +1798,12 @@ bool StopNode()
|
|||||||
if (semOutbound)
|
if (semOutbound)
|
||||||
for (int i=0; i<MAX_OUTBOUND_CONNECTIONS; i++)
|
for (int i=0; i<MAX_OUTBOUND_CONNECTIONS; i++)
|
||||||
semOutbound->post();
|
semOutbound->post();
|
||||||
|
|
||||||
|
if (fAddressesInitialized)
|
||||||
|
{
|
||||||
DumpAddresses();
|
DumpAddresses();
|
||||||
|
fAddressesInitialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user