aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge #9045: Hash P2P messages as they are received instead of at process-timePieter Wuille2016-11-073-1/+15
|\ | | | | | | fe1dc62 Hash P2P messages as they are received instead of at process-time (Matt Corallo)
| * Hash P2P messages as they are received instead of at process-timeMatt Corallo2016-10-303-1/+15
| |
* | Merge #9094: qt: Use correct conversion function for boost::path datadirJonas Schnelli2016-11-072-2/+3
|\ \ | | | | | | | | | e760b30 qt: Use correct conversion function for boost::path datadir (Wladimir J. van der Laan)
| * | qt: Use correct conversion function for boost::path datadirWladimir J. van der Laan2016-11-072-2/+3
| | | | | | | | | | | | Fixes #9089.
* | | Merge #8981: Wshadow: Do not shadow argument with a local variableWladimir J. van der Laan2016-11-071-2/+2
|\ \ \ | | | | | | | | | | | | ff6639b Do not shadow local variable (Pavel Janík)
| * | | Do not shadow local variablePavel Janík2016-10-201-2/+2
| | | |
* | | | Merge #8976: libconsensus: Add input validation of flagsWladimir J. van der Laan2016-11-073-5/+21
|\ \ \ \ | | | | | | | | | | | | | | | 5ca8ef2 libconsensus: Add input validation of flags (Wladimir J. van der Laan)
| * | | | libconsensus: Add input validation of flagsWladimir J. van der Laan2016-10-203-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes it an error to use flags that have not been defined on the libconsensus API. There has been some confusion as to what pass to libconsensus, and (combined with mention in the release notes) this should clear it up. Using undocumented flags is a risk because their meaning, and what combinations are allowed, changes from release to release. E.g. it is no longer possible to pass (CLEANSTACK | P2SH) without running into an assertion after the segwit changes.
* | | | | Merge #7730: Remove priority estimationWladimir J. van der Laan2016-11-075-251/+101
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 0bd581a add release notes for removal of priority estimation (Alex Morcos) b2322e0 Remove priority estimation (Alex Morcos)
| * | | | | Remove priority estimationAlex Morcos2016-11-075-251/+101
| | | | | |
* | | | | | Merge #8709: Allow filterclear messages for enabling TX relay only.Wladimir J. van der Laan2016-11-071-4/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | 1f951c6 Allow filterclear messages for enabling TX relay only. (R E Broadley)
| * | | | | | Allow filterclear messages for enabling TX relay only.R E Broadley2016-09-131-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An example of where this might be useful is allowing a node to connect blocksonly during IBD but then becoming a full-node once caught up with the latest block. This might also even want to be the default behaviour since during IBD most TXs appear to be orphans, and are routinely dropped (for example when a node disconnects). Therefore, this can waste a lot of bandwidth. Additionally, another pull could be written to stop relaying of TXs to nodes that are clearly far behind the latest block and are running a node that doesn't store many orphan TXs, such as recent versions of Bitcoin Core.
* | | | | | | Merge #9052: Use RelevantServices instead of node_network in AttemptToEvict.Wladimir J. van der Laan2016-11-071-3/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | d32036a Use RelevantServices instead of node_network in AttemptToEvict. (Gregory Maxwell)
| * | | | | | | Use RelevantServices instead of node_network in AttemptToEvict.Gregory Maxwell2016-11-011-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use of node_network here is really meant to be a proxy of "likely to send us blocks in the future". RelevantServices is the right criteria now.
* | | | | | | | Merge #8675: Make copyright header lines uniformWladimir J. van der Laan2016-11-0716-16/+16
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | 4b04e32 [copyright] copyright header style uniform (isle2983)
| * | | | | | | [copyright] copyright header style uniformisle29832016-11-0616-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Three categories of modifications: 1) 1 instance of 'The Bitcoin Core developers \n', 1 instance of 'the Bitcoin Core developers\n', 3 instances of 'Bitcoin Core Developers\n', and 12 instances of 'The Bitcoin developers\n' are made uniform with the 443 instances of 'The Bitcoin Core developers\n' 2) 3 instances of 'BitPay, Inc\.\n' are made uniform with the other 6 instances of 'BitPay Inc\.\n' 3) 4 instances where there was no '(c)' between the 'Copyright' and the year where it deviates from the style of the local directory.
* | | | | | | | Merge #8736: base58: Improve DecodeBase58 performance.Wladimir J. van der Laan2016-11-071-3/+7
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e892dc1 Use prefix operator in for loop of DecodeBase58. (Jiaxing Wang) 159ed95 base58: Improve DecodeBase58 performance. (Jiaxing Wang)
| * | | | | | | | Use prefix operator in for loop of DecodeBase58.Jiaxing Wang2016-09-161-1/+1
| | | | | | | | |
| * | | | | | | | base58: Improve DecodeBase58 performance.Jiaxing Wang2016-09-151-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve DecodeBase58 performance the same way as commit 3252208 did for EncodeBase58.
* | | | | | | | | Merge #8708: net: have CConnman handle message sendingWladimir J. van der Laan2016-11-077-380/+320
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9027680 net: handle version push in InitializeNode (Cory Fields) 7588b85 net: construct CNodeStates in place (Cory Fields) 440f1d3 net: remove now-unused ssSend and Fuzz (Cory Fields) 5c2169c drop the optimistic write counter hack (Cory Fields) ea33268 net: switch all callers to connman for pushing messages (Cory Fields) 3e32cd0 connman is in charge of pushing messages (Cory Fields) b98c14c serialization: teach serializers variadics (Cory Fields)
| * | | | | | | | | net: handle version push in InitializeNodeCory Fields2016-11-034-41/+44
| | | | | | | | | |
| * | | | | | | | | net: construct CNodeStates in placeCory Fields2016-11-031-6/+6
| | | | | | | | | |
| * | | | | | | | | net: remove now-unused ssSend and FuzzCory Fields2016-11-032-41/+1
| | | | | | | | | |
| * | | | | | | | | drop the optimistic write counter hackCory Fields2016-11-032-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is now handled properly in realtime.
| * | | | | | | | | net: switch all callers to connman for pushing messagesCory Fields2016-11-033-294/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop all of the old stuff.
| * | | | | | | | | connman is in charge of pushing messagesCory Fields2016-11-034-32/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The changes here are dense and subtle, but hopefully all is more explicit than before. - CConnman is now in charge of sending data rather than the nodes themselves. This is necessary because many decisions need to be made with all nodes in mind, and a model that requires the nodes calling up to their manager quickly turns to spaghetti. - The per-node-serializer (ssSend) has been replaced with a (quasi-)const send-version. Since the send version for serialization can only change once per connection, we now explicitly tag messages with INIT_PROTO_VERSION if they are sent before the handshake. With this done, there's no need to lock for access to nSendVersion. Also, a new stream is used for each message, so there's no need to lock during the serialization process. - This takes care of accounting for optimistic sends, so the nOptimisticBytesWritten hack can be removed. - -dropmessagestest and -fuzzmessagestest have not been preserved, as I suspect they haven't been used in years.
| * | | | | | | | | serialization: teach serializers variadicsCory Fields2016-11-033-1/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add a variadic CDataStream ctor for ease-of-use.
* | | | | | | | | | Merge #9070: Lockedpool fixesWladimir J. van der Laan2016-11-073-90/+75
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b3ddc5e LockedPool: avoid quadratic-time allocation (Kaz Wesley) 0b59f80 LockedPool: fix explosion for illegal-sized alloc (Kaz Wesley) 21b8f3d LockedPool: test handling of invalid allocations (Kaz Wesley)
| * | | | | | | | | LockedPool: avoid quadratic-time allocationKaz Wesley2016-11-023-90/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use separate maps for used/free chunks to avoid linear scan through alloced chunks for each alloc.
| * | | | | | | | | LockedPool: fix explosion for illegal-sized allocKaz Wesley2016-11-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check for unreasonable alloc size in LockedPool rather than lancing through new Arenas until we improbably find one worthy of the quixotic request or the system can support no more Arenas.
| * | | | | | | | | LockedPool: test handling of invalid allocationsKaz Wesley2016-11-021-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Currently fails due to bug)
* | | | | | | | | | Remove unused CTxOut::GetHash()Matt Corallo2016-11-042-7/+0
| |_|_|_|_|/ / / / |/| | | | | | | |
* | | | | | | | | Merge #9069: Clean up bctest.py and bitcoin-util-test.pyWladimir J. van der Laan2016-11-042-81/+101
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | | | | | | | | | | 2b175d4 Clean up bctest.py and bitcoin-util-test.py (John Newbery)
| * | | | | | | | Clean up bctest.py and bitcoin-util-test.pyJohn Newbery2016-11-032-81/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - remove newlines - change tabs for spaces, to align with convention in other py files - add comments - add 'Bitcoin Core Developers' copyright notice
* | | | | | | | | Merge #9073: Trivial: Add common failure cases for rpc server connection failureWladimir J. van der Laan2016-11-031-1/+1
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8f329f9 Add common failure cases for rpc server connection failure (instagibbs)
| * | | | | | | | | Add common failure cases for rpc server connection failureinstagibbs2016-11-031-1/+1
| | | | | | | | | |
* | | | | | | | | | Merge #8969: Decouple peer-processing-logic from block-connection-logic (#2)Wladimir J. van der Laan2016-11-033-29/+49
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f5b960b Move nTimeBestReceived updating into net processing code (Matt Corallo) d8670fb Move all calls to CheckBlockIndex out of net-processing logic (Matt Corallo) d6ea737 Remove network state wipe from UnloadBlockIndex. (Matt Corallo) fc0c24f Move MarkBlockAsReceived out of ProcessNewMessage (Matt Corallo) 65f35eb Move FlushStateToDisk call out of ProcessMessages::TX into ATMP (Matt Corallo)
| * | | | | | | | | Move nTimeBestReceived updating into net processing codeMatt Corallo2016-10-311-2/+3
| | | | | | | | | |
| * | | | | | | | | Move all calls to CheckBlockIndex out of net-processing logicMatt Corallo2016-10-311-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will result in many more calls to CheckBlockIndex when connecting a list of headers (eg in ::HEADERS messages processing) but its only enabled in debug mode, and that should mostly just be during IBD, so it should be OK.
| * | | | | | | | | Remove network state wipe from UnloadBlockIndex.Matt Corallo2016-10-313-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UnloadBlockIndex is only used during init if we end up reindexing to clear our block state so that we can start over. However, at that time no connections have been brought up as CConnman hasn't been started yet, so all of the network processing state logic is empty when its called. Additionally, the initialization of the recentRejects set is moved to InitPeerLogic.
| * | | | | | | | | Move MarkBlockAsReceived out of ProcessNewMessageMatt Corallo2016-10-311-5/+18
| | | | | | | | | |
| * | | | | | | | | Move FlushStateToDisk call out of ProcessMessages::TX into ATMPMatt Corallo2016-10-311-8/+13
| | | | | | | | | |
* | | | | | | | | | Merge #9050: net: make a few values immutable, and use deterministic ↵Wladimir J. van der Laan2016-11-034-23/+33
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | randomness for the localnonce 59ac5c5 net: Use deterministic randomness for CNode's nonce, and make it const (Cory Fields) aff6584 net: constify a few CNode vars to indicate that they're threadsafe (Cory Fields)
| * | | | | | | | | | net: Use deterministic randomness for CNode's nonce, and make it constCory Fields2016-10-314-13/+24
| | | | | | | | | | |
| * | | | | | | | | | net: constify a few CNode vars to indicate that they're threadsafeCory Fields2016-10-312-10/+9
| | |_|_|_|/ / / / / | |/| | | | | | | |
* | | | | | | | | | Merge #9071: Declare wallet.h functions inlineWladimir J. van der Laan2016-11-031-2/+2
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2ca882a Declare wallet.h functions inline (Pieter Wuille)
| * | | | | | | | | | Declare wallet.h functions inlinePieter Wuille2016-11-021-2/+2
| | | | | | | | | | |
* | | | | | | | | | | Merge #9053: IBD using chainwork instead of height and not using header ↵Pieter Wuille2016-11-037-48/+19
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | timestamps e141beb IsInitialBlockDownload no longer uses header-only timestamps. (Gregory Maxwell) 2082b55 Remove GetTotalBlocksEstimate and checkpoint tests that test nothing. (Gregory Maxwell) fd46136 IBD check uses minimumchain work instead of checkpoints. (Gregory Maxwell)
| * | | | | | | | | | | IsInitialBlockDownload no longer uses header-only timestamps.Gregory Maxwell2016-11-021-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids a corner case (mostly visible on testnet) where bogus headers can keep nodes in IsInitialBlockDownload.
| * | | | | | | | | | | Remove GetTotalBlocksEstimate and checkpoint tests that test nothing.Gregory Maxwell2016-11-024-41/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GetTotalBlocksEstimate is no longer used and it was the only thing the checkpoint tests were testing. Since checkpoints are on their way out it makes more sense to remove the test file than to cook up a new pointless test.