aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [wallet] Remove importmulti always-true checkRussell Yanofsky2017-02-201-1/+1
| | | | | | | | | | Remove "nLowestTimestamp <= chainActive.Tip()->GetBlockTimeMax()" check from importmulti, which is always true because nLowestTimestamp is set to the minimum of the most recent block time and all the imported key timestamps, which is necessarily lower than the maximum block time. Github-Pull: #9760 Rebased-From: ec1267f13b7d0b9b5058c6821cf8dbf74e02d17c
* boost: remove iostreams includesCory Fields2017-02-171-2/+0
| | | | | | | They're unused and produce nasty deprecation warnings Github-Pull: #9786 Rebased-From: 3301587dc5c7937141282f3799592d1e398495fb
* Move BIP70_MAX_PAYMENTREQUEST_SIZE to headerPieter Wuille2017-02-172-3/+1
| | | | | Github-Pull: #9785 Rebased-From: c801c82e253dc4956069b6110f65b43f538dd5a1
* Make KEY_SIZE a compile-time constantPieter Wuille2017-02-171-1/+1
| | | | | Github-Pull: #9785 Rebased-From: 914fad155d9fc76b42b3a0414dd14b5ebc36062f
* qt: pre-rc1 translations updateWladimir J. van der Laan2017-02-177-29/+1103
|
* build: bump version to 0.14.0Wladimir J. van der Laan2017-02-171-3/+3
|
* Merge #9761: Use 2 hour grace period for key timestamps in importmulti rescansWladimir J. van der Laan2017-02-171-2/+3
|\ | | | | | | | | | | | | e662af3 Use 2 hour grace period for key timestamps in importmulti rescans (Russell Yanofsky) 38d3e9e [qa] Extend import-rescan.py to test imports on pruned nodes. (Russell Yanofsky) c28583d [qa] Extend import-rescan.py to test specific key timestamps (Russell Yanofsky) 8be0866 [qa] Simplify import-rescan.py (Russell Yanofsky)
| * Use 2 hour grace period for key timestamps in importmulti rescansRussell Yanofsky2017-02-161-2/+3
| | | | | | | | | | | | | | | | Gregory Maxwell <[email protected]> pointed out the lack of grace period in https://github.com/bitcoin/bitcoin/pull/9490#issue-199407998. The importwallet RPC which uses key timestamps in a similar way already has a 2 hour grace period.
* | Merge #9778: Add two hour buffer to manual pruningWladimir J. van der Laan2017-02-171-2/+4
|\ \ | | | | | | | | | 91fb506 Add two hour buffer to manual pruning (Alex Morcos)
| * | Add two hour buffer to manual pruningAlex Morcos2017-02-161-2/+4
| |/
* | Merge #9779: Update nMinimumChainWork and defaultAssumeValid.Wladimir J. van der Laan2017-02-171-4/+4
|\ \ | | | | | | | | | 3f78e46 Update nMinimumChainWork and defaultAssumeValid. (Gregory Maxwell)
| * | Update nMinimumChainWork and defaultAssumeValid.Gregory Maxwell2017-02-161-4/+4
| |/
* | Merge #9777: Handle unusual maxsigcachesize gracefullyWladimir J. van der Laan2017-02-172-2/+5
|\ \ | |/ |/| | | 55c403b Ensure `-maxsigcachesize` is in valid range (John Newbery)
| * Ensure `-maxsigcachesize` is in valid rangeJohn Newbery2017-02-172-2/+5
| | | | | | | | | | | | | | - If the -maxsigcachesize parameter is set to zero, setup a minimum sized sigcache (2 elements) rather than segfaulting. - Handle maxsigcachesize being negative - Handle maxsigcachesize being too large
* | Merge #9763: [Trivial] Update comments referencing main.cppWladimir J. van der Laan2017-02-162-2/+2
|\ \ | | | | | | | | | 00e623d [Trivial] Update comments referencing main.cpp (CryptAxe)
| * | [Trivial] Update comments referencing main.cppCryptAxe2017-02-162-2/+2
| | |
* | | Merge #9771: Add missing cs_wallet lock that triggers new lock held assertionWladimir J. van der Laan2017-02-161-1/+1
|\ \ \ | | | | | | | | | | | | 07afcd6 Add missing cs_wallet lock that triggers new lock held assertion (Russell Yanofsky)
| * | | Add missing cs_wallet lock that triggers new lock held assertionRussell Yanofsky2017-02-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new AssertLockHeld(cs_wallet) call was added in commit a58370e "Dedup nTimeFirstKey update logic" (part of PR #9108). The lock held assertion will fail when loading prexisting wallets files from before the #9108 merge that have watch-only keys.
* | | | Merge #9764: wallet: Prevent "overrides a member function but is not marked ↵Wladimir J. van der Laan2017-02-161-11/+11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 'override'" warnings 6c5427d wallet: Prevent "overrides a member function but is not marked 'override'" warnings (Wladimir J. van der Laan)
| * | | | wallet: Prevent "overrides a member function but is not marked 'override'" ↵Wladimir J. van der Laan2017-02-151-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | warnings Because it is used inconsistently at least version 5.4.0 of g++ to complains about methods that don't use override. There is two ways to go about this: remove override from the methods having it, or add it to the methods missing it. I chose the second.
* | | | | Merge #9765: Harden against mistakes handling invalid blocksWladimir J. van der Laan2017-02-161-5/+11
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | ba803ef Harden against mistakes handling invalid blocks (Suhas Daftuar)
| * | | | Harden against mistakes handling invalid blocksSuhas Daftuar2017-02-151-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a bug in AcceptBlock() in invoking CheckBlock() with incorrect arguments, and restores a call to CheckBlock() from ProcessNewBlock() as belt-and-suspenders. Updates the (overspecified) tests to match behavior.
* | | | | Merge #9756: Return error when importmulti called with invalid address.Wladimir J. van der Laan2017-02-151-0/+3
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | 9acf25c Return error when importmulti called with invalid address. (Russell Yanofsky)
| * | | | Return error when importmulti called with invalid address.Russell Yanofsky2017-02-131-0/+3
| | | | | | | | | | | | | | | | | | | | Lack of error checking noticed by Alex Morcos <[email protected]>
* | | | | Merge #9758: Selectively suppress deprecation warningsWladimir J. van der Laan2017-02-152-0/+6
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | 4b6cccc Selectively suppress deprecation warnings (Jonas Schnelli)
| * | | | Selectively suppress deprecation warningsJonas Schnelli2017-02-142-0/+6
| |/ / /
* | | | Merge #9108: Use importmulti timestamp when importing watch only keys (on ↵Wladimir J. van der Laan2017-02-156-56/+98
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | top of #9682) a80f98b Use importmulti timestamp when importing watch only keys (Russell Yanofsky) a58370e Dedup nTimeFirstKey update logic (Russell Yanofsky)
| * | | | Use importmulti timestamp when importing watch only keysRussell Yanofsky2017-02-106-34/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When importing a watch-only address over importmulti with a specific timestamp, the wallet's nTimeFirstKey is currently set to 1. After this change, the provided timestamp will be used and stored as metadata associated with watch-only key. This can improve wallet performance because it can avoid the need to scan the entire blockchain for watch only addresses when timestamps are provided. Also adds timestamp to validateaddress return value (needed for tests). Fixes #9034.
| * | | | Dedup nTimeFirstKey update logicRussell Yanofsky2017-02-104-23/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also make nTimeFirstKey member variable private. This is just a cleanup change, it doesn't change behavior in any significant way.
* | | | | Merge #9553: Use z = std::max(x - y, 0) instead of z = x - y; if (z < 0) z = 0;Wladimir J. van der Laan2017-02-152-8/+2
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | a47da4b Use z = std::max(x - y, 0); instead of z = x - y; if (z < 0) z = 0; (practicalswift)
| * | | | Use z = std::max(x - y, 0); instead of z = x - y; if (z < 0) z = 0;practicalswift2017-02-072-8/+2
| | | | |
* | | | | Merge #9755: Bugfix: Qt/Options: Restore persistent "restart required" noticeJonas Schnelli2017-02-141-1/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | 0b4f273 Bugfix: Qt/Options: Restore persistent "restart required" notice (Luke Dashjr)
| * | | | | Bugfix: Qt/Options: Restore persistent "restart required" noticeLuke Dashjr2017-02-131-1/+4
| | | | | |
* | | | | | Merge #9720: net: fix banning and disallow sending messages before receiving ↵Wladimir J. van der Laan2017-02-141-49/+68
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | verack d943491 qa: add a test to detect leaky p2p messages (Cory Fields) 8650bbb qa: Expose on-connection to mininode listeners (Matt Corallo) 5b5e4f8 qa: mininode learns when a socket connects, not its first action (Matt Corallo) cbfc5a6 net: require a verack before responding to anything else (Cory Fields) 8502e7a net: parse reject earlier (Cory Fields) c45b9fb net: correctly ban before the handshake is complete (Cory Fields)
| * | | | | | net: require a verack before responding to anything elseCory Fields2017-02-131-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7a8c251901 made this logic hard to follow. After that change, messages would not be sent to a peer via SendMessages() before the handshake was complete, but messages could still be sent as a response to an incoming message. For example, if a peer had not yet sent a verack, we wouldn't notify it about new blocks, but we would respond to a PING with a PONG. This change makes the behavior straightforward: until we've received a verack, never send any message other than version/verack/reject. The behavior until a VERACK is received has always been undefined, this change just tightens our policy. This also makes testing much easier, because we can now connect but not send version/verack, and anything sent to us is an error.
| * | | | | | net: parse reject earlierCory Fields2017-02-131-26/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this change, all messages were ignored until a VERSION message was received, as well as possibly incurring a ban score. Since REJECT messages can be sent at any time (including as a response to a bad VERSION message), make sure to always parse them. Moving this parsing up keeps it from being caught in the if (pfrom->nVersion == 0) check below.
| * | | | | | net: correctly ban before the handshake is completeCory Fields2017-02-131-23/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7a8c251901 made a change to avoid getting into SendMessages() until the version handshake (VERSION + VERACK) is complete. That was done to avoid leaking out messages to nodes who could connect, but never bothered sending us their version/verack. Unfortunately, the ban tally and possible disconnect are done as part of SendMessages(). So after 7a8c251901, if a peer managed to do something bannable before completing the handshake (say send 100 non-version messages before their version), they wouldn't actually end up getting disconnected/banned. That's fixed here by checking the banscore as part of ProcessMessages() in addition to SendMessages().
* | | | | | | Merge #9715: Disconnect peers which we do not receive VERACKs from within 60 secWladimir J. van der Laan2017-02-141-0/+5
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 66f861a Add a test for P2P inactivity timeouts (Matt Corallo) b436f92 qa: Expose on-connection to mininode listeners (Matt Corallo) 8aaba7a qa: mininode learns when a socket connects, not its first action (Matt Corallo) 2cbd119 Disconnect peers which we do not receive VERACKs from within 60 sec (Matt Corallo)
| * | | | | | | Disconnect peers which we do not receive VERACKs from within 60 secMatt Corallo2017-02-071-0/+5
| | |_|/ / / / | |/| | | | |
* | | | | | | Merge #9682: Require timestamps for importmulti keysWladimir J. van der Laan2017-02-142-10/+40
|\ \ \ \ \ \ \ | | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | 266a811 Use MTP for importmulti "now" timestamps (Russell Yanofsky) 3cf9917 Add test to check new importmulti "now" value (Russell Yanofsky) 442887f Require timestamps for importmulti keys (Russell Yanofsky)
| * | | | | | Use MTP for importmulti "now" timestampsRussell Yanofsky2017-02-101-1/+1
| | | | | | |
| * | | | | | Add test to check new importmulti "now" valueRussell Yanofsky2017-02-101-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Easiest way to test this was to expose the timestamp via the validateaddress RPC (which was already looking up and returning key metadata).
| * | | | | | Require timestamps for importmulti keysRussell Yanofsky2017-02-101-6/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Additionally, accept a "now" timestamp, to allow avoiding rescans for keys which are known never to have been used. Note that the behavior when "now" is specified is slightly different than the previous behavior when no timestamp was specified at all. Previously, when no timestamp was specified, it would avoid rescanning during the importmulti call, but set the key's nCreateTime value to 1, which would not prevent future block reads in later ScanForWalletTransactions calls. With this change, passing a "now" timestamp will set the key's nCreateTime to the current block time instead of 1. Fixes #9491
* | | | | | | Merge #9735: devtools: Handle Qt formatting characters edge-case in ↵Wladimir J. van der Laan2017-02-148-222/+1510
|\ \ \ \ \ \ \ | |_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | update-translations.py 7179e7c qt: Periodic translations update (Wladimir J. van der Laan) 5e903a5 devtools: Handle Qt formatting characters edge-case in update-translations.py (Wladimir J. van der Laan)
| * | | | | | qt: Periodic translations updateWladimir J. van der Laan2017-02-108-222/+1510
| | | | | | |
* | | | | | | Merge #9736: Pre-0.14.0 hardcoded seeds updateWladimir J. van der Laan2017-02-111-800/+1031
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a60677e Pre-0.14.0 hardcoded seeds update (Wladimir J. van der Laan) bfa9393 contrib/seeds: Update PATTERN_AGENT (Wladimir J. van der Laan) 4dfac2c Update seeds tooling to Python 3 (Wladimir J. van der Laan)
| * | | | | | | Pre-0.14.0 hardcoded seeds updateWladimir J. van der Laan2017-02-101-800/+1031
| |/ / / / / /
* | | | | | | Move CNode::addrLocal access behind locked accessorsMatt Corallo2017-02-103-7/+29
| | | | | | |
* | | | | | | Move CNode::addrName accesses behind locked accessorsMatt Corallo2017-02-103-10/+30
| | | | | | |
* | | | | | | Make nTimeBestReceived atomicMatt Corallo2017-02-101-1/+1
| | | | | | |