aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #9441: Net: Massive speedup. Net locks overhaulPieter Wuille2017-01-134-125/+107
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e60360e net: remove cs_vRecvMsg (Cory Fields) 991955e net: add a flag to indicate when a node's send buffer is full (Cory Fields) c6e8a9b net: add a flag to indicate when a node's process queue is full (Cory Fields) 4d712e3 net: add a new message queue for the message processor (Cory Fields) c5a8b1b net: rework the way that the messagehandler sleeps (Cory Fields) c72cc88 net: remove useless comments (Cory Fields) ef7b5ec net: Add a simple function for waking the message handler (Cory Fields) f5c36d1 net: record bytes written before notifying the message processor (Cory Fields) 60befa3 net: handle message accounting in ReceiveMsgBytes (Cory Fields) 56212e2 net: set message deserialization version when it's actually time to deserialize (Cory Fields) 0e973d9 net: remove redundant max sendbuffer size check (Cory Fields) 6042587 net: wait until the node is destroyed to delete its recv buffer (Cory Fields) f6315e0 net: only disconnect if fDisconnect has been set (Cory Fields) 5b4a8ac net: make GetReceiveFloodSize public (Cory Fields) e5bcd9c net: make vRecvMsg a list so that we can use splice() (Cory Fields) 53ad9a1 net: fix typo causing the wrong receive buffer size (Cory Fields)
| * net: remove cs_vRecvMsgCory Fields2017-01-123-30/+8
| | | | | | | | | | | | | | | | | | | | | | vRecvMsg is now only touched by the socket handler thread. The accounting vars (nRecvBytes/nLastRecv/mapRecvBytesPerMsgCmd) are also only used by the socket handler thread, with the exception of queries from rpc/gui. These accesses are not threadsafe, but they never were. This needs to be addressed separately. Also, update comment describing data flow
| * net: add a flag to indicate when a node's send buffer is fullCory Fields2017-01-123-8/+12
| | | | | | | | | | | | | | | | Similar to the recv flag, but this one indicates whether or not the net's send buffer is full. The socket handler checks the send queue when a new message is added and pauses if necessary, and possibly unpauses after each message is drained from its buffer.
| * net: add a flag to indicate when a node's process queue is fullCory Fields2017-01-123-12/+11
| | | | | | | | | | | | | | | | | | Messages are dumped very quickly from the socket handler to the processor, so it's the depth of the processing queue that's interesting. The socket handler checks the process queue's size during the brief message hand-off and pauses if necessary, and the processor possibly unpauses each time a message is popped off of its queue.
| * net: add a new message queue for the message processorCory Fields2017-01-123-16/+24
| | | | | | | | | | This separates the storage of messages from the net and queued messages for processing, allowing the locks to be split.
| * net: rework the way that the messagehandler sleepsCory Fields2017-01-124-37/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to sleep accurately, the message handler needs to know if _any_ node has more processing that it should do before the entire thread sleeps. Rather than returning a value that represents whether ProcessMessages encountered a message that should trigger a disconnnect, interpret the return value as whether or not that node has more work to do. Also, use a global fProcessWake value that can be set by other threads, which takes precedence (for one cycle) over the messagehandler's decision. Note that the previous behavior was to only process one message per loop (except in the case of a bad checksum or invalid header). That was changed in PR #3180. The only change here in that regard is that the current node now falls to the back of the processing queue for the bad checksum/invalid header cases.
| * net: remove useless commentsCory Fields2017-01-121-8/+0
| |
| * net: Add a simple function for waking the message handlerCory Fields2017-01-122-4/+8
| | | | | | | | This may be used publicly in the future
| * net: record bytes written before notifying the message processorCory Fields2017-01-121-1/+1
| |
| * net: handle message accounting in ReceiveMsgBytesCory Fields2017-01-121-3/+4
| | | | | | | | | | | | This allows locking to be pushed down to only where it's needed Also reuse the current time rather than checking multiple times.
| * net: set message deserialization version when it's actually time to deserializeCory Fields2017-01-043-5/+7
| | | | | | | | We'll soon no longer have access to vRecvMsg, and this is more intuitive anyway.
| * net: remove redundant max sendbuffer size checkCory Fields2017-01-041-7/+0
| | | | | | | | | | This is left-over from before there was proper accounting. Hitting 2x the sendbuffer size should not be possible.
| * net: wait until the node is destroyed to delete its recv bufferCory Fields2017-01-041-5/+0
| | | | | | | | | | when vRecvMsg becomes a private buffer, it won't make sense to allow other threads to mess with it anymore.
| * net: only disconnect if fDisconnect has been setCory Fields2017-01-041-2/+1
| | | | | | | | | | These conditions are problematic to check without locking, and we shouldn't be relying on the refcount to disconnect.
| * net: make GetReceiveFloodSize publicCory Fields2017-01-041-2/+1
| | | | | | | | This will be needed so that the message processor can cork incoming messages
| * net: make vRecvMsg a list so that we can use splice()Cory Fields2017-01-043-3/+3
| |
| * net: fix typo causing the wrong receive buffer sizeCory Fields2017-01-041-1/+1
| | | | | | | | | | | | | | Surprisingly this hasn't been causing me any issues while testing, probably because it requires lots of large blocks to be flying around. Send/Recv corks need tests!
* | Merge #9525: test: Include tx data in EXTRA_DISTMarcoFalke2017-01-121-14/+36
|\ \ | | | | | | | | | fa29736 test: Include tx data in EXTRA_DIST (MarcoFalke)
| * | test: Include tx data in EXTRA_DISTMarcoFalke2017-01-121-14/+36
| | |
* | | Merge #9222: Add 'subtractFeeFromAmount' option to 'fundrawtransaction'.Wladimir J. van der Laan2017-01-125-14/+117
|\ \ \ | | | | | | | | | | | | 453bda6 Add 'subtractFeeFromOutputs' option to 'fundrawtransaction'. (Chris Moore)
| * | | Add 'subtractFeeFromOutputs' option to 'fundrawtransaction'.Chris Moore2016-12-135-14/+117
| | | |
* | | | Merge #9468: [Depends] Dependency updates for 0.14.0Wladimir J. van der Laan2017-01-127-24/+43
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7f1fa99 [depends] native_ds_store 1.1.0 (fanquake) c6347ae [depends] dbus 1.10.14 (fanquake) a4c6da0 [depends] ccache 3.3.3 (fanquake) 6019d21 [depends] FreeType 2.7.1 (fanquake) 4ed6faf [depends] Boost 1.63.0 (fanquake) 8ac1830 [depends] Latest config.guess and config.sub (fanquake)
| * | | | [depends] native_ds_store 1.1.0fanquake2017-01-111-3/+3
| | | | |
| * | | | [depends] dbus 1.10.14fanquake2017-01-111-2/+2
| | | | |
| * | | | [depends] ccache 3.3.3fanquake2017-01-111-2/+2
| | | | |
| * | | | [depends] FreeType 2.7.1fanquake2017-01-111-2/+2
| | | | |
| * | | | [depends] Boost 1.63.0fanquake2017-01-111-3/+3
| | | | |
| * | | | [depends] Latest config.guess and config.subfanquake2017-01-112-12/+31
| | | | |
* | | | | Merge #9261: Add unstored orphans with rejected parents to recentRejectsWladimir J. van der Laan2017-01-121-0/+3
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | dfbe0d5 Add unstored orphans with rejected parents to recentRejects (Alex Morcos)
| * | | | | Add unstored orphans with rejected parents to recentRejectsAlex Morcos2016-12-031-0/+3
| | | | | |
* | | | | | Merge #8883: Add all standard TXO types to bitcoin-txWladimir J. van der Laan2017-01-1224-31/+541
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 0c50909 testcases: explicitly specify transaction version 1 (John Newbery) b7e144b Add test cases to test new bitcoin-tx functionality (jnewbery) 61a1534 Add all transaction output types to bitcoin-tx. (jnewbery) 1814b08 add p2sh and segwit options to bitcoin-tx outscript command (Stanislas Marion)
| * | | | | testcases: explicitly specify transaction version 1John Newbery2017-01-091-22/+22
| | | | | |
| * | | | | Add test cases to test new bitcoin-tx functionalityjnewbery2016-12-2923-0/+377
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit add testcases to test the following functions in bitcoin-tx: - add a pay to non-standard script output - add a P2SH output - add a P2WSH output - add a P2WSH wrapped in a P2SH output - add a pay to pub key output - add a P2WPKH output - add a P2WPKH wrapped in a P2SH output - add a bare multisig output - add a multisig in P2SH output - add a multisig in a P2WSH output - add a multisig in a P2WSH wrapped in as P2SH output
| * | | | | Add all transaction output types to bitcoin-tx.jnewbery2016-12-291-37/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit enhances bitcoin-tx so all remaining standard TXO types can be created: - Pay to Pub Key - Multi-sig - bare multi-sig - multi-sig in Pay To Script Hash - multi-sig in Pay to Witness Script Hash - multi-sig in Pay to Witness Script Hash, wrapped in P2SH - Pay to Witness Pub Key Hash - Pay to Witness Pub Key Hash, wrapped in P2SH - Pay to Witness Script Hash - Pay to Witness Script Hash, wrapped in P2SH
| * | | | | add p2sh and segwit options to bitcoin-tx outscript commandStanislas Marion2016-12-291-8/+18
| | | | | |
* | | | | | Merge #9472: Disentangle progress estimation from checkpoints and update itWladimir J. van der Laan2017-01-129-61/+58
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | df36371 Update estimated transaction count data (Pieter Wuille) e356d9a Shorten variable names and switch to tx/s (Pieter Wuille) 6dd8116 Remove SIGCHECK_VERIFICATION_FACTOR (Pieter Wuille) 3641141 Move tx estimation data out of CCheckPointData (Pieter Wuille) a4bac66 [MOVEONLY] Move progress estimation out of checkpoints (Pieter Wuille)
| * | | | | | Update estimated transaction count dataPieter Wuille2017-01-111-6/+8
| | | | | | |
| * | | | | | Shorten variable names and switch to tx/sPieter Wuille2017-01-113-8/+8
| | | | | | |
| * | | | | | Remove SIGCHECK_VERIFICATION_FACTORPieter Wuille2017-01-043-32/+10
| | | | | | |
| * | | | | | Move tx estimation data out of CCheckPointDataPieter Wuille2017-01-047-13/+28
| | | | | | |
| * | | | | | [MOVEONLY] Move progress estimation out of checkpointsPieter Wuille2017-01-047-50/+52
| | | | | | |
* | | | | | | Merge #9518: Return height of last block pruned by pruneblockchain RPCMarcoFalke2017-01-122-8/+32
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 918d1fb Return height of last block pruned by pruneblockchain RPC (Russell Yanofsky)
| * | | | | | | Return height of last block pruned by pruneblockchain RPCRussell Yanofsky2017-01-112-8/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change suggested by Jonas Schnelli <[email protected]> in https://github.com/bitcoin/bitcoin/pull/7871#discussion_r95577623
* | | | | | | | Merge #9520: Deprecate non-txindex getrawtransaction and better warningMarcoFalke2017-01-121-4/+8
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | db904db Deprecate non-txindex getrawtransaction and better warning (Pieter Wuille)
| * | | | | | | | Deprecate non-txindex getrawtransaction and better warningPieter Wuille2017-01-111-4/+8
| | | | | | | | |
* | | | | | | | | Merge #9416: travis: make distdir before makeMarcoFalke2017-01-121-2/+4
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | faaf3ca travis: make distdir before make (MarcoFalke)
| * | | | | | | | | travis: make distdir before makeMarcoFalke2017-01-111-2/+4
| | | | | | | | | |
* | | | | | | | | | Merge #9297: Various RPC help outputs updatedMarcoFalke2017-01-123-28/+43
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | | | | | | | | | | | 54ee3fc RPC help updated (Michael Rotarius)
| * | | | | | | | | RPC help updatedMichael Rotarius2017-01-113-28/+43
| | | | | | | | | |
* | | | | | | | | | Merge #9507: Fix use-after-free in CTxMemPool::removeConflicts()Pieter Wuille2017-01-111-1/+1
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | | | | | | | | | | | | fe7e593 Fix use-after-free in CTxMemPool::removeConflicts() (Suhas Daftuar)