From 34709a786c3cefb11d5677bcad4bb764a0fba31d Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 18 Jun 2012 21:58:20 +0800 Subject: [PATCH 01/13] build instructions: Qt is not uppercase (Upstream: 8b7b3be76529612ebe219e315a273d05066d2118) --- doc/build-msw.txt | 2 +- doc/build-osx.txt | 2 +- doc/build-unix.txt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/build-msw.txt b/doc/build-msw.txt index 2e54b029fc6..5d871e15de9 100644 --- a/doc/build-msw.txt +++ b/doc/build-msw.txt @@ -7,7 +7,7 @@ cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard. -See readme-qt.rst for instructions on building Bitcoin QT, the +See readme-qt.rst for instructions on building Bitcoin-Qt, the graphical user interface. WINDOWS BUILD NOTES diff --git a/doc/build-osx.txt b/doc/build-osx.txt index 800244153a8..f06df50ebdf 100644 --- a/doc/build-osx.txt +++ b/doc/build-osx.txt @@ -12,7 +12,7 @@ Laszlo Hanyecz Douglas Huff -See readme-qt.rst for instructions on building Bitcoin QT, the +See readme-qt.rst for instructions on building Bitcoin-Qt, the graphical user interface. Tested on 10.5 and 10.6 intel. PPC is not supported because it's big-endian. diff --git a/doc/build-unix.txt b/doc/build-unix.txt index 0d335dfa23a..565b191ceff 100644 --- a/doc/build-unix.txt +++ b/doc/build-unix.txt @@ -17,8 +17,8 @@ To Build cd src/ make -f makefile.unix # Headless bitcoin -See readme-qt.rst for instructions on building Bitcoin QT, -the graphical bitcoin. +See readme-qt.rst for instructions on building Bitcoin-Qt, +the graphical user interface. Dependencies ------------ From d2ee96d88f3db45b8b4f7a1ed97f7b62054f70b2 Mon Sep 17 00:00:00 2001 From: Philip Kaufmann Date: Mon, 18 Jun 2012 22:48:35 +0200 Subject: [PATCH 02/13] GUI: ensure a changed bitcoin unit immediately updates the tx list amounts --- src/qt/transactiontablemodel.cpp | 7 +++++++ src/qt/transactiontablemodel.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index 28620bf3aa2..a8ffe62ed99 100644 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -218,6 +218,8 @@ TransactionTableModel::TransactionTableModel(CWallet* wallet, WalletModel *paren QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(update())); timer->start(MODEL_UPDATE_DELAY); + + connect(walletModel->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit())); } TransactionTableModel::~TransactionTableModel() @@ -619,3 +621,8 @@ QModelIndex TransactionTableModel::index(int row, int column, const QModelIndex } } +void TransactionTableModel::updateDisplayUnit() +{ + // emit dataChanged to update Amount column with the current unit + emit dataChanged(index(0, Amount), index(priv->size()-1, Amount)); +} diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h index db88a0604f2..3efeaa61bca 100644 --- a/src/qt/transactiontablemodel.h +++ b/src/qt/transactiontablemodel.h @@ -74,6 +74,8 @@ private: private slots: void update(); +public slots: + void updateDisplayUnit(); friend class TransactionTablePriv; }; From 6d6995bc83c3d97e5d99e45b40e76c34b772ebcc Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Wed, 20 Jun 2012 18:13:16 +0200 Subject: [PATCH 03/13] Update my GPG key --- contrib/gitian-downloader/sipa-key.pgp | Bin 108922 -> 109468 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contrib/gitian-downloader/sipa-key.pgp b/contrib/gitian-downloader/sipa-key.pgp index a52a5deb1b6c4691bb7073fc819080f66df6d2f2..ffa09bb4ad276c2380686a7e1619d18dce71c8a1 100644 GIT binary patch delta 1670 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 From 3edb53eeed578fcccb13c4205c950f6938585240 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 20 Jun 2012 16:15:46 +0000 Subject: [PATCH 04/13] gitian-downloader: Update luke-jr's key --- contrib/gitian-downloader/luke-jr-key.pgp | Bin 5467 -> 7322 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contrib/gitian-downloader/luke-jr-key.pgp b/contrib/gitian-downloader/luke-jr-key.pgp index c40917d78c512ac13414b0d9e92c59f57e6a9c77..275b041d2059ece19e1a4ade74b32654ab3a2c56 100644 GIT binary patch delta 5057 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 delta 3198 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 From 04ae8e1a1b82ec59d7b4b720de0d5d1ebe0e12ba Mon Sep 17 00:00:00 2001 From: Michael Ford Date: Thu, 21 Jun 2012 09:36:20 +0800 Subject: [PATCH 05/13] Update master --- INSTALL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/INSTALL b/INSTALL index 6989d8902d0..fe7de5123f6 100644 --- a/INSTALL +++ b/INSTALL @@ -1,9 +1,9 @@ Building Bitcoin -See doc/readme-qt.rst for instructions on building Bitcoin QT, +See doc/readme-qt.rst for instructions on building Bitcoin-Qt, the intended-for-end-users, nice-graphical-interface, reference implementation of Bitcoin. See doc/build-*.txt for instructions on building bitcoind, the intended-for-services, no-graphical-interface, reference -implementation of Bitcoin. +implementation of Bitcoin. \ No newline at end of file From a0cbcfd6ed9607e481211826c33cdd15e2cee579 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Thu, 5 Jul 2012 23:05:58 +0000 Subject: [PATCH 06/13] Update Debian "Use system json-spirit" patch to apply ("Fixed" upstream in 3563824c602cb2b42cc21970935f45ce646c3964) --- contrib/debian/patches/1001_use_system_json-spirit.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/debian/patches/1001_use_system_json-spirit.patch b/contrib/debian/patches/1001_use_system_json-spirit.patch index 56a20af38cf..d471bded8f8 100644 --- a/contrib/debian/patches/1001_use_system_json-spirit.patch +++ b/contrib/debian/patches/1001_use_system_json-spirit.patch @@ -1,8 +1,8 @@ Description: Use system JSON Spirit library Author: Jonas Smedegaard -Last-Update: 2011-05-17 ---- a/src/rpc.cpp -+++ b/src/rpc.cpp +Last-Update: 2012-07-05 +--- a/src/bitcoinrpc.cpp ++++ b/src/bitcoinrpc.cpp @@ -12,9 +12,7 @@ #include typedef boost::asio::ssl::stream SSLStream; From 46dbdebb5918b170963f1b5a14c5ef0148262e1e Mon Sep 17 00:00:00 2001 From: Philip Kaufmann Date: Sun, 24 Jun 2012 18:03:03 +0200 Subject: [PATCH 07/13] small updates to Bitcoin-Qt project file - re-word a comment and remove a space --- bitcoin-qt.pro | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bitcoin-qt.pro b/bitcoin-qt.pro index b5cee48e9f7..d79e025fed4 100644 --- a/bitcoin-qt.pro +++ b/bitcoin-qt.pro @@ -5,15 +5,15 @@ INCLUDEPATH += src src/json src/qt DEFINES += QT_GUI BOOST_THREAD_USE_LIB CONFIG += no_include_pwd -# for boost 1.37, add -mt to the boost libraries +# for boost 1.37, add -mt to the boost libraries # use: qmake BOOST_LIB_SUFFIX=-mt # for boost thread win32 with _win32 sufix # use: BOOST_THREAD_LIB_SUFFIX=_win32-... # or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8 -# Dependency library locations can be customized with BOOST_INCLUDE_PATH, -# BOOST_LIB_PATH, BDB_INCLUDE_PATH, BDB_LIB_PATH -# OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively +# Dependency library locations can be customized with: +# BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH, +# BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively OBJECTS_DIR = build MOC_DIR = build From ee29ad27b365be363fdbc7f4db99c306c090404c Mon Sep 17 00:00:00 2001 From: xanatos Date: Sat, 23 Jun 2012 17:29:34 +0300 Subject: [PATCH 08/13] Changed a comment about a QVariant type --- src/qt/optionsmodel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index 775362d6364..debd614e543 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -24,7 +24,7 @@ public: MinimizeOnClose, // bool ConnectSOCKS4, // bool ProxyIP, // QString - ProxyPort, // QString + ProxyPort, // int Fee, // qint64 DisplayUnit, // BitcoinUnits::Unit DisplayAddresses, // bool From 26199789ed6b8ec8bebeee67df1df4b29d465a79 Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 29 Jun 2012 17:26:45 +0800 Subject: [PATCH 09/13] Fix a few typos --- src/util.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index cae01dffe63..6e31540f2ad 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -852,7 +852,7 @@ void ShrinkDebugFile() // "Never go to sea with two chronometers; take one or three." // Our three time sources are: // - System clock -// - Median of other nodes's clocks +// - Median of other nodes clocks // - The user (asking the user to fix the system clock if the first two disagree) // int64 GetTime() @@ -958,7 +958,7 @@ string FormatFullVersion() // --> may result in deadlock between the two threads, depending on when they run. // Solution implemented here: // Keep track of pairs of locks: (A before B), (A before C), etc. -// Complain if any thread trys to lock in a different order. +// Complain if any thread tries to lock in a different order. // struct CLockLocation From 46761b339cd57c5de56c2ae5c7a6d8fa592567ce Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 29 Jun 2012 17:26:45 +0800 Subject: [PATCH 10/13] Fix a few typos --- src/base58.h | 6 +++--- src/util.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/base58.h b/src/base58.h index d92054da042..8ee05b073bd 100644 --- a/src/base58.h +++ b/src/base58.h @@ -117,7 +117,7 @@ inline bool DecodeBase58(const char* psz, std::vector& vchRet) } // Decode a base58-encoded string str into byte vector vchRet -// returns true if decoding is succesful +// returns true if decoding is successful inline bool DecodeBase58(const std::string& str, std::vector& vchRet) { return DecodeBase58(str.c_str(), vchRet); @@ -137,7 +137,7 @@ inline std::string EncodeBase58Check(const std::vector& vchIn) } // Decode a base58-encoded string psz that includes a checksum, into byte vector vchRet -// returns true if decoding is succesful +// returns true if decoding is successful inline bool DecodeBase58Check(const char* psz, std::vector& vchRet) { if (!DecodeBase58(psz, vchRet)) @@ -158,7 +158,7 @@ inline bool DecodeBase58Check(const char* psz, std::vector& vchRe } // Decode a base58-encoded string str that includes a checksum, into byte vector vchRet -// returns true if decoding is succesful +// returns true if decoding is successful inline bool DecodeBase58Check(const std::string& str, std::vector& vchRet) { return DecodeBase58Check(str.c_str(), vchRet); diff --git a/src/util.cpp b/src/util.cpp index 03112038285..1f120e18d6a 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -946,7 +946,7 @@ void ShrinkDebugFile() // "Never go to sea with two chronometers; take one or three." // Our three time sources are: // - System clock -// - Median of other nodes's clocks +// - Median of other nodes clocks // - The user (asking the user to fix the system clock if the first two disagree) // static int64 nMockTime = 0; // For unit testing @@ -1061,7 +1061,7 @@ string FormatFullVersion() // --> may result in deadlock between the two threads, depending on when they run. // Solution implemented here: // Keep track of pairs of locks: (A before B), (A before C), etc. -// Complain if any thread trys to lock in a different order. +// Complain if any thread tries to lock in a different order. // struct CLockLocation From a1816267e6bf6d7fe017f089c5720da1a693a868 Mon Sep 17 00:00:00 2001 From: Philip Kaufmann Date: Sat, 30 Jun 2012 01:16:22 +0200 Subject: [PATCH 11/13] fix a typo in OptionsDialog --- src/qt/optionsdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index bac01829a7a..6018419fbc1 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -188,7 +188,7 @@ MainOptionsPage::MainOptionsPage(QWidget *parent): #endif connect_socks4 = new QCheckBox(tr("&Connect through SOCKS4 proxy:")); - connect_socks4->setToolTip(tr("Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)")); + connect_socks4->setToolTip(tr("Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)")); layout->addWidget(connect_socks4); QHBoxLayout *proxy_hbox = new QHBoxLayout(); From cf6ab20d8b53503a4727bd86d1747efbe013a417 Mon Sep 17 00:00:00 2001 From: fanquake Date: Sat, 30 Jun 2012 17:05:28 +0800 Subject: [PATCH 12/13] Fix a couple more typos --- src/base58.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base58.h b/src/base58.h index 8ee05b073bd..9bd078caa2b 100644 --- a/src/base58.h +++ b/src/base58.h @@ -69,7 +69,7 @@ inline std::string EncodeBase58(const std::vector& vch) } // Decode a base58-encoded string psz into byte vector vchRet -// returns true if decoding is succesful +// returns true if decoding is successful inline bool DecodeBase58(const char* psz, std::vector& vchRet) { CAutoBN_CTX pctx; From 580f7cd73189c6840b354c9ed6a0227161150fcc Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Sun, 1 Jul 2012 20:23:26 -0400 Subject: [PATCH 13/13] Do not consider inbound peers for outbound network group exclusion. Bitcoin will not make an outbound connection to a network group (/16 for IPv4) that it is already connected to. This means that if an attacker wants good odds of capturing all a nodes outbound connections he must have hosts on a a large number of distinct groups. Previously both inbound and outbound connections were used to feed this exclusion. The use of inbound connections, which can be controlled by the attacker, actually has the potential of making sibyl attacks _easier_: An attacker can start up hosts in groups which house many honest nodes and make outbound connections to the victim to exclude big swaths of honest nodes. Because the attacker chooses to make the outbound connection he can always beat out honest nodes for the consumption of inbound slots. At _best_ the old behavior increases attacker costs by a single group (e.g. one distinct group to use to fill up all your inbound slots), but at worst it allows the attacker to select whole networks you won't connect to. This commit makes the nodes use only outbound links to exclude network groups for outbound connections. Fancier things could be done, like weaker exclusion for inbound groups... but simplicity is good and I don't believe more complexity is currently needed. --- src/net.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 2ff539a18e8..7637f8854c3 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1491,12 +1491,14 @@ void ThreadOpenConnections2(void* parg) CAddress addrConnect; int64 nBest = std::numeric_limits::min(); - // Only connect to one address per a.b.?.? range. + // Only connect out to one peer per network group (/16 for IPv4). // Do this here so we don't have to critsect vNodes inside mapAddresses critsect. set setConnected; CRITICAL_BLOCK(cs_vNodes) BOOST_FOREACH(CNode* pnode, vNodes) - setConnected.insert(pnode->addr.ip & 0x0000ffff); + if (!pnode->fInbound) { + setConnected.insert(pnode->addr.ip & 0x0000ffff); + } CRITICAL_BLOCK(cs_mapAddresses) {