#include "net.h"
#include "init.h"
#include "util.h"
-#include "ntp.h"
#include "ui_interface.h"
#include "checkpoints.h"
#include <boost/format.hpp>
if (fServer)
NewThread(ThreadRPCServer, NULL);
- // ********************************************************* Step 12: NTP synchronization
-
- // Trusted NTP server, it's localhost by default.
- strTrustedUpstream = GetArg("-ntp", "localhost");
-
- // Start periodical NTP sampling thread
- NewThread(ThreadNtpSamples, NULL);
-
// ********************************************************* Step 12: finished
uiInterface.InitMessage(_("Done loading"));
bool GetTransaction(const uint256 &hash, CTransaction &tx, uint256 &hashBlock);
uint256 WantedByOrphan(const CBlock* pblockOrphan);
const CBlockIndex* GetLastBlockIndex(const CBlockIndex* pindex, bool fProofOfStake);
-void StakeMiner(CWallet *pwallet);
void ResendWalletTransactions();
bool VerifySignature(const CTransaction& txFrom, const CTransaction& txTo, unsigned int nIn, unsigned int flags, int nHashType);
return false;
}
-void StakeMiner(CWallet *pwallet)
+// TODO: Get rid of nested loops
+void StakeMiner(CWallet* pwallet)
{
SetThreadPriority(THREAD_PRIORITY_LOWEST);
continue;
}
}
+
+// Stake minter thread
+void ThreadStakeMinter(void* parg)
+{
+ printf("ThreadStakeMinter started\n");
+ CWallet* pwallet = (CWallet*)parg;
+ try
+ {
+ vnThreadsRunning[THREAD_MINTER]++;
+ StakeMiner(pwallet);
+ vnThreadsRunning[THREAD_MINTER]--;
+ }
+ catch (std::exception& e) {
+ vnThreadsRunning[THREAD_MINTER]--;
+ PrintException(&e, "ThreadStakeMinter()");
+ } catch (...) {
+ vnThreadsRunning[THREAD_MINTER]--;
+ PrintException(NULL, "ThreadStakeMinter()");
+ }
+ printf("ThreadStakeMinter exiting, %d threads remaining\n", vnThreadsRunning[THREAD_MINTER]);
+}
/** Base sha256 mining transform */
void SHA256Transform(void* pstate, void* pinput, const void* pinit);
+/** Stake miner thread */
+void ThreadStakeMinter(void* parg);
+
#endif // NOVACOIN_MINER_H
#include "init.h"
#include "addrman.h"
#include "ui_interface.h"
+#include "miner.h"
+#include "ntp.h"
#ifdef WIN32
#include <string.h>
}
}
-// ppcoin: stake minter thread
-void static ThreadStakeMinter(void* parg)
-{
- printf("ThreadStakeMinter started\n");
- CWallet* pwallet = (CWallet*)parg;
- try
- {
- vnThreadsRunning[THREAD_MINTER]++;
- StakeMiner(pwallet);
- vnThreadsRunning[THREAD_MINTER]--;
- }
- catch (std::exception& e) {
- vnThreadsRunning[THREAD_MINTER]--;
- PrintException(&e, "ThreadStakeMinter()");
- } catch (...) {
- vnThreadsRunning[THREAD_MINTER]--;
- PrintException(NULL, "ThreadStakeMinter()");
- }
- printf("ThreadStakeMinter exiting, %d threads remaining\n", vnThreadsRunning[THREAD_MINTER]);
-}
-
void ThreadOpenConnections2(void* parg)
{
printf("ThreadOpenConnections started\n");
if (!NewThread(ThreadDumpAddress, NULL))
printf("Error; NewThread(ThreadDumpAddress) failed\n");
- // ppcoin: mint proof-of-stake blocks in the background
+ // Mint proof-of-stake blocks in the background
if (!NewThread(ThreadStakeMinter, pwalletMain))
printf("Error: NewThread(ThreadStakeMinter) failed\n");
+
+ // Trusted NTP server, it's localhost by default.
+ strTrustedUpstream = GetArg("-ntp", "localhost");
+
+ // Start periodical NTP sampling thread
+ NewThread(ThreadNtpSamples, NULL);
+
}
bool StopNode()