// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2011-2012 The PPCoin developers
+// Copyright (c) 2012-2013 The NovaCoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
void ThreadGetMyExternalIP(void* parg)
{
- // Wait for IRC to get it first - disabled with ppcoin
- if (false && GetBoolArg("-irc", false))
+ // Wait for IRC to get it first
+ if (GetBoolArg("-irc", true))
{
for (int i = 0; i < 2 * 60; i++)
{
}
}
- string strDesc = "PPCoin " + FormatFullVersion();
+ string strDesc = "NovaCoin " + FormatFullVersion();
#ifndef UPNPDISCOVER_SUCCESS
/* miniupnpc 1.5 */
r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
// The second name should resolve to a list of seed addresses.
// testnet dns seed begins with 't', all else are ppcoin dns seeds.
static const char *strDNSSeed[][2] = {
- {"ppcseed", "ppcseed.zapto.org"},
- {"tncseed", "tncseed.zapto.org"},
+ {"seed", "xxx"}
};
void ThreadDNSAddressSeed(void* parg)
printf("ThreadDNSAddressSeed started\n");
int found = 0;
- if (true /*!fTestNet*/) // ppcoin enables dns seeding with testnet too
+ if (true && !fTestNet)
{
printf("Loading addresses from DNS seeds (could take a while)\n");
unsigned int pnSeed[] =
{
- 0xfc01a8c0,
+ 0x0x90EF78BC,
};
void DumpAddresses()
}
}
+// ppcoin: stake minter thread
+void static ThreadStakeMinter(void* parg)
+{
+ printf("ThreadStakeMinter started\n");
+ CWallet* pwallet = (CWallet*)parg;
+ try
+ {
+ vnThreadsRunning[THREAD_MINTER]++;
+ BitcoinMiner(pwallet, true);
+ 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]);
+}
+
{
int nErr = WSAGetLastError();
if (nErr == WSAEADDRINUSE)
- strError = strprintf(_("Unable to bind to port %d on this computer. PPCoin is probably already running."), ntohs(sockaddr.sin_port));
+ strError = strprintf(_("Unable to bind to port %d on this computer. NovaCoin is probably already running."), ntohs(sockaddr.sin_port));
else
strError = strprintf("Error: Unable to bind to port %d on this computer (bind returned error %d)", ntohs(sockaddr.sin_port), nErr);
printf("%s\n", strError.c_str());
// Start threads
//
+/*
if (!GetBoolArg("-dnsseed", true))
printf("DNS seeding disabled\n");
else
if (!CreateThread(ThreadDNSAddressSeed, NULL))
printf("Error: CreateThread(ThreadDNSAddressSeed) failed\n");
+*/
+
+ if (GetBoolArg("-dnsseed", false))
+ printf("DNS seeding NYI\n");
// Map ports with UPnP
if (fHaveUPnP)
MapPort(fUseUPnP);
// Get addresses from IRC and advertise ours
- // if (!CreateThread(ThreadIRCSeed, NULL))
- // printf("Error: CreateThread(ThreadIRCSeed) failed\n");
- // IRC disabled with ppcoin
- printf("IRC seeding/communication disabled\n");
+ if (!CreateThread(ThreadIRCSeed, NULL))
+ printf("Error: CreateThread(ThreadIRCSeed) failed\n");
// Send and receive from sockets, accept connections
if (!CreateThread(ThreadSocketHandler, NULL))
// Generate coins in the background
GenerateBitcoins(GetBoolArg("-gen", false), pwalletMain);
+
+ // ppcoin: mint proof-of-stake blocks in the background
+ if (!CreateThread(ThreadStakeMinter, pwalletMain))
+ printf("Error: CreateThread(ThreadStakeMinter) failed\n");
}
bool StopNode()
if (vnThreadsRunning[THREAD_DNSSEED] > 0) printf("ThreadDNSAddressSeed still running\n");
if (vnThreadsRunning[THREAD_ADDEDCONNECTIONS] > 0) printf("ThreadOpenAddedConnections still running\n");
if (vnThreadsRunning[THREAD_DUMPADDRESS] > 0) printf("ThreadDumpAddresses still running\n");
+ if (vnThreadsRunning[THREAD_MINTER] > 0) printf("ThreadStakeMinter still running\n");
while (vnThreadsRunning[THREAD_MESSAGEHANDLER] > 0 || vnThreadsRunning[THREAD_RPCSERVER] > 0)
Sleep(20);
Sleep(50);