Jeff Garzik
b9ff2970b9
P2P: improve RX/TX flow control
...
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-29 23:56:25 +01:00
Jeff Garzik
bc2f5aa72c
P2P, cosmetic: break out buffer send(2) code into separate function
2013-03-29 23:56:25 +01:00
Jeff Garzik
607dbfdeaf
P2P: parse network datastream into header/data components in socket thread
...
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-29 23:56:25 +01:00
Jeff Garzik
ea83336f4e
Merge pull request #2411 from TheBlueMatt/master
...
(finally) Remove IRC Seed support now that lfnet is down.
2013-03-29 08:03:18 -07:00
Jeff Garzik
8455310a7b
Merge pull request #2385 from gavinandresen/alertnotify
...
alertnotify, so bitcoind users can get email/sms/whatever of alerts
2013-03-29 07:49:56 -07:00
Wladimir J. van der Laan
ea62520426
Merge pull request #2424 from laanwj/2013_03_capslock
...
Improve capslock detection on non-us keyboards
2013-03-29 02:56:43 -07:00
Wladimir J. van der Laan
09dfa86baf
qt: Improve capslock detection on non-us keyboards (issue #1855 )
...
On non-us keyboards you can obtain lower case characters even pressing
the SHIFT, this caused false positives.
2013-03-29 10:55:23 +01:00
Wladimir J. van der Laan
a6d32c94ab
Merge remote-tracking branch 'codeshark/multiwallet-qt-no-core' (pull #2220 )
...
Conflicts:
src/qt/bitcoingui.cpp
2013-03-29 09:54:00 +01:00
Wladimir J. van der Laan
1be4bbadc7
Merge pull request #2350 from DavidGriffith/master
...
Also copy the address to the X11 clipboard (the one you middle-click to paste)
2013-03-29 01:45:59 -07:00
Wladimir J. van der Laan
8142ac2c18
Merge pull request #2393 from r000n/staging
...
Staging - GUI fixes for upstream
2013-03-29 01:40:32 -07:00
Wladimir J. van der Laan
792f9c81eb
Merge pull request #2396 from Nothing4You/add-copytxid-contextmenu-qt-txoverview
...
Adding 'copy txid' to qt tx overview context menu
2013-03-29 01:39:41 -07:00
Matt Corallo
6a1d6e03da
Add a new testnet dnsseed (currently only static list, will update)
2013-03-24 20:02:18 -04:00
Matt Corallo
97372c2d22
Update contrib/debian (including IRC removal)
2013-03-24 20:02:18 -04:00
Matt Corallo
c2efd981aa
(finally) Remove IRC Seed support now that lfnet is down.
2013-03-24 19:38:19 -04:00
Roman Mindalev
f688056f9d
Show window in center of screen on first launch
2013-03-23 08:21:42 +04:00
Roman Mindalev
e11f1806b6
Save & restore window size and position
2013-03-23 08:21:33 +04:00
Roman Mindalev
afee36d379
Fix transaction fee in uBTC
...
Step for buttons 'up' and 'down' - 0.001. With BTC and mBTC all ok, but
0.001 uBTC is lower than minimal value (satoshi)
User should press 10 times on 'up' button to get 0.01 uBTC
2013-03-23 08:20:51 +04:00
Eric Lombrozo
67155d9299
Minimal architectural changes necessary to support multiple wallets in bitcoin-qt
...
- This commit is a minimal restructuring necessary to support multiple wallets in the UI. Please see multiwallet-qt.txt for details.
2013-03-22 11:09:08 -07:00
Wladimir J. van der Laan
dfd71bb450
Merge pull request #2400 from gladoscc/master
...
Update readme copyright 2012 to 2013
2013-03-22 09:10:17 -07:00
gladoscc
0c3ab26d36
2012 to 2013
2013-03-22 15:49:17 +11:00
Gavin Andresen
3d9d2d423b
Recommend alertnotify
2013-03-21 10:08:21 -04:00
Richard Schwab
598889973b
Adding 'copy txid' to qt tx overview context menu
2013-03-21 11:30:12 +01:00
Gavin Andresen
8ab14e6976
Merge pull request #2384 from gmaxwell/trim_error0
...
Deleting everything except the wallet will not help recover from BDB errors.
2013-03-19 14:20:22 -07:00
Gavin Andresen
e5f163a041
-alertnotify=<cmd>
...
Runs a shell command when an AppliesToMe() alert is received.
%s in the <cmd> string is replaced with the alert.strStatusBar
message.
2013-03-19 15:16:30 -04:00
Gregory Maxwell
124f823714
Deleting everything except the wallet will not help recover from BDB errors.
...
Now that the wallet is the only thing in BDB any DB open errors must be
from the wallet itself-- so deleting everything else will not likely help.
2013-03-19 10:11:43 -07:00
Wladimir J. van der Laan
1a1ce49155
Merge pull request #2378 from Diapolo/translations
...
update bitcoin_en.ts and bitcoinstrings.cpp
2013-03-19 10:01:05 -07:00
Wladimir J. van der Laan
f42720d0f6
Merge pull request #2215 from Diapolo/Qt_sendfrom_addrbook
...
Bitcoin-Qt: add "send coins" to context menu in addressbook
2013-03-19 09:59:38 -07:00
Wladimir J. van der Laan
b804f1cd56
Merge pull request #2332 from Diapolo/init_messages
...
harmonize 2 init messages and remove one
2013-03-19 09:57:57 -07:00
Wladimir J. van der Laan
db725e64b2
Merge pull request #2376 from Diapolo/pro-file
...
re-enable -D_FORTIFY_SOURCE=2 for all platforms
2013-03-19 09:55:50 -07:00
Wladimir J. van der Laan
e5644e88e8
Merge pull request #2382 from Diapolo/2013
...
Bitcoin-Qt: update Win executable file meta-data copyright
2013-03-19 09:54:54 -07:00
Gavin Andresen
1472308d67
Some unit tests for CAlert
2013-03-19 11:35:04 -04:00
Philip Kaufmann
86b9c4aa67
re-enable -D_FORTIFY_SOURCE=2 for all platforms
2013-03-19 07:35:26 +01:00
Philip Kaufmann
2547d2a90b
Bitcoin-Qt: update Win executable file meta-data copyright
2013-03-19 00:04:54 +01:00
Philip Kaufmann
c83dd7490c
update bitcoin_en.ts and bitcoinstrings.cpp
2013-03-18 08:29:36 +01:00
Philip Kaufmann
311993ab10
Bitcoin-Qt: add "send coins" to context menu in addressbook
...
- allows to directly select an address from the addressbook, chose "send
coins" from the context menu, which sends you to sendcoins tab and fills
in the selected address
2013-03-18 07:44:22 +01:00
Wladimir J. van der Laan
74e4d80068
Merge pull request #2210 from Diapolo/Qt_header_cpp_cleanup
...
Bitcoin-Qt: massive header and cpp cleanup
2013-03-17 22:58:37 -07:00
Gavin Andresen
d3e8c6a9d3
Update unit test to match rule enforcement starts 21 March
2013-03-17 22:01:59 -04:00
Gavin Andresen
f817c496a1
Checkpoint at first block in 11 March chain fork
2013-03-17 21:53:17 -04:00
Gavin Andresen
402f19b645
Before 15 May, limit created block size to 500K
2013-03-17 21:53:01 -04:00
Gavin Andresen
8c222dca4f
CheckBlock rule until 15-May for 10,000 BDB lock compatibility
2013-03-17 21:52:47 -04:00
Philip Kaufmann
32af5266cf
Bitcoin-Qt: massive header and cpp cleanup
...
- try to enforce the same style to all Qt related files
- remove unneeded includes from the files
- add missing Q_OBJECT, QT_BEGIN_NAMESPACE / QT_END_NAMESPACE
- prepares for a pull-req to include Qt5 compatibility
2013-03-17 18:28:00 +01:00
Philip Kaufmann
e1ca89df1f
harmonize 2 init messages and remove one
...
- harmonize the database related init messages
- as we have a thread for importing blocks, that init message is obsolete
2013-03-13 09:17:59 +01:00
Gavin Andresen
1a9ee5da32
Merge pull request #2336 from petertodd/invalid-opcode-coverage
...
Explicitly unittest the canonical prunable txout format
2013-03-11 16:16:51 -07:00
Gavin Andresen
5d6f36296e
Merge pull request #2337 from petertodd/gitignore-test-files
...
Minor: Add two unittest-related files to .gitignore
2013-03-11 16:08:22 -07:00
Gavin Andresen
bd80c66ac0
Merge pull request #2348 from freewil/crpccommand-table
...
make vRPCCommands comment match property names
2013-03-11 16:07:43 -07:00
David Griffith
4db114667f
Also copy the address to the X11 clipboard (the one you middle-click to paste)
2013-03-09 00:37:21 -08:00
freewil
10ef361169
CRPCCommand.unlocked -> CRPCCommand.threadSafe
...
unlocked could be confused with wallet encryption
2013-03-07 06:18:55 -05:00
freewil
dcf8b8fd9e
make vRPCCommands comment match property names
2013-03-07 05:29:18 -05:00
Wladimir J. van der Laan
a0db772d13
Merge pull request #2335 from petertodd/readme-typo
...
Minor: Fix typo in README.md
2013-03-01 06:11:06 -08:00
Peter Todd
091f184190
Test canonical prunable txout format explicitly
2013-03-01 02:41:28 -05:00