# HG changeset patch # User Wladimir J. van der Laan # Date 1315033774 -7200 # Node ID b805a444bc4e18ed922af91ee40699a605f6c1df # Parent e137f9a1aa5b6f9bfb606d0ecf22cc969de95c85# Parent 89f344888477c89ba16e0e65de34e20349b48c92 Merge branch 'master' of https://github.com/bitcoin/bitcoin diff --git a/contrib/Bitcoin.app/Contents/Info.plist b/contrib/Bitcoin.app/Contents/Info.plist --- a/contrib/Bitcoin.app/Contents/Info.plist +++ b/contrib/Bitcoin.app/Contents/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.3.25 + 0.4.00 CFBundleSignature ???? CFBundleVersion - 325 + 400 LSMinimumSystemVersion 10.5 CFBundleIconFile diff --git a/doc/README b/doc/README --- a/doc/README +++ b/doc/README @@ -1,4 +1,4 @@ -Bitcoin 0.3.25 BETA +Bitcoin 0.4.0rc1 BETA Copyright (c) 2009-2011 Bitcoin Developers Distributed under the MIT/X11 software license, see the accompanying diff --git a/doc/README_windows.txt b/doc/README_windows.txt --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin 0.3.25 BETA +Bitcoin 0.4.00rc1 BETA Copyright (c) 2009-2011 Bitcoin Developers Distributed under the MIT/X11 software license, see the accompanying diff --git a/doc/coding.txt b/doc/coding.txt --- a/doc/coding.txt +++ b/doc/coding.txt @@ -43,38 +43,52 @@ ------------------------- Locking/mutex usage notes -The code is multi-threaded, and uses mutexes and the CRITICAL_BLOCK/TRY_CRITICAL_BLOCK macros to protect data structures. +The code is multi-threaded, and uses mutexes and the +CRITICAL_BLOCK/TRY_CRITICAL_BLOCK macros to protect data structures. -Deadlocks due to inconsistent lock ordering (thread 1 locks cs_main and then cs_wallet, while thread 2 locks them in the opposite order: result, deadlock as each waits for the other to release its lock) are a problem. Compile with -DDEBUG_LOCKORDER to get lock order inconsistencies reported in the debug.log file. +Deadlocks due to inconsistent lock ordering (thread 1 locks cs_main +and then cs_wallet, while thread 2 locks them in the opposite order: +result, deadlock as each waits for the other to release its lock) are +a problem. Compile with -DDEBUG_LOCKORDER to get lock order +inconsistencies reported in the debug.log file. -Re-architecting the core code so there are better-defined interfaces between the various components is a goal, with any necessary locking done by the components (e.g. see the self-contained CKeyStore class and its cs_KeyStore lock for example). +Re-architecting the core code so there are better-defined interfaces +between the various components is a goal, with any necessary locking +done by the components (e.g. see the self-contained CKeyStore class +and its cs_KeyStore lock for example). ------- Threads StartNode : Starts other threads. -ThreadGetMyExternalIP : Determines outside-the-firewall IP address, sends addr message to connected peers when it determines it. +ThreadGetMyExternalIP : Determines outside-the-firewall IP address, +sends addr message to connected peers when it determines it. -ThreadIRCSeed : Joins IRC bootstrapping channel, watching for new peers and advertising this node's IP address. +ThreadIRCSeed : Joins IRC bootstrapping channel, watching for new +peers and advertising this node's IP address. ThreadSocketHandler : Sends/Receives data from peers on port 8333. -ThreadMessageHandler : Higher-level message handling (sending and receiving). +ThreadMessageHandler : Higher-level message handling (sending and +receiving). ThreadOpenConnections : Initiates new connections to peers. ThreadTopUpKeyPool : replenishes the keystore's keypool. -ThreadCleanWalletPassphrase : re-locks an encrypted wallet after user has unlocked it for a period of time. +ThreadCleanWalletPassphrase : re-locks an encrypted wallet after user +has unlocked it for a period of time. SendingDialogStartTransfer : used by pay-via-ip-address code (obsolete) ThreadDelayedRepaint : repaint the gui -ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used in 500ms. +ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used +in 500ms. -ThreadRPCServer : Remote procedure call handler, listens on port 8332 for connections and services them. +ThreadRPCServer : Remote procedure call handler, listens on port 8332 +for connections and services them. ThreadBitcoinMiner : Generates bitcoins diff --git a/doc/release-process.txt b/doc/release-process.txt --- a/doc/release-process.txt +++ b/doc/release-process.txt @@ -1,6 +1,9 @@ * update (commit) version in sources + src/serialize.h + share/setup.nsi * update (commit) version in OSX app bundle + contrib/Bitcoin.app/Contents/Info.plist * CFBundleShortVersionString should have value like 0.3.23 * CFBundleVersion should have value like 323 diff --git a/locale/cs/LC_MESSAGES/bitcoin.mo b/locale/cs/LC_MESSAGES/bitcoin.mo index 80354cf764f2d5f8fed28c37097ae575663afe35..8b6e444b66e6b5ad503792de8c4fddcacb212187 GIT binary patch literal 23696 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 diff --git a/locale/fr/LC_MESSAGES/bitcoin.mo b/locale/fr/LC_MESSAGES/bitcoin.mo index f4d669b4c01b4cda7742b30dc9737d88b8befe43..f60e15bd62177cced9d93e5ffea96faf8e631c19 GIT binary patch literal 15804 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 E1|aG;^#A|> diff --git a/locale/nl/LC_MESSAGES/bitcoin.mo b/locale/nl/LC_MESSAGES/bitcoin.mo index c5ae8489fb5ad09d5d68673de6d5fc87cacfe829..836e91d41b63d1dbe5596668e9d7768ac78f4708 GIT binary patch literal 20891 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 diff --git a/locale/pt/LC_MESSAGES/bitcoin.mo b/locale/pt/LC_MESSAGES/bitcoin.mo index 20e100f578d4effd13e14dfd43061c9b24b2be25..35a3fd7bc96b012d63ebe7bd337ebb6d15e1e883 GIT binary patch literal 15721 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 YT*_3;i;xv5uQ)_M%n(-v7Ji`lFHsQjg#Z8m diff --git a/share/setup.nsi b/share/setup.nsi --- a/share/setup.nsi +++ b/share/setup.nsi @@ -5,7 +5,7 @@ # General Symbol Definitions !define REGKEY "SOFTWARE\$(^Name)" -!define VERSION 0.3.25 +!define VERSION 0.4.00 !define COMPANY "Bitcoin project" !define URL http://www.bitcoin.org/ @@ -45,13 +45,13 @@ !insertmacro MUI_LANGUAGE English # Installer attributes -OutFile bitcoin-0.3.25-win32-setup.exe +OutFile bitcoin-0.4.00-win32-setup.exe InstallDir $PROGRAMFILES\Bitcoin CRCCheck on XPStyle on BrandingText " " ShowInstDetails show -VIProductVersion 0.3.25.0 +VIProductVersion 0.4.00.0 VIAddVersionKey ProductName Bitcoin VIAddVersionKey ProductVersion "${VERSION}" VIAddVersionKey CompanyName "${COMPANY}" diff --git a/src/main.cpp b/src/main.cpp --- a/src/main.cpp +++ b/src/main.cpp @@ -1830,7 +1830,9 @@ // Ask the first connected node for block updates static int nAskedForBlocks; - if (!pfrom->fClient && (nAskedForBlocks < 1 || vNodes.size() <= 1)) + if (!pfrom->fClient && + (pfrom->nVersion < 32000 || pfrom->nVersion >= 32400) && + (nAskedForBlocks < 1 || vNodes.size() <= 1)) { nAskedForBlocks++; pfrom->PushGetBlocks(pindexBest, uint256(0)); diff --git a/src/net.cpp b/src/net.cpp --- a/src/net.cpp +++ b/src/net.cpp @@ -1349,7 +1349,6 @@ CRITICAL_BLOCK(cs_mapAddresses) { // Add seed nodes if IRC isn't working - static bool fSeedUsed; bool fTOR = (fUseProxy && addrProxy.port == htons(9050)); if (mapAddresses.empty() && (GetTime() - nStart > 60 || fTOR) && !fTestNet) { @@ -1365,35 +1364,6 @@ addr.nTime = GetTime()-GetRand(nOneWeek)-nOneWeek; AddAddress(addr); } - fSeedUsed = true; - } - - if (fSeedUsed && mapAddresses.size() > ARRAYLEN(pnSeed) + 100) - { - // Disconnect seed nodes - set setSeed(pnSeed, pnSeed + ARRAYLEN(pnSeed)); - static int64 nSeedDisconnected; - if (nSeedDisconnected == 0) - { - nSeedDisconnected = GetTime(); - CRITICAL_BLOCK(cs_vNodes) - BOOST_FOREACH(CNode* pnode, vNodes) - if (setSeed.count(pnode->addr.ip)) - pnode->fDisconnect = true; - } - - // Keep setting timestamps to 0 so they won't reconnect - if (GetTime() - nSeedDisconnected < 60 * 60) - { - BOOST_FOREACH(PAIRTYPE(const vector, CAddress)& item, mapAddresses) - { - if (setSeed.count(item.second.ip) && item.second.nTime != 0) - { - item.second.nTime = 0; - CAddrDB().WriteAddress(item.second); - } - } - } } } diff --git a/src/serialize.h b/src/serialize.h --- a/src/serialize.h +++ b/src/serialize.h @@ -60,7 +60,7 @@ class CAutoFile; static const unsigned int MAX_SIZE = 0x02000000; -static const int VERSION = 32500; +static const int VERSION = 40000; static const char* pszSubVer = ""; static const bool VERSION_IS_BETA = true; diff --git a/src/util.cpp b/src/util.cpp --- a/src/util.cpp +++ b/src/util.cpp @@ -921,16 +921,22 @@ struct CLockLocation { - std::string mutexName; - std::string sourceFile; - int sourceLine; - CLockLocation(const char* pszName, const char* pszFile, int nLine) { mutexName = pszName; sourceFile = pszFile; sourceLine = nLine; } + + std::string ToString() const + { + return mutexName+" "+sourceFile+":"+itostr(sourceLine); + } + +private: + std::string mutexName; + std::string sourceFile; + int sourceLine; }; typedef std::vector< std::pair > LockStack; @@ -948,14 +954,14 @@ { if (i.first == mismatch.first) printf(" (1)"); if (i.first == mismatch.second) printf(" (2)"); - printf(" %s %s:%d\n", i.second.mutexName.c_str(), i.second.sourceFile.c_str(), i.second.sourceLine); + printf(" %s\n", i.second.ToString().c_str()); } printf("Current lock order is:\n"); BOOST_FOREACH(const PAIRTYPE(CCriticalSection*, CLockLocation)& i, s1) { if (i.first == mismatch.first) printf(" (1)"); if (i.first == mismatch.second) printf(" (2)"); - printf(" %s %s:%d\n", i.second.mutexName.c_str(), i.second.sourceFile.c_str(), i.second.sourceLine); + printf(" %s\n", i.second.ToString().c_str()); } } @@ -965,6 +971,7 @@ if (lockstack.get() == NULL) lockstack.reset(new LockStack); + if (fDebug) printf("Locking: %s\n", locklocation.ToString().c_str()); dd_mutex.lock(); (*lockstack).push_back(std::make_pair(c, locklocation)); @@ -990,7 +997,14 @@ static void pop_lock() { + if (fDebug) + { + const CLockLocation& locklocation = (*lockstack).rbegin()->second; + printf("Unlocked: %s\n", locklocation.ToString().c_str()); + } + dd_mutex.lock(); (*lockstack).pop_back(); + dd_mutex.unlock(); } void CCriticalSection::Enter(const char* pszName, const char* pszFile, int nLine)