diff --git a/Makefile.am b/Makefile.am index a4c16d5a5cdb2..d75dada2fc6f3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,8 +9,8 @@ BITCOIN_QT_BIN=$(top_builddir)/src/qt/darkcoin-qt$(EXEEXT) BITCOIN_CLI_BIN=$(top_builddir)/src/darkcoin-cli$(EXEEXT) BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EXEEXT) -OSX_APP=Bitcoin-Qt.app -OSX_DMG=Bitcoin-Qt.dmg +OSX_APP=Darkcoin-Qt.app +OSX_DMG=Darkcoin-Qt.dmg OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns @@ -72,13 +72,13 @@ $(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS) $(MKDIR_P) $(@D) $(INSTALL_DATA) $< $@ -$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(BITCOIN_QT_BIN) +$(OSX_APP)/Contents/MacOS/Darkcoin-Qt: $(BITCOIN_QT_BIN) $(MKDIR_P) $(@D) STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $< $@ OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \ $(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \ - $(OSX_APP)/Contents/MacOS/Bitcoin-Qt + $(OSX_APP)/Contents/MacOS/Darkcoin-Qt if BUILD_DARWIN $(OSX_DMG): $(OSX_APP_BUILT) $(OSX_PACKAGING) @@ -91,7 +91,7 @@ $(OSX_DMG): $(OSX_APP_BUILT) $(OSX_PACKAGING) $(INSTALL) contrib/macdeploy/background.png dist/.background $(INSTALL) contrib/macdeploy/DS_Store dist/.DS_Store cd dist; $(LN_S) /Applications Applications - $(GENISOIMAGE) -no-cache-inodes -l -probe -V "Bitcoin-Qt" -no-pad -r -apple -o $@ dist + $(GENISOIMAGE) -no-cache-inodes -l -probe -V "Darkcoin-Qt" -no-pad -r -apple -o $@ dist endif if TARGET_DARWIN diff --git a/TODO.md b/TODO.md index 6bf995485cf75..aa2546607caa1 100644 --- a/TODO.md +++ b/TODO.md @@ -23,6 +23,7 @@ DONE: - Reset testnet (v4) with new genesis and address version (start with x) - BIP0032 addresses xpub and xpriv start with x (unchanged by design) - Changed Darkcoin units to DRK and added duffs +- Fixed internal walletminer MANDATORY: diff --git a/configure.ac b/configure.ac index ce9ddbe87178c..092836ef7e3dd 100644 --- a/configure.ac +++ b/configure.ac @@ -563,11 +563,11 @@ fi BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path) -AC_MSG_CHECKING([whether to build bitcoind]) +AC_MSG_CHECKING([whether to build darkcoind]) AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes]) AC_MSG_RESULT($build_bitcoind) -AC_MSG_CHECKING([whether to build bitcoin-cli]) +AC_MSG_CHECKING([whether to build darkcoin-cli]) AM_CONDITIONAL([BUILD_BITCOIN_CLI], [test x$build_bitcoin_cli = xyes]) AC_MSG_RESULT($build_bitcoin_cli) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 993428a3c224d..fee54cfc669f5 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -133,7 +133,7 @@ class CTestNetParams : public CMainParams { base58Prefixes[PUBKEY_ADDRESS] = list_of(138); // Testnet v4 addresses start with x base58Prefixes[SCRIPT_ADDRESS] = list_of(196); - base58Prefixes[SECRET_KEY] = list_of(239); + base58Prefixes[SECRET_KEY] = list_of(266); base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x35)(0x87)(0xCF); base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x35)(0x83)(0x94); } diff --git a/src/darkcoind.cpp b/src/darkcoind.cpp index d16abebc25cf3..f8e92301c00d9 100644 --- a/src/darkcoind.cpp +++ b/src/darkcoind.cpp @@ -21,8 +21,8 @@ * * \section intro_sec Introduction * - * This is the developer documentation of the reference client for an experimental new digital currency called Bitcoin (http://www.bitcoin.org/), - * which enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate + * This is the developer documentation of the reference client for an experimental new digital currency called Darkcoin (http://www.darkcoin.io/), + * which enables instant payments to anyone, anywhere in the world. Darkcoin uses peer-to-peer technology to operate * with no central authority: managing transactions and issuing money are carried out collectively by the network. * * The software is a community-driven open source project, released under the MIT license. @@ -86,11 +86,11 @@ bool AppInit(int argc, char* argv[]) if (mapArgs.count("-?") || mapArgs.count("--help")) { - // First part of help message is specific to bitcoind / RPC client + // First part of help message is specific to darkcoind / RPC client std::string strUsage = _("Darkcoin Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n\n" + _("Usage:") + "\n" + " darkcoind [options] " + _("Start Darkcoin Core Daemon") + "\n" + - _("Usage (deprecated, use bitcoin-cli):") + "\n" + + _("Usage (deprecated, use darkcoin-cli):") + "\n" + " darkcoind [options] [params] " + _("Send command to Darkcoin Core") + "\n" + " darkcoind [options] help " + _("List commands") + "\n" + " darkcoind [options] help " + _("Get help for a command") + "\n"; @@ -105,7 +105,7 @@ bool AppInit(int argc, char* argv[]) // Command-line RPC bool fCommandLine = false; for (int i = 1; i < argc; i++) - if (!IsSwitchChar(argv[i][0]) && !boost::algorithm::istarts_with(argv[i], "bitcoin:")) + if (!IsSwitchChar(argv[i][0]) && !boost::algorithm::istarts_with(argv[i], "darkcoin:")) fCommandLine = true; if (fCommandLine) @@ -177,7 +177,7 @@ int main(int argc, char* argv[]) bool fRet = false; - // Connect bitcoind signal handlers + // Connect darkcoind signal handlers noui_connect(); fRet = AppInit(argc, argv); diff --git a/src/m4/bitcoin_qt.m4 b/src/m4/bitcoin_qt.m4 index 20fead2c1ec8f..d5dc33193093e 100644 --- a/src/m4/bitcoin_qt.m4 +++ b/src/m4/bitcoin_qt.m4 @@ -3,7 +3,7 @@ dnl Output: If qt version is auto, set bitcoin_enable_qt to false. Else, exit. AC_DEFUN([BITCOIN_QT_FAIL],[ if test "x$bitcoin_qt_want_version" = "xauto" && test x$bitcoin_qt_force != xyes; then if test x$bitcoin_enable_qt != xno; then - AC_MSG_WARN([$1; bitcoin-qt frontend will not be built]) + AC_MSG_WARN([$1; darkcoin-qt frontend will not be built]) fi bitcoin_enable_qt=no else @@ -123,7 +123,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[ dnl enable qt support - AC_MSG_CHECKING(whether to build Bitcoin Core GUI) + AC_MSG_CHECKING(whether to build Darkcoin Core GUI) BITCOIN_QT_CHECK([ bitcoin_enable_qt=yes bitcoin_enable_qt_test=yes @@ -343,14 +343,14 @@ AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITHOUT_PKGCONFIG],[ dnl check a header to find out. When Qt is built statically, some plugins must dnl be linked into the final binary as well. These plugins have changed between dnl Qt4 and Qt5. With Qt5, languages moved into core and the WindowsIntegration - dnl plugin was added. Since we can't tell if Qt4 is static or not, it is + dnl plugin was added. Since we can't tell if Qt4 is static or not, it is dnl assumed for all non-pkg-config builds. dnl _BITCOIN_QT_CHECK_STATIC_PLUGINS does a quick link-check and appends the dnl results to QT_LIBS. BITCOIN_QT_CHECK([ if test x$bitcoin_qt_got_major_vers == x5; then _BITCOIN_QT_IS_STATIC - if test x$bitcoin_cv_static_qt == xyes; then + if test x$bitcoin_cv_static_qt == xyes; then AC_DEFINE(QT_STATICPLUGIN, 1, [Define this symbol if qt plugins are static]) _BITCOIN_QT_CHECK_STATIC_PLUGINS([Q_IMPORT_PLUGIN(AccessibleFactory)], [-lqtaccessiblewidgets]) if test x$TARGET_OS == xwindows; then diff --git a/src/main.cpp b/src/main.cpp index 308f0e9b80dae..56829d7890305 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -77,7 +77,7 @@ void EraseOrphansFor(NodeId peer); // Constant stuff for coinbase transactions we create: CScript COINBASE_FLAGS; -const string strMessageMagic = "DarkCoin Signed Message:\n"; +const string strMessageMagic = "Darkcoin Signed Message:\n"; // Internal stuff namespace { @@ -1637,14 +1637,11 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead // Go back by what we want to be 14 days worth of blocks const CBlockIndex* pindexFirst = pindexLast; for (int i = 0; pindexFirst && i < blockstogoback; i++) - //for (int i = 0; pindexFirst && i < nInterval-1; i++) pindexFirst = pindexFirst->pprev; assert(pindexFirst); // Limit adjustment step - //int64 nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime(); int64_t nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime(); - //LogPrintf(" nActualTimespan = %d before bounds\n", nActualTimespan); LogPrintf(" nActualTimespan = %d before bounds\n", nActualTimespan); if (nActualTimespan < nTargetTimespan/4) nActualTimespan = nTargetTimespan/4; @@ -1662,11 +1659,8 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead /// debug print LogPrintf("GetNextWorkRequired RETARGET\n"); - //LogPrintf("nTargetTimespan = %d nActualTimespan = %d\n", nTargetTimespan, nActualTimespan); LogPrintf("nTargetTimespan = %d nActualTimespan = %d\n", nTargetTimespan, nActualTimespan); - //LogPrintf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString().c_str()); LogPrintf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString()); - //LogPrintf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str()); LogPrintf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString()); return bnNew.GetCompact(); @@ -4669,6 +4663,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) LogPrint("net", "Reject %s\n", SanitizeString(ss.str())); } } + else { //probably one the extensions @@ -4678,7 +4673,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) } - // Update the last seen time for this node's address if (pfrom->fNetworkNode) if (strCommand == "version" || strCommand == "addr" || strCommand == "inv" || strCommand == "getdata" || strCommand == "ping") diff --git a/src/miner.cpp b/src/miner.cpp index 4d90ab8b1f29a..5f537776205fe 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -468,41 +468,6 @@ void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash double dHashesPerSec = 0.0; int64_t nHPSTimerStart = 0; -// -// ScanHash scans nonces looking for a hash with at least some zero bits. -// It operates on big endian data. Caller does the byte reversing. -// All input buffers are 16-byte aligned. nNonce is usually preserved -// between calls, but periodically or if nNonce is 0xffff0000 or above, -// the block is rebuilt and nNonce starts over at zero. -// -unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1, char* phash, unsigned int& nHashesDone) -{ - unsigned int& nNonce = *(unsigned int*)(pdata + 12); - for (;;) - { - // Crypto++ SHA256 - // Hash pdata using pmidstate as the starting state into - // pre-formatted buffer phash1, then hash phash1 into phash - nNonce++; - SHA256Transform(phash1, pdata, pmidstate); - SHA256Transform(phash, phash1, pSHA256InitState); - - // Return the nonce if the hash has at least some zero bits, - // caller will check if it has enough to reach the target - if (((unsigned short*)phash)[14] == 0) - return nNonce; - - // If nothing found after trying for a while, return -1 - if ((nNonce & 0xffff) == 0) - { - nHashesDone = 0xffff+1; - return (unsigned int) -1; - } - if ((nNonce & 0xfff) == 0) - boost::this_thread::interruption_point(); - } -} - CBlockTemplate* CreateNewBlockWithKey(CReserveKey& reservekey) { CPubKey pubkey; @@ -595,37 +560,23 @@ void static BitcoinMiner(CWallet *pwallet) unsigned int& nBlockTime = *(unsigned int*)(pdata + 64 + 4); unsigned int& nBlockBits = *(unsigned int*)(pdata + 64 + 8); - unsigned int& nBlockNonce = *(unsigned int*)(pdata + 64 + 12); - // // Search // int64_t nStart = GetTime(); uint256 hashTarget = CBigNum().SetCompact(pblock->nBits).getuint256(); - uint256 hashbuf[2]; - uint256& hash = *alignup<16>(hashbuf); while (true) { unsigned int nHashesDone = 0; - unsigned int nNonceFound; - - // Crypto++ SHA256 - nNonceFound = ScanHash_CryptoPP(pmidstate, pdata + 64, phash1, - (char*)&hash, nHashesDone); - // Check if something found - if (nNonceFound != (unsigned int) -1) + uint256 hash; + while (true) { - for (unsigned int i = 0; i < sizeof(hash)/4; i++) - ((unsigned int*)&hash)[i] = ByteReverse(((unsigned int*)&hash)[i]); - + hash = pblock->GetHash(); if (hash <= hashTarget) { // Found a solution - pblock->nNonce = ByteReverse(nNonceFound); - assert(hash == pblock->GetHash()); - SetThreadPriority(THREAD_PRIORITY_NORMAL); CheckWork(pblock, *pwallet, reservekey); SetThreadPriority(THREAD_PRIORITY_LOWEST); @@ -637,6 +588,10 @@ void static BitcoinMiner(CWallet *pwallet) break; } + pblock->nNonce += 1; + nHashesDone += 1; + if ((pblock->nNonce & 0xFF) == 0) + break; } // Meter hashes/sec @@ -672,7 +627,7 @@ void static BitcoinMiner(CWallet *pwallet) boost::this_thread::interruption_point(); if (vNodes.empty() && Params().NetworkID() != CChainParams::REGTEST) break; - if (nBlockNonce >= 0xffff0000) + if (pblock->nNonce >= 0xffff0000) break; if (mempool.GetTransactionsUpdated() != nTransactionsUpdatedLast && GetTime() - nStart > 60) break; diff --git a/src/net.h b/src/net.h index 390c374b68a28..fcd5bfa854b9b 100644 --- a/src/net.h +++ b/src/net.h @@ -41,6 +41,8 @@ namespace boost { static const unsigned int MAX_INV_SZ = 50000; /** The maximum number of entries in mapAskFor */ static const size_t MAPASKFOR_MAX_SZ = MAX_INV_SZ; +/** The maximum number of new addresses to accumulate before announcing. */ +static const unsigned int MAX_ADDR_TO_SEND = 1000; inline unsigned int ReceiveFloodSize() { return 1000*GetArg("-maxreceivebuffer", 5*1000); } inline unsigned int SendBufferSize() { return 1000*GetArg("-maxsendbuffer", 1*1000); } @@ -404,8 +406,13 @@ class CNode // Known checking here is only to save space from duplicates. // SendMessages will filter it again for knowns that were added // after addresses were pushed. - if (addr.IsValid() && !setAddrKnown.count(addr)) - vAddrToSend.push_back(addr); + if (addr.IsValid() && !setAddrKnown.count(addr)) { + if (vAddrToSend.size() >= MAX_ADDR_TO_SEND) { + vAddrToSend[insecure_rand() % vAddrToSend.size()] = addr; + } else { + vAddrToSend.push_back(addr); + } + } } diff --git a/src/qt/darkcoin.cpp b/src/qt/darkcoin.cpp index 170a1ca64c532..4fbad176e1a73 100644 --- a/src/qt/darkcoin.cpp +++ b/src/qt/darkcoin.cpp @@ -74,7 +74,7 @@ static void InitMessage(const std::string &message) */ static std::string Translate(const char* psz) { - return QCoreApplication::translate("bitcoin-core", psz).toStdString(); + return QCoreApplication::translate("darkcoin-core", psz).toStdString(); } /** Set up translations */ @@ -139,7 +139,7 @@ void DebugMessageHandler(QtMsgType type, const QMessageLogContext& context, cons } #endif -/** Class encapsulating Bitcoin Core startup and shutdown. +/** Class encapsulating Darkcoin Core startup and shutdown. * Allows running startup and shutdown in a different thread from the UI thread. */ class BitcoinCore: public QObject @@ -423,7 +423,7 @@ void BitcoinApplication::initializeResult(int retval) } #ifdef ENABLE_WALLET // Now that initialization/startup is done, process any command-line - // bitcoin: URIs or payment requests: + // darkcoin: URIs or payment requests: connect(paymentServer, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)), window, SLOT(handlePaymentRequest(SendCoinsRecipient))); connect(window, SIGNAL(receivedURI(QString)), @@ -445,7 +445,7 @@ void BitcoinApplication::shutdownResult(int retval) void BitcoinApplication::handleRunawayException(const QString &message) { - QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + message); + QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Darkcoin can no longer continue safely and will quit.") + QString("\n\n") + message); ::exit(1); } @@ -521,14 +521,14 @@ int main(int argc, char *argv[]) /// - Do not call GetDataDir(true) before this step finishes if (!boost::filesystem::is_directory(GetDataDir(false))) { - QMessageBox::critical(0, QObject::tr("Bitcoin"), + QMessageBox::critical(0, QObject::tr("Darkcoin"), QObject::tr("Error: Specified data directory \"%1\" does not exist.").arg(QString::fromStdString(mapArgs["-datadir"]))); return 1; } try { ReadConfigFile(mapArgs, mapMultiArgs); } catch(std::exception &e) { - QMessageBox::critical(0, QObject::tr("Bitcoin"), + QMessageBox::critical(0, QObject::tr("Darkcoin"), QObject::tr("Error: Cannot parse configuration file: %1. Only use key=value syntax.").arg(e.what())); return false; } @@ -541,7 +541,7 @@ int main(int argc, char *argv[]) // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) if (!SelectParamsFromCommandLine()) { - QMessageBox::critical(0, QObject::tr("Bitcoin"), QObject::tr("Error: Invalid combination of -regtest and -testnet.")); + QMessageBox::critical(0, QObject::tr("Darkcoin"), QObject::tr("Error: Invalid combination of -regtest and -testnet.")); return 1; } #ifdef ENABLE_WALLET @@ -569,7 +569,7 @@ int main(int argc, char *argv[]) exit(0); // Start up the payment server early, too, so impatient users that click on - // bitcoin: links repeatedly have their payment requests routed to this process: + // darkcoin: links repeatedly have their payment requests routed to this process: app.createPaymentServer(); #endif @@ -601,7 +601,7 @@ int main(int argc, char *argv[]) app.createWindow(isaTestNet); app.requestInitialize(); #if defined(Q_OS_WIN) && QT_VERSION >= 0x050000 - WinShutdownMonitor::registerShutdownBlockReason(QObject::tr("Bitcoin Core didn't yet exit safely..."), (HWND)app.getMainWinId()); + WinShutdownMonitor::registerShutdownBlockReason(QObject::tr("Darkcoin Core didn't yet exit safely..."), (HWND)app.getMainWinId()); #endif app.exec(); app.requestShutdown(); diff --git a/src/rpcclient.cpp b/src/rpcclient.cpp index df21d31fac8ec..b3c87eb557735 100644 --- a/src/rpcclient.cpp +++ b/src/rpcclient.cpp @@ -41,7 +41,7 @@ Object CallRPC(const string& strMethod, const Array& params) bool fUseSSL = GetBoolArg("-rpcssl", false); asio::io_service io_service; ssl::context context(io_service, ssl::context::sslv23); - context.set_options(ssl::context::no_sslv2); + context.set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3); asio::ssl::stream sslStream(io_service, context); SSLIOStreamDevice d(sslStream, fUseSSL); iostreams::stream< SSLIOStreamDevice > stream(d); diff --git a/src/rpcclient.h b/src/rpcclient.h index e101d22ec5691..3af87c7ec6a94 100644 --- a/src/rpcclient.h +++ b/src/rpcclient.h @@ -14,11 +14,11 @@ int CommandLineRPC(int argc, char *argv[]); json_spirit::Array RPCConvertValues(const std::string &strMethod, const std::vector &strParams); -/** Show help message for bitcoin-cli. +/** Show help message for darkcoin-cli. * The mainProgram argument is used to determine whether to show this message as main program * (and include some common options) or as sub-header of another help message. * - * @note the argument can be removed once bitcoin-cli functionality is removed from bitcoind + * @note the argument can be removed once darkcoin-cli functionality is removed from darkcoind */ std::string HelpMessageCli(bool mainProgram); diff --git a/src/rpcprotocol.h b/src/rpcprotocol.h index 8b3df1962142d..52d1eaccf7cab 100644 --- a/src/rpcprotocol.h +++ b/src/rpcprotocol.h @@ -30,7 +30,7 @@ enum HTTPStatusCode HTTP_INTERNAL_SERVER_ERROR = 500, }; -// Bitcoin RPC error codes +// Darkcoin RPC error codes enum RPCErrorCode { // Standard JSON-RPC 2.0 errors @@ -54,7 +54,7 @@ enum RPCErrorCode RPC_TRANSACTION_ALREADY_IN_CHAIN= -27, // Transaction already in chain // P2P client errors - RPC_CLIENT_NOT_CONNECTED = -9, // Bitcoin is not connected + RPC_CLIENT_NOT_CONNECTED = -9, // Darkcoin is not connected RPC_CLIENT_IN_INITIAL_DOWNLOAD = -10, // Still downloading initial blocks RPC_CLIENT_NODE_ALREADY_ADDED = -23, // Node is already added RPC_CLIENT_NODE_NOT_ADDED = -24, // Node has not been added before diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 4a3c4e88b1686..22aedb585ca4b 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -545,7 +545,7 @@ void StartRPCThreads() if (fUseSSL) { - rpc_ssl_context->set_options(ssl::context::no_sslv2); + rpc_ssl_context->set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3); filesystem::path pathCertFile(GetArg("-rpcsslcertificatechainfile", "server.cert")); if (!pathCertFile.is_complete()) pathCertFile = filesystem::path(GetDataDir()) / pathCertFile; diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index e1c4c245d651a..360a59f64895c 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -1574,9 +1574,9 @@ Value walletpassphrase(const Array& params, bool fHelp) "Issuing the walletpassphrase command while the wallet is already unlocked will set a new unlock\n" "time that overrides the old one.\n" "\nExamples:\n" - "\nUlock the wallet for 60 seconds\n" + "\nUnlock the wallet for 60 seconds\n" + HelpExampleCli("walletpassphrase", "\"my pass phrase\" 60") + - "\nUlock the wallet for 60 seconds but allow Darksend mixing only\n" + "\nUnlock the wallet for 60 seconds but allow Darksend mixing only\n" + HelpExampleCli("walletpassphrase", "\"my pass phrase\" 60 true") + "\nLock the wallet again (before 60 seconds)\n" + HelpExampleCli("walletlock", "") +