aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2013-04-04Drop release times for CNodePieter Wuille
It seems there were two mechanisms for assessing whether a CNode was still in use: a refcount and a release timestamp. The latter seems to have been there for a long time, as a safety mechanism. However, this timer also keeps CNode objects alive for far longer than necessary after disconnects, potentially opening up a DoS window. This commit removes the timestamp-based mechanism, and replaces it with an assert(nRefCount >= 0), to verify that the refcounting is indeed correctly working.
2013-04-03Merge pull request #2423 from TheBlueMatt/limitedmapalreadyaskedforGavin Andresen
Limited mapAlreadyAskedFor
2013-04-03Merge pull request #2357 from gavinandresen/shutdowncleanupGavin Andresen
Thread / shutdown cleanup
2013-04-03Merge pull request #2453 from sipa/txstatsGavin Andresen
Update transaction statistics
2013-04-04Update transaction statisticsPieter Wuille
As these were not updated when 'backporting' the 225430 checkpoint into head. Additionally, also report verification progress in debug.log, and tweak the sigcheck-verification-speed-factor a bit.
2013-04-03Have Qt poll for shutdown requested, the QT way.Gavin Andresen
2013-04-03Clean up shutdown processGavin Andresen
2013-04-03Port Thread* methods to boost::thread_groupGavin Andresen
2013-04-03LoopForever and ThreadTrace helpersGavin Andresen
2013-04-03Bitcoin-Qt: updates to addressbookpagePhilip Kaufmann
- use labelExplanation for sending and receiving tab and move the string from the ui-file to the source - ensure that the table holding the label and address is resized so that the address column fits the address and the label column is stretched to fit the window size - rename some stuff for much easier readbility in the code (I find it hard to get the meaning of stuff like labels or buttons)
2013-04-03Rename util.h Sleep --> MilliSleepGavin Andresen
Two reasons for this change: 1. Need to always use boost::thread's sleep, even on Windows, so the sleeps can be interrupted (prior code used Windows' built-in Sleep). 2. I always forgot what units the old Sleep took.
2013-04-03Shutdown cleanup prep-workGavin Andresen
Create a boost::thread_group object at the qt/bitcoind main-loop level that will hold pointers to all the main-loop threads. This will replace the vnThreadsRunning[] array. For testing, ported the BitcoinMiner threads to use its own boost::thread_group.
2013-04-03Fix signed/unsigned comparison warningsGavin Andresen
2013-04-03Merge pull request #2450 from Diapolo/Qt_fix_VMTabWladimir J. van der Laan
Bitcoin-Qt: fix opening verify message tab via main menu
2013-04-03Bitcoin-Qt: fix GUI after initial multi-wallet patchPhilip Kaufmann
- adds 6 methods in BitcoinGUI to access some actions needed by the new WalletView class - updates WalletView class to use these instead of trying to duplicate these - cleanup walletview.{cpp/h} and remove all unneeded stuff - this fixes problems with tabs toolbar (#2451) and export broken (#2436) - more details in #2447
2013-04-03Bitcoin-Qt: fix opening verify message tab via main menuPhilip Kaufmann
2013-04-02Merge pull request #2448 from Diapolo/Qt_qAppWladimir J. van der Laan
Bitcoin-Qt: only use qApp for Q(Core)Application::instance()
2013-04-02new mac osx icon (including SVG Version)Jonas Schnelli
- added new created and documented svg version of shaded icon - changed "B" background to white (no longer transparent) - removed PSD (Adobe Photoshop) document - license is now MIT Signed-off-by: Jonas Schnelli <jonas.schnelli@include7.ch>
2013-04-02Merge branch 'master' of git://github.com/bitcoin/bitcoinJonas Schnelli
2013-04-02Merge pull request #2420 from sipa/globcleanGavin Andresen
Global cleanups
2013-04-02Merge pull request #2431 from jgarzik/gen-bitcoins-initGavin Andresen
Move GenerateBitcoins() call out of net.cpp's StartNode()
2013-04-02Bitcoin-Qt: only use qApp for Q(Core)Application::instance()Philip Kaufmann
2013-04-02Bitcoin-Qt: small RPCConsole cleanupPhilip Kaufmann
- add missing initalisation for clientModel - remove unneded RPCExecutor::start() code
2013-04-02Merge pull request #2441 from Diapolo/Qt_fix_copy_context_menuWladimir J. van der Laan
Bitcoin-Qt: fix copy via context-menu broken
2013-04-02translation base files update 2013-04-02Philip Kaufmann
- also includes a small change to a string in bitcoinrpc.cpp, which is not on Transifex anyway, so is safe to merge
2013-04-02Bitcoin-Qt: fix copy via context-menu brokenPhilip Kaufmann
- as QClipboard::Selection isn't available on Windows ensure that the correct mode is called, but sill allow selection for e.g. X11 - start conversion from QCoreApplication::instance() to qApp in guiutil.cpp (I intend to harmonize this all over the source with my Qt5 compatibility pull)
2013-04-02Merge pull request #2428 from r000n/stagingWladimir J. van der Laan
Simplify titles of tabs in main window
2013-04-02new mac osx iconJonas Schnelli
check why/preview: http://dl.dropbox.com/u/7383846/new_bitcoin_qt_mac_icon.png - according to official bitcoin logo - no chopped shadow - retina-screen support Signed-off-by: Jonas Schnelli <jonas.schnelli@include7.ch>
2013-04-01Move mapAlreadyAskedFor to limitedmapMatt Corallo
This will result in re-requesting invs if we are under heavy inv load, however as long as we get no more than 16,000 invs in two minutes, this should have no effect on runtime behavior.
2013-04-01Add a limitedmap class similar to mrusetMatt Corallo
2013-04-01Revert "Actually use mapAlreadyAskedFor."Matt Corallo
This reverts commit 643160f6e7e5e8ca84bc7d2c1a0f37d9cf43a6e1. Turns out this commit was useless after a more careful reading of CNode::AskFor
2013-04-01Merge pull request #2387 from Diapolo/translationsWladimir J. van der Laan
translations update 2013-03-19 (bitcoinstrings.cpp / bitcoin_en.ts)
2013-04-01Merge pull request #2437 from Diapolo/Qt_fixesWladimir J. van der Laan
fix "send coins" via context menu in address book
2013-04-01Bitcoin-Qt: fix debug windowPhilip Kaufmann
- fix debug window, by re-adding rpcConsole->setClientModel(clientModel); in BitcoinGUI::setClientModel(), which was removed by #2220
2013-04-01fix "send coins" via context menu in address bookPhilip Kaufmann
- the send coins context menu entry was not working anymore, because a non current version of #2220 was merged onto current master - also removes some unneeded spaces and adds a comment to WalletModel::getNumTransactions()
2013-03-31qt: remove transaction count from overview pageWladimir J. van der Laan
It was needlessly confusing people, as it doesn't necessarily match the number of transactions in the transaction list.
2013-03-31Words in English language are more short than in other langs usually.Roman Mindalev
Tabs don't fits in line in Spanish/German/Russian when they has two words. Wallet has limited functionality. It can send & receive coins. So we can safely rename "Send coins" to "Send" and "Receive coins" to "Receive". Address book is just stored addresses.
2013-03-31Move GenerateBitcoins() call out of net.cpp's StartNode()Jeff Garzik
The internal miner is closely bound to the wallet engine, not the blockchain engine.
2013-03-30Merge pull request #2386 from Diapolo/Mac_GUIWladimir J. van der Laan
Bitcoin-Qt: ensure createTrayIconMenu() is always called on Mac
2013-03-30Merge pull request #2361 from L2G/font-tweakWladimir J. van der Laan
Clean up font size in main window for observed inconsistency in Mac OS
2013-03-30Merge pull request #2422 from sipa/nowalcachePieter Wuille
Don't use -dbcache for BDB anymore
2013-03-30Process getdata invs separately until send buffer overflowsPieter Wuille
There exists a per-message-processed send buffer overflow protection, where processing is halted when the send buffer is larger than the allowed maximum. This protection does not apply to individual items, however, and getdata has the potential for causing large amounts of data to be sent. In case several hundreds of blocks are requested in one getdata, the send buffer can easily grow 50 megabytes above the send buffer limit. This commit breaks up the processing of getdata requests, remembering them inside a CNode when too many are requested at once.
2013-03-30Bitcoin-Qt: ensure createTrayIconMenu() is always called on MacPhilip Kaufmann
- this should prevent GUI issues on Mac that were observed before (disappearing GUI - see #1522) - the patch ensures, that createTrayIconMenu() is always called on Mac to process and use our MacDockIconHandler
2013-03-29Use per-message send buffer, rather than per connectionPieter Wuille
2013-03-29Some fixes to CNetMessage processingPieter Wuille
* Change CNode::vRecvMsg to be a deque instead of a vector (less copying) * Make sure to acquire cs_vRecvMsg in CNode::CloseSocketDisconnect (as it may be called without that lock).
2013-03-29P2P: improve RX/TX flow controlJeff Garzik
1) "optimistic write": Push each message to kernel socket buffer immediately. 2) If there is write data at select time, that implies send() blocked during optimistic write. Drain write queue, before receiving any more messages. This avoids needlessly queueing received data, if the remote peer is not themselves receiving data. Result: write buffer (and thus memory usage) is kept small, DoS potential is slightly lower, and TCP flow control signalling is properly utilized. The kernel will queue data into the socket buffer, then signal the remote peer to stop sending data, until we resume reading again.
2013-03-29P2P, cosmetic: break out buffer send(2) code into separate functionJeff Garzik
2013-03-29P2P: parse network datastream into header/data components in socket threadJeff Garzik
Replaces CNode::vRecv buffer with a vector of CNetMessage's. This simplifies ProcessMessages() and eliminates several redundant data copies. Overview: * socket thread now parses incoming message datastream into header/data components, as encapsulated by CNetMessage * socket thread adds each CNetMessage to a vector inside CNode * message thread (ProcessMessages) iterates through CNode's CNetMessage vector Message parsing is made more strict: * Socket is disconnected, if message larger than MAX_SIZE or if CMessageHeader deserialization fails (latter is impossible?). Previously, code would simply eat garbage data all day long. * Socket is disconnected, if we fail to find pchMessageStart. We do not search through garbage, to find pchMessageStart. Each message must begin precisely after the last message ends. ProcessMessages() always processes a complete message, and is more efficient: * buffer is always precisely sized, using CDataStream::resize(), rather than progressively sized in 64k chunks. More efficient for large messages like "block". * whole-buffer memory copy eliminated (vRecv -> vMsg) * other buffer-shifting memory copies eliminated (vRecv.insert, vRecv.erase)
2013-03-29Merge pull request #2411 from TheBlueMatt/masterJeff Garzik
(finally) Remove IRC Seed support now that lfnet is down.
2013-03-29Merge pull request #2385 from gavinandresen/alertnotifyJeff Garzik
alertnotify, so bitcoind users can get email/sms/whatever of alerts