aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-11-10build: Add CLIENT_VERSION_BUILD to CFBundleGetInfoStringfanquake
2018-11-09Merge #14689: Require a public key to be retrieved when signing a P2PKH inputPieter Wuille
6b8d86ddb8 Require a public key to be retrieved when signing a P2PKH input (Andrew Chow) Pull request description: If we do not have the public key for a P2PKH input, we should not continue to attempt to sign for it. This fixes a problem where a PSBT with a P2PKH output would include invalid BIP 32 derivation paths that are missing the public key. Tree-SHA512: 850d5e74c06833da937d5bf0348bd134180be7167b6f9b9cecbf09f75e3543fbad60d0abbc0b9afdfa51ce165aa36168849f24a7c5abf1e75f37ce8f9a13d127
2018-11-09Merge #14588: Refactor PSBT signing logic to enforce invariant and fix ↵Pieter Wuille
signing bug e13fea975d Add regression test for PSBT signing bug #14473 (Glenn Willen) 565500508a Refactor PSBTInput signing to enforce invariant (Glenn Willen) 0f5bda2bd9 Simplify arguments to SignPSBTInput (Glenn Willen) 53e6fffb8f Add bool PSBTInputSigned (Glenn Willen) 65166d4cf8 New PartiallySignedTransaction constructor from CTransction (Glenn Willen) 4f3f5cb4b1 Remove redundant txConst parameter to FillPSBT (Glenn Willen) fe5d22bc67 More concise conversion of CDataStream to string (Glenn Willen) Pull request description: As discussed in the comments on #14473, I think that bug was caused primarily by failure to adhere to the invariant that a PSBTInput always has exactly one of the two utxo fields present -- an invariant that is already enforced by PSBTInput::IsSane, but which we were temporarily suspending during signing. This refactor repairs the invariant, also fixing the bug. It also simplifies some other code, and removes redundant parameters from some related functions. fixes #14473 Tree-SHA512: cbad3428175e30f9b7bac3f600668dd1a8f9acde16b915d27a940a2fa6d5149d4fbe236d5808fd590fb20a032274c99e8cac34bef17f79a53fdf69a5948c0fd0
2018-11-09Merge #14437: Refactor: Start to separate wallet from nodeMarcoFalke
081accb875 Pass chain locked variables where needed (Russell Yanofsky) 79d579f4e1 Remove uses of cs_main in wallet code (Russell Yanofsky) ea961c3d72 Remove direct node->wallet calls in init.cpp (Russell Yanofsky) 8db11dd0b1 Pass chain and client variables where needed (Russell Yanofsky) 7e2e62cf7c Add skeleton chain and client classes (Russell Yanofsky) Pull request description: This creates an incomplete [`Chain`](https://github.com/ryanofsky/bitcoin/blob/pr/wipc-sep/src/interfaces/chain.h) interface in [`src/interfaces/`](https://github.com/ryanofsky/bitcoin/tree/pr/wipc-sep/src/interfaces) and begins to update wallet code to use it. #10973 builds on this, changing the wallet to use the new interface to access chain state, instead of using CBlockIndex pointers and global variables like `chainActive`. Tree-SHA512: 6ef05a4d8ebf57f2ad71835e4d970c9c59e34057e39e48cee76b887492c2fee907e3f6a74a9861e5a9f97cdc6823f4865ebc41ec556ab371ebca1b664c20dbea
2018-11-08Merge #14684: [doc] conf: Remove deprecated options from docs, Other cleanupMarcoFalke
fa4da3c058 [doc] conf: Remove deprecated options from docs, Other cleanup (MarcoFalke) Pull request description: Some dumb fixes, like removing the mention that free transactions are still a thing or that rpcuser/pass should be used (as opposed to rpcauth or rpc cookie). Combined with other fixes because I don't want to create 3 pull requests: * conf: Remove deprecated options from docs * Remove only mention of MIT/X11 * Link to developer notes in README.md Tree-SHA512: 9e45dc6c63037e7618cf3c871d7d9e65b66f1a952f91a6e623d97d90171e29bc40299a06029c4dc21a0f579e68021e3663186bd3a65e3ab333aff711f7dcb2bf
2018-11-08Merge #14686: build: Fix windows build error if `--disable-bip70`MarcoFalke
7a90b1b9d8 build: Fix windows build error if `--disable-bip70` (Chun Kuan Lee) Pull request description: Fix #14677 The SSL library seems to be used even if bip70 disabled on Windows. Tree-SHA512: 1c5fcf98048ce9e2eedf958326c11949eef74b3379a50d73751cb871d3d4323186caf607888c461a1fe1edc5f8515bd151ab247a843e7dda79f810c06309bd88
2018-11-08Require a public key to be retrieved when signing a P2PKH inputAndrew Chow
If we do not have the public key for a P2PKH input, we should not continue to attempt to sign for it.
2018-11-08build: Fix windows build error if `--disable-bip70`Chun Kuan Lee
2018-11-07Merge #14436: doc: add comment explaining recentRejects-DoS behaviorMarcoFalke
b191c7dfb7 doc: add comment explaining recentRejects-DoS behavior (James O'Beirne) Pull request description: When we receive invalid txs for the first time, we mark the sender as misbehaving. If we receive the same tx before a new block is seen, we *don't* punish the second sender (in the same way we do the original sender). It wasn't initially clear to me that this is intentional, so add a clarifying comment. Tree-SHA512: d12c674db137ed3ad83e0b941bffe6ddcd2982238048742afa574a4235881f0e58cfc0a4a576a0503e74c5c5240c270b9520fa30221e8b43a371fb3e0b37066b
2018-11-07[doc] conf: Remove deprecated options from docs, Other cleanupMarcoFalke
* conf: Remove deprecated options from docs * Remove only mention of MIT/X11 * Link to developer notes in README.md
2018-11-07Merge #14365: tests: Add Python dead code linter (vulture) to TravisMarcoFalke
c82190cdb6 tests: Add Python dead code linter (vulture) (practicalswift) 590a57fdec tests: Remove unused testing code (practicalswift) Pull request description: Add Python dead code linter (`vulture`) to Travis. Rationale for allowing dead code only after explicit opt-in (via `--ignore-names`): * Less is more :-) * Unused code is by definition "untested" * Unused code can be an indication of bugs/logical errors. By making the contributor aware of newly introduced unused code it gives him/her an opportunity to investigate if the unused code they introduce is malignant or benign :-) * Unused code is hard to spot for humans and is thus often missed during manual review * [YAGNI](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it) Based on #14312 to make linter job pass. Tree-SHA512: 4c581df7c34986e226e4ade479e0d3c549daf38f4a4dc4564b25564d63e773a1830ba55d1289c771b1fa325483e8855b82b56e61859fe8e4b7dfa54034b093b6
2018-11-07tests: Add Python dead code linter (vulture)practicalswift
2018-11-07tests: Remove unused testing codepracticalswift
2018-11-07Merge #14636: Avoid using numeric_limits for sequence numbers and lock timesMarcoFalke
535203075e Avoid using numeric_limits for sequence numbers and lock times (Russell Yanofsky) bafb921507 Remove duplicated code (Hennadii Stepanov) e4dc39b3bc Replace platform dependent type with proper const (Hennadii Stepanov) Pull request description: Switches to named constants, because numeric_limits calls can be harder to read and less portable. Change was suggested by jamesob in https://github.com/bitcoin/bitcoin/pull/10973#discussion_r213473620 There are no changes in behavior except on some platforms we don't support (ILP64, IP16L32, I16LP32), where `SignalsOptInRBF` and `MutateTxAddInput` functions would now work correctly. Tree-SHA512: 3f5c6393c260551f65a0edfba55ef7eb3625232eec8d85b1457f26e144aa0b90c7ef5f44b2fd2f7d9be3c3bcb301030a9f5473c21b3bac566cc59b8c8780737c
2018-11-07Merge #14611: docs: align items in contrib initMarcoFalke
053b6f42d2 align items in contrib init (Harry Moreno) Pull request description: minor Tree-SHA512: 72bd01e174dafdb77db5e5e4551ff9a65a4a804a59da0ab7d2825f31dcd37fbe724d6c0da5cda69869cd14181c617e113946b46844379eb7747e1249b56f2d62
2018-11-07Merge #14665: appveyor: Script improvement part IIMarcoFalke
99d33a6bec appveyor: Script improvement part II (Chun Kuan Lee) Pull request description: - decrease clone depth to 5 - Upgrade to python 3.7 that we can use `PYTHONUTF8` from PEP540. - Set clcache version to `v4.2.0` - Do not fetch the latest vcpkg package (The issue does not exist anymore) - Set test_bitcoin report sink and log sink to stdout and redirect stderr to NUL to drop confusing error messages that introduced by #14146 - discard vcpkg, bench_bitcoin output - Set functional test `--failfast` flag - Make the log be as clear as possible. (Only ~100 lines) Tree-SHA512: e7e1f5c2698e8a5d15394edfb4b574508081e99ef4a353995f55657cb51e642567a128d6432a899ecae6f742494c143ac16e2e64df6c26e1e575421ee4a1df50
2018-11-06Merge #14673: travis: Fail the UBSan Travis build in case of newly ↵MarcoFalke
introduced UBSan errors 4773fa8207 Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. (practicalswift) 5c292dafcd Add UBSan suppressions needed to pass test suite (practicalswift) fced6b5086 Add UBSan options: print_stacktrace + halt_on_error (practicalswift) Pull request description: Fail the UBSan Travis build in case of newly introduced [UBSan (UndefinedBehaviorSanitizer)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) errors. Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build. Changes: * Travis: Add UBSan options: `print_stacktrace` + `halt_on_error` * Travis: Add UBSan suppressions needed to pass test suite * Travis: Add `llvm-symbolizer` directory to PATH. Needed to get symbolized stack traces from the sanitizers. `halt_on_error` should have been part of #14252 really :-) Tree-SHA512: 30e960659196873d4f636f3a61267b8b4441a0e8773e3f3ae4660a9341d028c363636f0cb919ef9d6662ceb484e3d58054adfb6dc76ff8a355a1c9f927c328d1
2018-11-06Merge #14672: tests: Send fewer spam messages in p2p_invalid_messagesMarcoFalke
3d305e3b89 Send fewer spam messages in p2p_invalid_messages (James O'Beirne) Pull request description: Builds on travis are failing because the test node isn't able to drop all the bad messages sent within the given timeout. Reduce the number of bad messages we're sending and increase the timeout to avoid failures on travis. Tree-SHA512: 11c389619d9590caf7eca74e0efe6d950469415d34220072770689024b350cc08a2d5ec90634237d87ff71ba8b638c1152b8a45ffbb2815a48bde6a88fbb8fc6
2018-11-06Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces ↵practicalswift
from the sanitizers.
2018-11-06Send fewer spam messages in p2p_invalid_messagesJames O'Beirne
Builds on travis are failing because the test node isn't able to drop all the bad messages sent within the given timeout. Reduce the number of bad messages we're sending and increase the timeout to avoid failures on travis.
2018-11-06Pass chain locked variables where neededRussell Yanofsky
This commit does not change behavior. All it does is pass new function parameters. It is easiest to review this change with: git log -p -n1 -U0 --word-diff-regex=.
2018-11-06Merge #14619: tests: Fix value display name in test_runner help textMarcoFalke
5a05aa2db2 Add metavar to match var name in help text + Change wording for better readability (Martin Erlandsson) Pull request description: The help text given by `test/functional/test_runner.py -h` refers to the value `n`, which is defined as `COMBINEDLOGSLEN` in the list of commands. To make the help text consistent, this PR changes the display name `COMBINEDLOGSLEN` to `n` by setting the argparse [`metavar`](https://docs.python.org/3/library/argparse.html#metavar) attribute. (`metavar` only changes the _displayed_ name) Alternatively: Do the opposite and change the help text to use `COMBINEDLOGSLEN`. --- Before PR: ``` ➜ bitcoin > test/functional/test_runner.py -h | grep -A 1 combinedlogslen --combinedlogslen COMBINEDLOGSLEN, -c COMBINEDLOGSLEN print a combined log (of length n lines) from all test nodes and test framework to the console on failure. ``` After PR: ``` ➜ bitcoin > test/functional/test_runner.py -h | grep -A 1 combinedlogslen --combinedlogslen n, -c n print a combined log (of length n lines) from all test nodes and test frameworks to the console on failure. ``` --- Also, fixed pluralization typo. Tree-SHA512: a1124a4976d29fae1e8ecd7fa2ac523b7f05d541c611166532f44692995691a96faf797fa71582d78634f328b500cbee49c6ef296c8f1a898a57c050cc4e721d
2018-11-06Remove uses of cs_main in wallet codeRussell Yanofsky
This commit does not change behavior. It is easiest to review this change with: git log -p -n1 -U0
2018-11-06Remove direct node->wallet calls in init.cppRussell Yanofsky
Route calls during node initialization and shutdown that would happen between a node process and wallet processes through the serializable `Chain::Client` interface, rather than `WalletInitInterface` which is now simpler and only deals with early initialization and parameter interaction. This commit mostly does not change behavior. The only change is that the "Wallet disabled!" and "No wallet support compiled in!" messages are now logged earlier during startup.
2018-11-06Pass chain and client variables where neededRussell Yanofsky
This commit does not change behavior. All it does is pass new function parameters. It is easiest to review this change with: git log -p -n1 -U0 --word-diff-regex=.
2018-11-06Add skeleton chain and client classesRussell Yanofsky
This commit does not change behavior. It just adds new skeleton classes that don't do anything and aren't instantiated yet.
2018-11-06Merge #14074: Use std::unordered_set instead of set in blockfilter interfaceWladimir J. van der Laan
fef5adcc331c4d7b92b71e03fc8a73343a865599 blockfilter: Use unordered_set instead of set in blockfilter. (Jim Posen) 4fb789e9b2ffdf48fd50293b3982b3fce4d5fbdf Extract CSipHasher to it's own file in crypto/ directory. (Jim Posen) Pull request description: Use `std::unordered_set` (hash set) instead of `std::set` (tree set) in blockfilter interface, as suggested by @ryanofsky in #12254. This may result in a very minor speedup, but I haven't measured. This moves `CSipHasher` to it's own file `crypto/siphash.h`, so that it can be used in the libbitcoin_util library without including `hash.{h,cpp}`. I'm open to other suggestions on solving this issue if people would prefer to leave CSipHasher where it is. Tree-SHA512: 593d1abda771e45f2860d5334272980d20df0b81925a402bb9ee875e17595c2517c0d8ac9c579218b84bbf66e15b49418241c1fe9f9265719bcd2377b0cd0d88
2018-11-06Add UBSan suppressions needed to pass test suitepracticalswift
2018-11-06Merge #14658: qa: Add test to ensure node can generate all rpc help texts at ↵Wladimir J. van der Laan
runtime bbbbb3f8850907d413db4715c10ef6df055234f6 qa: Add test to ensure node can generate all help texts at runtime (MarcoFalke) Pull request description: This might increase coverage, but more importantly this checks that the node doesn't crash when generating the help. (Right now the help is a static string, but in the future it might be generated at runtime) Tree-SHA512: 0226e7c65f8a1a6fdc96c07dcf491d90559bc2355c92e9da9b1f174b09733fc349269e71da6d792f954de563a1e57c848471813eabae1a40b849a0d989520a0d
2018-11-06Merge #14522: tests: add invalid P2P message testsWladimir J. van der Laan
d20a9fa13d1c13f552e879798c0508be70190e71 tests: add tests for invalid P2P messages (James O'Beirne) 62f94d39f8de88a44bb0a8a2837d864f777aaacc tests: add P2PConnection.send_raw_message (James O'Beirne) 5aa31f6ef26f51ce461c917654dd1cfbbdd1409a tests: add utility to assert node memory usage hasn't increased (James O'Beirne) Pull request description: - Adds `p2p_invalid_messages.py`: tests based on behavior for dealing with invalid and malformed P2P messages. Includes a test verifying that we can't DoS a node by spamming it with large invalid messages. - Adds `TestNode.assert_memory_usage_stable`: a context manager that allows us to ensure memory usage doesn't significantly increase on a node during some test. - Adds `P2PConnection.send_raw_message`: which allows us to construct and send messages with tweaked headers. Tree-SHA512: 720a4894c1e6d8f1551b2ae710e5b06c9e4f281524623957cb01599be9afea82671dc26d6152281de0acb87720f0c53b61e2b27d40434d30e525dd9e31fa671f
2018-11-06Add UBSan options: print_stacktrace + halt_on_errorpracticalswift
2018-11-06doc: Add historical release notes for 0.17.0.1Wladimir J. van der Laan
Tree-SHA512: 3646e22b7e6c0d2e77ecc5933ee882bc4853b1b2524d8584f0c9e4e9d31efeb5886f42aa98ac8d210c3ccb43eabf1244d5c15e34d38e66df0a101735b3f5bfc7
2018-11-06Add metavar to match var name in help text + Change wording for better ↵Martin Erlandsson
readability
2018-11-06appveyor: Script improvement part IIChun Kuan Lee
2018-11-05Merge #14252: build: Run functional tests and benchmarks under the undefined ↵MarcoFalke
behaviour sanitizer (UBSan) 9f49db7335 Enable functional tests in UBSAN job. Enable -fsanitize=integer (part of UBSAN). Merge UBSAN Travis job with no depends. (practicalswift) Pull request description: Run functional tests and benchmarks under the undefined behaviour sanitizer (UBSan). This will make Travis automatically detect issues such as: * #14242: Avoid triggering undefined behaviour (`std::memset(nullptr, 0, 0)`) if an invalid string is passed to `DecodeSecret(...)` * #14239: Avoid dividing by zero (undefined behaviour) in `EstimateMedianVal` (policy)/`ConnectTip` (validation)/`CreateTransaction` (wallet) * #13546: wallet: Avoid potential use of uninitialized value `bnb_used` in `CWallet::CreateTransaction(...)` Addresses issue #14059. Tree-SHA512: 285e1542b36c582516c47938ce8d999fd89ba6c867bc0976e7306e7c949b8b84ffbfa43dbc679dd97ae639b086092e7d799d8e1c903c66a37d529ce61d5c64b4
2018-11-05Enable functional tests in UBSAN job. Enable -fsanitize=integer (part of ↵practicalswift
UBSAN). Merge UBSAN Travis job with no depends.
2018-11-05Merge #14664: example_test.py: fixup coinbase height argument, derive number ↵MarcoFalke
clearly 6c5355e43d example_test.py: fixup coinbase height argument, derive number clearly (Gregory Sanders) Pull request description: Tree-SHA512: 52b7eb73422feb1f730924c9f513c1c54e2b8b1bcf962b4df59fb6b0b86812ae8d0d336f8ef8edac9aab0e7722fd16ed21fd92fa58ab143d6f8efc5ac10e5b1f
2018-11-05Merge #14660: trivial: Don't translate help textsMarcoFalke
b6022149ec trivial: Don't translate in help text (ken2812221) Pull request description: Tree-SHA512: 05a92b3ac77d00e7bf8c62a0461c9801306e924ac408eae58b0e091eae1c7d54cf46a7a862355fb9aa50b26b505f2298ace6f7b8d294ad38578bdca4d8738343
2018-11-05example_test.py: fixup coinbase height argument, derive number clearlyGregory Sanders
2018-11-05blockfilter: Use unordered_set instead of set in blockfilter.Jim Posen
2018-11-05Extract CSipHasher to it's own file in crypto/ directory.Jim Posen
This is a move-only commit with the exception of changes to includes.
2018-11-05qa: Add test to ensure node can generate all help texts at runtimeMarcoFalke
2018-11-05trivial: Don't translate in help textken2812221
2018-11-05Merge #14632: Tests: Fix a commentMarcoFalke
086fc83571 Tests: Fix a comment (fridokus) Pull request description: Fix a comment that was false Tree-SHA512: 945aa38229545e026e18c3abf53a4fbe6ec36413ce690fff7a1dd89b6e102d2b574524092e0ddf06cace82f3c040c59221b9b942be1203525814d2fbd50aaa0b
2018-11-05Merge #14092: tests: Dry run bench_bitcoin as part "make check" to allow for ↵MarcoFalke
quick identification of assertion/sanitizer failures in benchmarking code dfef0df840 tests: Dry run bench_bitcoin (-evals=1 -scaling=0: <1 second running time) as part "make check" to allow for quick identification of assertion/sanitizer failures in benchmarking code (practicalswift) 00c6306a61 Remove RUN_BENCH logic (practicalswift) Pull request description: Dry run `bench_bitcoin` (`-evals=1 -scaling=0`: <1 second running time) as part `make check` to allow for quick identification of assertion/sanitizer failures or crashes in benchmarking code. This is already tested in Travis but it is nice to have it locally too. The cost is near zero. Tree-SHA512: 1f51b86b34bf97f75785f2694891d80f1bfb3e050211e6f6c35d8d9bc80c75bdebaa5ebfa51855ac0cf76d8773c3026bc576f60d0227afb0e646d728b83abde7
2018-11-05Merge #14060: ZMQ: add options to configure outbound message high water ↵Wladimir J. van der Laan
mark, aka SNDHWM a4edb168b635b6f5c36324e44961cd42cf9bbbaa ZMQ: add options to configure outbound message high water mark, aka SNDHWM (mruddy) Pull request description: ZMQ: add options to configure outbound message high water mark, aka SNDHWM This is my attempt at https://github.com/bitcoin/bitcoin/pull/13315 Tree-SHA512: a4cc3bcf179776899261a97c8c4f31f35d1d8950fd71a09a79c5c064879b38e600b26824c89c4091d941502ed5b0255390882f7d44baf9e6dc49d685a86e8edb
2018-11-05Merge #14618: rpc: Make HTTP RPC debug logging more informativeWladimir J. van der Laan
ab8c6f24d28ea1d1e6258cf316b4b97a0baf2377 Add SAFE_CHARS[SAFE_CHARS_URI]: Chars allowed in URIs (RFC 3986) (practicalswift) 991248649b76a5a071e1360a700f3e2ecf3e1e1f rpc: Make HTTP RPC debug logging more informative (practicalswift) Pull request description: * Make HTTP RPC debug logging more informative * Avoid excessively large log messages (which could theoretically fill up the disk) when running with debug option `-debug=http` Tree-SHA512: 9068862fb7d34db1e12e6b9dde78b669b86c65b4fed3ea8c9eb6c35310d77fd12b16644728fd7e9fbf25059d25114bded9e061eb3de649d8847486ec42041ce9
2018-11-05Add SAFE_CHARS[SAFE_CHARS_URI]: Chars allowed in URIs (RFC 3986)practicalswift
2018-11-05rpc: Make HTTP RPC debug logging more informativepracticalswift
2018-11-05Merge #14515: doc: Update OpenBSD build guide for 6.4Wladimir J. van der Laan
33ae985912623dbee39e2689743fa9a29e31f632 doc: Update OpenBSD build guide for 6.4 (fanquake) 6d247b1148c61ab7923f324a425d8185dcf1616b gitignore contents of db4 folder (Marty Jones) Pull request description: Includes a commit from #14314. The `disable-dependency-tracking ` workaround is still required to run `./configure` (cc #14404). `gmake check -j4` pass. `src/bitcoind` runs and "starts" syncing. Tree-SHA512: 72d78eb0d94fc4f2bbcf901d867f10f0e85d8a4f43969c598953278343ed826a26d1ebe6772dcc0fbd1fc608e88b7c86e31656232c1efb0656c537176fb9de4c