X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Finit.cpp;h=417b342042dc62b934b50a1bb702dfc2619f2c67;hb=5f3f7465db4444e49dd4a896f88c090b40d0a303;hp=ca7c8b1b638fe2c03cf1cee0a71ea8e22d67df84;hpb=52332d9954a3fb6589e7efb4c90ce0c15a3a3540;p=novacoin.git diff --git a/src/init.cpp b/src/init.cpp index ca7c8b1..417b342 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -31,7 +31,6 @@ CClientUIInterface uiInterface; std::string strWalletFileName; bool fConfChange; unsigned int nNodeLifespan; -unsigned int nMinerSleep; bool fUseFastIndex; bool fUseMemoryLog; enum Checkpoints::CPMode CheckpointsMode; @@ -39,6 +38,7 @@ enum Checkpoints::CPMode CheckpointsMode; // Ping and address broadcast intervals extern int64_t nPingInterval; extern int64_t nBroadcastInterval; +extern int64_t nReserveBalance; ////////////////////////////////////////////////////////////////////////////// // @@ -190,12 +190,11 @@ bool AppInit(int argc, char* argv[]) extern void noui_connect(); int main(int argc, char* argv[]) { - bool fRet = false; // Connect bitcoind signal handlers noui_connect(); - fRet = AppInit(argc, argv); + bool fRet = AppInit(argc, argv); if (fRet && fDaemon) return 0; @@ -252,7 +251,7 @@ std::string HelpMessage() " -connect= " + _("Connect only to the specified node(s)") + "\n" + " -seednode= " + _("Connect to a node to retrieve peer addresses, and disconnect") + "\n" + " -externalip= " + _("Specify your own public address") + "\n" + - " -onlynet= " + _("Only connect to nodes in network (IPv4, IPv6 or Tor)") + "\n" + + " -onlynet= " + _("Only connect to nodes in network (IPv4, IPv6 or Onion)") + "\n" + " -discover " + _("Discover own IP address (default: 1 when listening and no -externalip)") + "\n" + " -irc " + _("Find peers using internet relay chat (default: 1)") + "\n" + " -listen " + _("Accept connections from outside (default: 1 if no -proxy or -connect)") + "\n" + @@ -263,13 +262,6 @@ std::string HelpMessage() " -bantime= " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" + " -maxreceivebuffer= " + _("Maximum per-connection receive buffer, *1000 bytes (default: 5000)") + "\n" + " -maxsendbuffer= " + _("Maximum per-connection send buffer, *1000 bytes (default: 1000)") + "\n" + -#ifdef USE_UPNP -#if USE_UPNP - " -upnp " + _("Use UPnP to map the listening port (default: 1 when listening)") + "\n" + -#else - " -upnp " + _("Use UPnP to map the listening port (default: 0)") + "\n" + -#endif -#endif " -detachdb " + _("Detach block and address databases. Increases shutdown time (default: 0)") + "\n" + #ifdef DB_LOG_IN_MEMORY @@ -352,6 +344,14 @@ bool AppInit2() typedef BOOL (WINAPI *PSETPROCDEPPOL)(DWORD); PSETPROCDEPPOL setProcDEPPol = (PSETPROCDEPPOL)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "SetProcessDEPPolicy"); if (setProcDEPPol != NULL) setProcDEPPol(PROCESS_DEP_ENABLE); + + // Initialize Windows Sockets + WSADATA wsadata; + int ret = WSAStartup(MAKEWORD(2,2), &wsadata); + if (ret != NO_ERROR) + { + return InitError(strprintf("Error: TCP/IP socket library failed to start (WSAStartup returned error %d)", ret)); + } #endif #ifndef WIN32 umask(077); @@ -377,12 +377,10 @@ bool AppInit2() nNodeLifespan = (unsigned int)(GetArg("-addrlifespan", 7)); fUseFastIndex = GetBoolArg("-fastindex", true); fUseMemoryLog = GetBoolArg("-memorylog", true); - nMinerSleep = (unsigned int)(GetArg("-minersleep", 500)); // Ping and address broadcast intervals nPingInterval = max(10 * 60, GetArg("-keepalive", 30 * 60)); - - nBroadcastInterval = max(6 * 60 * 60, GetArg("-addrsetlifetime", 24 * 60 * 60)); + nBroadcastInterval = max(6 * nOneHour, GetArg("-addrsetlifetime", nOneDay)); CheckpointsMode = Checkpoints::STRICT; std::string strCpMode = GetArg("-cppolicy", "strict"); @@ -423,7 +421,6 @@ bool AppInit2() if (!GetBoolArg("-listen", true)) { // do not map ports or try to retrieve public IP when not listening (pointless) - SoftSetBoolArg("-upnp", false); SoftSetBoolArg("-discover", false); } @@ -446,7 +443,7 @@ bool AppInit2() // ********************************************************* Step 3: parameter-to-internal-flags // -par=0 means autodetect, but nScriptCheckThreads==0 means no concurrency - nScriptCheckThreads = (int)(GetArg("-par", 0)); + nScriptCheckThreads = GetArgInt("-par", 0); if (nScriptCheckThreads == 0) nScriptCheckThreads = boost::thread::hardware_concurrency(); if (nScriptCheckThreads <= 1) @@ -485,17 +482,13 @@ bool AppInit2() if (mapArgs.count("-timeout")) { - int nNewTimeout = (int)(GetArg("-timeout", 5000)); + int nNewTimeout = GetArgInt("-timeout", 5000); if (nNewTimeout > 0 && nNewTimeout < 600000) nConnectTimeout = nNewTimeout; } - // Continue to put "/P2SH/" in the coinbase to monitor - // BIP16 support. - // This can be removed eventually... - const char* pszP2SH = "/P2SH/"; - COINBASE_FLAGS << std::vector(pszP2SH, pszP2SH+strlen(pszP2SH)); - + // Put client version data into coinbase flags. + COINBASE_FLAGS << PROTOCOL_VERSION << DISPLAY_VERSION_MAJOR << DISPLAY_VERSION_MINOR << DISPLAY_VERSION_REVISION; if (mapArgs.count("-paytxfee")) { @@ -574,9 +567,6 @@ bool AppInit2() int64_t nStart; -#ifdef USE_SSE2 - scrypt_detect_sse2(); -#endif // ********************************************************* Step 5: verify database integrity uiInterface.InitMessage(_("Verifying database integrity...")); @@ -613,7 +603,7 @@ bool AppInit2() // ********************************************************* Step 6: network initialization - int nSocksVersion = (int)(GetArg("-socks", 5)); + int nSocksVersion = GetArgInt("-socks", 5); if (nSocksVersion != 4 && nSocksVersion != 5) return InitError(strprintf(_("Unknown -socks proxy version requested: %i"), nSocksVersion)); @@ -642,7 +632,7 @@ bool AppInit2() CService addrProxy; bool fProxy = false; if (mapArgs.count("-proxy")) { - addrProxy = CService(mapArgs["-proxy"], 9050); + addrProxy = CService(mapArgs["-proxy"], nSocksDefault); if (!addrProxy.IsValid()) return InitError(strprintf(_("Invalid -proxy address: '%s'"), mapArgs["-proxy"].c_str())); @@ -664,7 +654,7 @@ bool AppInit2() if (!mapArgs.count("-tor")) addrOnion = addrProxy; else - addrOnion = CService(mapArgs["-tor"], 9050); + addrOnion = CService(mapArgs["-tor"], nSocksDefault); if (!addrOnion.IsValid()) return InitError(strprintf(_("Invalid -tor address: '%s'"), mapArgs["-tor"].c_str())); SetProxy(NET_TOR, addrOnion, 5); @@ -677,13 +667,10 @@ bool AppInit2() fNoListen = !GetBoolArg("-listen", true); fDiscover = GetBoolArg("-discover", true); fNameLookup = GetBoolArg("-dns", true); -#ifdef USE_UPNP - fUseUPnP = GetBoolArg("-upnp", USE_UPNP); -#endif } else { // Don't listen, discover addresses or search for nodes if IPv4 and IPv6 networking is disabled. fNoListen = true; - fDiscover = fNameLookup = fUseUPnP = false; + fDiscover = fNameLookup = false; SoftSetBoolArg("-irc", false); SoftSetBoolArg("-dnsseed", false); } @@ -741,7 +728,6 @@ bool AppInit2() if (mapArgs.count("-reservebalance")) // ppcoin: reserve balance amount { - int64_t nReserveBalance = 0; if (!ParseMoney(mapArgs["-reservebalance"], nReserveBalance)) { InitError(_("Invalid amount for -reservebalance=")); @@ -891,7 +877,7 @@ bool AppInit2() if (GetBoolArg("-upgradewallet", fFirstRun)) { - int nMaxVersion = (int)(GetArg("-upgradewallet", 0)); + int nMaxVersion = GetArgInt("-upgradewallet", 0); if (nMaxVersion == 0) // the -upgradewallet without argument case { printf("Performing wallet upgrade to %i\n", FEATURE_LATEST);