#include "init.h"
#include "addrman.h"
#include "ui_interface.h"
+#include "miner.h"
+#include "ntp.h"
#ifdef WIN32
#include <string.h>
void CNode::PushVersion()
{
- /// when NTP implemented, change to just nTime = GetAdjustedTime()
- int64_t nTime = (fInbound ? GetAdjustedTime() : GetTime());
+ int64_t nTime = GetAdjustedTime();
CAddress addrYou, addrMe;
bool fHidden = false;
}
}
-// 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");
// for now, use a very simple selection metric: the node from which we received
// most recently
-double static NodeSyncScore(const CNode *pnode) {
- return -pnode->nLastRecv;
+static int64_t NodeSyncScore(const CNode *pnode) {
+ return pnode->nLastRecv;
}
void static StartSync(const vector<CNode*> &vNodes) {
CNode *pnodeNewSync = NULL;
- double dBestScore = 0;
+ int64_t nBestScore = 0;
// Iterate over all nodes
BOOST_FOREACH(CNode* pnode, vNodes) {
(pnode->nStartingHeight > (nBestHeight - 144)) &&
(pnode->nVersion < NOBLKS_VERSION_START || pnode->nVersion >= NOBLKS_VERSION_END)) {
// if ok, compare node's score with the best so far
- double dScore = NodeSyncScore(pnode);
- if (pnodeNewSync == NULL || dScore > dBestScore) {
+ int64_t nScore = NodeSyncScore(pnode);
+ if (pnodeNewSync == NULL || nScore > nBestScore) {
pnodeNewSync = pnode;
- dBestScore = dScore;
+ nBestScore = nScore;
}
}
}
if (!NewThread(ThreadDumpAddress, NULL))
printf("Error; NewThread(ThreadDumpAddress) failed\n");
- // ppcoin: mint proof-of-stake blocks in the background
- if (!NewThread(ThreadStakeMinter, pwalletMain))
- printf("Error: NewThread(ThreadStakeMinter) failed\n");
+ // Mine proof-of-stake blocks in the background
+ if (!NewThread(ThreadStakeMiner, pwalletMain))
+ printf("Error: NewThread(ThreadStakeMiner) failed\n");
+
+ // Trusted NTP server, it's localhost by default.
+ strTrustedUpstream = GetArg("-ntp", "localhost");
+
+ // Start periodical NTP sampling thread
+ NewThread(ThreadNtpSamples, NULL);
+
}
bool StopNode()