aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-09-26doxygen: Fix member commentsMarcoFalke
2018-09-25Merge #13877: utils: Make fs::path::string() always return utf-8 string on ↵MarcoFalke
Windows 2c3eade704 Make fs::path::string() always return utf-8 string (Chun Kuan Lee) Pull request description: Imbue `fs::path` with `std::codecvt_utf8_utf16` at `SetupEnvironment()`, so that default string encoding will be utf-8 inside `fs::path`. Tree-SHA512: 0cb59464d777278decbf24771fc5ff0cb2caa7bc2fe8ee5cd36c97a2324873a3caad131f08f050393b488316ee7f4ab0b28b7fa4699e41839f8e51b9867d5118
2018-09-25Merge #14281: lcov: filter /usr/lib/ from coverage reportsMarcoFalke
fa6b30c40b lcov: filter /usr/lib/ from coverage reports (MarcoFalke) Pull request description: This folder was included for me on ubuntu trusty and bionic when creating coverage reports. Can be tested by passing `--enable-lcov` +optional `--enable-lcov-branch-coverage` to `./configure` Then `make -j 4 && make cov`, which will generate the report in html. See https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#compiling-for-test-coverage Tree-SHA512: 722deda8bca0d6d63e10dd55848ab72318d5cdbd56ab7ea19a1d1ca7285989bd3f0ccc72c3001aad326e1ce5b008e0a183bb5f05f2225d80ec68377c9434293a
2018-09-25Merge #14306: AppVeyor: Move AppVeyor YAML to dot-file-style YAMLMarcoFalke
ff40357da1 AppVeyor: Move AppVeyor YAML to dot-file-style YAML (Mitchell Cash) Pull request description: AppVeyor supports dot-file-style YAML named `.appveyor.yml` as is. This helps keep the root of the repository clean(ish) and readable by having the CI files as dot-files. Source: https://www.appveyor.com/docs/build-configuration/#yaml-file-alternative-naming Tree-SHA512: da2a78aff775e5e146f0784b1a6617d0371a5821da8a53be9e4aa57409cb16360f43d0afa5745f81f776599950cab4219a5d7ee7247d42e25861963ea487db66
2018-09-25Merge #14275: tests: Write the notification message to different files to ↵MarcoFalke
avoid race condition in feature_notifications.py 67654b6405 tests: write the notification to different files to avoid race condition (Chun Kuan Lee) Pull request description: This PR change the behavior that `feature_notifications.py` would write to different files instead of writing to the same file to avoid race condition. Tree-SHA512: 78406167cc6a3f570134b0ee76d2be1440bc1498cd7b1be72fae16d0ab86950e26ef3bf6008796016e5418231400c6492f0e062909dd882646541ecb7a70fb30
2018-09-25AppVeyor: Move AppVeyor YAML to dot-file-style YAMLMitchell Cash
AppVeyor supports dot-file-style YAML named .appveyor.yml as is. This helps keep the root of the repository clean(ish) and readable by having the CI files as dot-files.
2018-09-24Merge #13311: Don't edit Chainparams after initializationMarcoFalke
6fa901fb47 Don't edit Chainparams after initialization (Jorge Timón) 980b38f8a1 MOVEONLY: Move versionbits info out of versionbits.o (Jorge Timón) Pull request description: This encapsulates the "-vbparams" option, which is only meant for regtest, directly on CRegTestParams. This is a refactor and doesn't change functionality. Related to https://github.com/bitcoin/bitcoin/pull/8994 Tree-SHA512: 79771d729a63a720e743a9c77d5e2d80369f072d66202a43c1304e83a7d0ef7c6103d4968a03aea9666cc89a7203c618da972124a677b38cfe62ddaeb28f9f5d
2018-09-25tests: write the notification to different files to avoid race conditionChun Kuan Lee
2018-09-24Merge #14007: tests: Run functional test on Windows and enable it on AppveyorMarcoFalke
661ac15a4a appveyor: Run functional tests on appveyor (Chun Kuan Lee) 2148c36b6e tests: Make it possible to run functional tests on Windows (Chun Kuan Lee) Pull request description: This PR do the following things: - Make functional tests compatible with Windows - Print color output in functional tests for Windows 10 - Run util and functional tests on appveyor - Do not run symlink tests on Windows Note: - The wallet_multiwallet.py fail is unrelated to the test framework, it's a bug related to c++ code or maybe dependencies. `bitcoind` would exit with 0xC0000005(Access violation) during shutdown occasionally. Disable this for now. - Not using `--failfast` because this is still in experimental. We should track if there is any other error. - Disable ZMQ tests because the python zmq library could cause access violation sometimes. - Disable `feature_notifications` because Bitcoin Core handles the command in different thread, whicha can cause a race condition. Tree-SHA512: b76db137d264e62a5c130e1cbca7a2ca002a7a0f4153fa0b92c1ea6c9c09ef0533e11c49bdbd566c472d8ff59f245758feb5e5a6ec6cb6bb66a1c67bab5fa48a
2018-09-24Merge #13424: Consistently validate txid / blockhash length and encoding in ↵MarcoFalke
rpc calls 5eb20f81d9 Consistently use ParseHashV to validate hash inputs in rpc (Ben Woosley) Pull request description: ParseHashV validates the length and encoding of the string and throws an informative RPC error on failure, which is as good or better than these alternative calls. Note I switched ParseHashV to check string length first, because IsHex tests that the length is even, and an error like: "must be of length 64 (not 63, for X)" is much more informative than "must be hexadecimal string (not X)" in that case. Split from #13420 Tree-SHA512: f0786b41c0d7793ff76e4b2bb35547873070bbf7561d510029e8edb93f59176277efcd4d183b3185532ea69fc0bbbf3dbe9e19362e8017007ae9d51266cd78ae
2018-09-24Merge #14297: [RPC] Remove warning for removed estimatefee RPCMarcoFalke
1eb9a9b524 [RPC] Remove warning for removed estimatefee RPC (John Newbery) Pull request description: The RPC was removed in a previous version, but a warning was left for users to use the estimatesmartfee RPC. Remove that warning now that estimatefee has been gone for over one version. Tree-SHA512: 7fb440a354a5058f9e95930306d7fe0c1cba6563b9a44b7388a17d9e5c3cff42023f5aa1728fd94a1a11249ea4a8615a8a891afe4fa81ae46b61c2aa08e9cc47
2018-09-24Merge #14298: [REST] improve performance for JSON callsMarcoFalke
30973e9844 [REST] improve performance for JSON calls (Antoine Le Calvez) Pull request description: JSON calls do not use the raw data generated for the .bin and .hex calls. By moving the raw data creation into the .bin and .hex switch branches, JSON calls' performance is improved. Light benchmarking indicates that fetching 2000 JSON headers is ~25% faster, fetching large JSON blocks is ~4% faster. Tree-SHA512: 433552c89bac2469d041b48a4a991d5443e4026a3ad7dc5621685386029f22826484218642fa5130c268349a55524ecbc4e30d64c867bd6632e0edd24370cf11
2018-09-24Merge #13546: wallet: Fix use of uninitialized value bnb_used in ↵MarcoFalke
CWallet::CreateTransaction(...) a23a7f60aa wallet: Avoid potential use of unitialized value bnb_used in CWallet::CreateTransaction(...) (practicalswift) Pull request description: Avoid use of uninitialized value `bnb_used` in `CWallet::CreateTransaction(...)`. Tree-SHA512: 22faf0711ae35af44d9a0ab7f251bc01661ac88b40ad7b0a87a510427b46bbc8caf16868cab2e0a05e7d8518e93ce666d6bd1d48d3707d37bab2c0fb56a0a4a2
2018-09-23Don't edit Chainparams after initializationJorge Timón
2018-09-23MOVEONLY: Move versionbits info out of versionbits.oJorge Timón
2018-09-23[REST] improve performance for JSON callsAntoine Le Calvez
JSON calls do not use the raw data generated for the .bin and .hex calls. By moving the raw data creation into the .bin and .hex switch branches, JSON calls become faster.
2018-09-22[RPC] Remove warning for removed estimatefee RPCJohn Newbery
The RPC was removed in a previous version, but a warning was left for users to use the estimatesmartfee RPC. Remove that warning now that estimatefee has been gone for over one version.
2018-09-23Make fs::path::string() always return utf-8 stringChun Kuan Lee
2018-09-20lcov: filter /usr/lib/ from coverage reportsMarcoFalke
2018-09-19Merge #14287: tests: Use MakeUnique to construct objects owned by unique_ptrsMarcoFalke
b6718e373e tests: Use MakeUnique to construct objects owned by unique_ptrs (practicalswift) Pull request description: A subset of #14211 ("Use MakeUnique to construct objects owned by unique_ptrs") as suggested by @MarcoFalke in https://github.com/bitcoin/bitcoin/pull/14211#issuecomment-423324019. Use `MakeUnique` to construct objects owned by `unique_ptr`s. Rationale: * `MakeUnique` ensures exception safety in complex expressions. * `MakeUnique` gives a more concise statement of the construction. Tree-SHA512: 1228ae6ce7beb178d79142c4e936b728178ccaa8aa35c6d8feeb33d1a667abfdd010c59996a9d833594611e913877ce5794e75953d11d9b1fdbac04aa491d9cf
2018-09-21tests: Use MakeUnique to construct objects owned by unique_ptrspracticalswift
2018-09-20Merge #14214: convert C-style (void) parameter lists to C++ style ()MarcoFalke
3ccfa34b32 convert C-style (void) parameter lists to C++ style () (Arvid Norberg) Pull request description: In C, an empty parameter list, `()`, means the function takes any arguments, and `(void)` means the function does not take any parameters. In C++, an empty parameter list means the function does not take any parameters. So, C++ still supports `(void)` parameter lists with the same semantics, why change to `()`? 1. removing the redundant `void` improves signal-to-noise ratio of the code 2. using `(void)` exposes a rare inconsistency in that a template taking a template `(T)` parameter list, cannot be instantiated with `T=void` Tree-SHA512: be2897b6c5e474873aa878ed6bac098382cd21866aec33752fe40b089a6331aa6263cae749aba1b4a41e8467f1a47086d32eb74abaf09927fd5a2f44a4b2109a
2018-09-20Merge #14272: init: Remove deprecated args from hidden argsMarcoFalke
fa910e4301 init: Remove deprecated args from hidden args (MarcoFalke) Pull request description: The args have been deprecated since 0.17 (maybe longer) and since we reject unknown args, there is no need to add deprecated args to the list of hidden args and then hand-craft an error message if a user provides them. Tree-SHA512: 3a3191439ab0d7969fb72801d097bd86998524f84b3819380224f746cbe4b0f57beec1ad34744424f6587038035b0ddf418ad13171a8d9c3b97b4f3b7b3222a3
2018-09-20Merge #14276: doc: Add autogen.sh in ARM Cross-compilationMarcoFalke
52beb9ed88 Add autogen.sh in ARM Cross-compilation (Walter) Pull request description: autogen for the config files was missing. Tree-SHA512: 90e5fdc3392b64ff239b8f359a94a39a3e992640a67ad7ed80a1a5d765aabf95e4dc2f3f4af5ee2aefbe1d3effd7cef35a57b0fad0eaaef8346a07e460538e62
2018-09-20Add autogen.sh in ARM Cross-compilationWalter
autogen for the config files was missing.
2018-09-19init: Remove deprecated args from hidden argsMarcoFalke
2018-09-19wallet: Avoid potential use of unitialized value bnb_used in ↵practicalswift
CWallet::CreateTransaction(...)
2018-09-18Merge #13152: [rpc] Add getnodeaddresses RPC commandMarcoFalke
a2eb6f5405 [rpc] Add getnodeaddresses RPC command (chris-belcher) Pull request description: Implements issue https://github.com/bitcoin/bitcoin/issues/9463 New getnodeaddresses call gives access via RPC to the peers known by the node. It may be useful for bitcoin wallets to broadcast their transactions over tor for improved privacy without using the centralized DNS seeds. getnodeaddresses is very similar to the getaddr p2p method. Please advise me on the best approach for writing an automated test. By my reading the getaddr p2p method also isn't really tested. Tree-SHA512: ad03abf518847476495b76a2f5394b8030aa86654429167fa618e21460abb505c10ef9817ec1b80472320d41d0aff5dc94a8efce023aaaaf5e81386aa92b852b
2018-09-18Merge #14251: doc: Add historical release notes for 0.16.3Wladimir J. van der Laan
fd5c95cc4ec8d7d8a49539e9143eab29281c00f7 doc: Add historical release notes for 0.16.3 (Wladimir J. van der Laan) Pull request description: Release notes for 0.16.3 have been kind of rushed, feel free to make suggestions here. Tree-SHA512: 9e6abb6cdd152595c9264f347b88adb1404dee4fad9b7e8e540948dbe9438ec0fc68f8cd4f6dbed1837897662277d96ff570c04e0d7de5d59d45bf965019387f
2018-09-18doc: Add historical release notes for 0.16.3Wladimir J. van der Laan
2018-09-18Merge #14247: Fix crash bug with duplicate inputs within a transactionWladimir J. van der Laan
9b4a36effcf642f3844c6696b757266686ece11a [qa] Test for duplicate inputs within a transaction (Suhas Daftuar) b8f801964f59586508ea8da6cf3decd76bc0e571 Fix crash bug with duplicate inputs within a transaction (Suhas Daftuar) Pull request description: Tree-SHA512: 8c7ea34c7fa44188d86c04a690a7cbf8e9deda71ab1f7ca6d11de1f2abb3dd7222627071f86d0d39689a8b302ba9af142f0202466a67e30cd54aed3a08d4eb14
2018-09-17[rpc] Add getnodeaddresses RPC commandchris-belcher
New getnodeaddresses call gives access via RPC to the peers known by the node. It may be useful for bitcoin wallets to broadcast their transactions over tor for improved privacy without using the centralized DNS seeds. getnodeaddresses is very similar to the getaddr p2p method. Tests the new rpc call by feeding IP address to a test node via the p2p protocol, then obtaining someone of those addresses with getnodeaddresses and checking that they are a subset.
2018-09-17[qa] Test for duplicate inputs within a transactionSuhas Daftuar
2018-09-17Fix crash bug with duplicate inputs within a transactionSuhas Daftuar
Introduced by #9049
2018-09-17Merge #14236: qa: generate --> generatetoaddress change to allow tests run ↵MarcoFalke
without wallet 0ca4c8b3c6 Changed functional tests which do not require wallets to run without (sanket1729) Pull request description: Addresses #14216 . Changed Changed `get_deterministic_priv_key()` to return named tuple`(address, key)` I have tried to be exhaustive as possible in maximum coverage for non-wallet mode without affecting any coverage for wallet mode. However, I could not check the tests in wallet mode because of timeout issues. Hopefully, travis job checks those. Tests `feature_block.py`, `feature_logging.py` and `feature_reindex.py` were skipping despite having no direct dependency on any wallet functions. So, I have also disabled the `skip_test_no_wallet()` for those files too. Tree-SHA512: 8f84bd8400a732d4266c7518d5cbcf1eb761f623a64a74849e0470142c8ef22cb75364474ddae75d9213c3d16659a52917b5ed979a313695da6abd16c4fd7445
2018-09-17appveyor: Run functional tests on appveyorChun Kuan Lee
2018-09-17Changed functional tests which do not require wallets to run withoutsanket1729
skipping .Addreses #14216. Changed get_deterministic_priv_key() to a named tuple
2018-09-17Merge #13578: [depends, zmq, doc] upgrade zeromq to 4.2.5 and avoid ↵Wladimir J. van der Laan
deprecated zeromq api functions f1bd03eb013b96ff040a8f835e4137fbd2a38cda [depends, zmq, doc] upgrade zeromq to 4.2.5 and avoid deprecated zeromq api functions (mruddy) Pull request description: Upgrade the ZeroMQ dependency from version 4.2.3 to the latest stable version 4.2.5. This PR Follows the lead of https://github.com/bitcoin/bitcoin/pull/11986. I upgraded both patch files to correspond to the version `4.2.5` libzmq files. I assume doing so is still necessary and correct. Without updating the patch line numbers, things appear to work, but you get extra log messages while building `depends` because things don't exactly match, e.g.: ``` /bitcoin/depends> make zeromq Extracting zeromq... /bitcoin/depends/sources/zeromq-4.2.5.tar.gz: OK Preprocessing zeromq... patching file src/windows.hpp Hunk #1 succeeded at 58 (offset 3 lines). patching file src/thread.cpp Hunk #1 succeeded at 307 with fuzz 2 (offset 87 lines). Hunk #2 succeeded at 323 with fuzz 2 (offset 90 lines). ``` Updating the patches seemed cleaner, so I did it. Note that libzmq had some whitespace changes, so that's why the updated patches do too. More info: https://github.com/zeromq/libzmq/releases/tag/v4.2.5 tags: libzmq, zmq, 0mq Tree-SHA512: 78659dd276b5311e40634b1bbebb802ddd6b69662ba3c84995ef1e3795c49a78b1635112c7fd72a405ea36e2cc3bdeb84e6d00d4e491a349bba1dafff50e2fa5
2018-09-17Merge #14227: integer division instead of implicit double conversionWladimir J. van der Laan
be54f42e5f309ff332d74828ae294636d77fb8ea use integer division instead of double conversion and multiplication for computing amounts (Arvid Norberg) Pull request description: use integer division instead of double conversion and multiplication for computing amounts. This will most likely generate identical code. My main argument in favour of this change is one of purity, that we should not rely on implicit conversion from `CAmount` -> `double` and back again. Today this implicit conversion can happen because `CAmount` is just a typedef to `int64_t`. However, I envision a future where `CAmount` is a proper type that does not allow suspicious implicit conversions like these. Tree-SHA512: a70966623ac6e82410ac94d26cf44e2b7b7a4dbaa514d68ae1f0369aaee1bc2851d05a5e365291b005fe0941428e6139dc62bcfdd0b2f66720706fefe0eb92f1
2018-09-17tests: Make it possible to run functional tests on WindowsChun Kuan Lee
2018-09-16Merge #14225: tests: Reorder tests and move most of extended tests up to ↵MarcoFalke
normal tests d641c29a5a travis: Run feature_dbcrash functional tests in cron job (Chun Kuan Lee) c0d947d725 tests: Reorder tests and move most of extended tests up to normal tests (Chun Kuan Lee) Pull request description: The travis should run almost all jobs unless it takes really long time, however it does not take too long for now. So it's time for moving it to normal job. (The test sort is to see how many conflict will this cause, will drop it if there are too many) The first commit can be reviewed by `git diff --color-moved=plain` Tree-SHA512: db6bd5b1f19de2f729012adda6ed00ca989071fd40a20710c0ff2579b5bd008edcf7421c1ad56d5f0752354e7df408f58351129d35a1ab7f4a6caa9d315df2ec
2018-09-16travis: Run feature_dbcrash functional tests in cron jobChun Kuan Lee
2018-09-16tests: Reorder tests and move most of extended tests up to normal testsChun Kuan Lee
2018-09-15use integer division instead of double conversion and multiplication for ↵Arvid Norberg
computing amounts
2018-09-15Merge #14212: build: Remove libssl from LDADD unless guiMarcoFalke
cccc362d62 build: Remove libssl from LDADD unless gui (MarcoFalke) Pull request description: libssl is only used by the gui, so no need to LDADD it to the other tools and binaries Follow up of the commit which removed rpcssl: 40b556d3742a1f65d67e2d4c760d0b13fe8be5b7 Tree-SHA512: 9dbdf4faf40699cea3a37349ac83dbcacdaa062f5338416ff4ba77924c47d9e148b27218165c5aa3584a1ef4899e0fa237ff571208aa0b98803761e802d1e5dc
2018-09-15Merge #14206: doc: Document -checklevel levelsWladimir J. van der Laan
8e1c13e6da2a5e1054503539664c139f1eb91e90 doc: Document -checklevel levels (Wladimir J. van der Laan) Pull request description: Document the various possible check levels for the command-line argument. The numbers say nothing on their own. Tree-SHA512: 8a526c53222b55304dde1d9350dd15a50f1dd62bf452a32dc886a4521e3ab49d5f0a86a4c5cbb0d52fb76b60222101045100f93fee5e1a5d5e3ab8e79b64cbe0
2018-09-15doc: Document -checklevel levelsWladimir J. van der Laan
Document the various possible check levels for the command-line argument. The numbers say nothing on their own.
2018-09-14Merge #12493: [wallet] Reopen CDBEnv after encryption instead of shutting downWladimir J. van der Laan
c1dde3a949b36ce9c2155777b3fa1372e7ed97d8 No longer shutdown after encrypting the wallet (Andrew Chow) d7637c5a3f1d62922594cdfb6272e30dacf60ce9 After encrypting the wallet, reload the database environment (Andrew Chow) 5d296ac810755dc47f105eb95b52b7e2bcb8aea8 Add function to close all Db's and reload the databae environment (Andrew Chow) a769461d5e37ddcb771ae836254fdc69177a28c4 Move BerkeleyEnvironment deletion from internal method to callsite (Andrew Chow) Pull request description: This is the replacement for #11678 which implements @ryanofsky's [suggestion](https://github.com/bitcoin/bitcoin/pull/11678#pullrequestreview-76464511). Shutting down the software was to prevent the BDB environment from writing unencrypted private keys to disk in the database log files, as was noted [here](https://bitcointalk.org/index.php?topic=51474.msg616068#msg616068). This PR replaces the shutdown behavior with a CDBEnv flush, close, and reopen which achieves the same effect: everything is cleanly flushed and closed, the log files are removed, and then the environment reopened to continue normal operation. To ensure that no unencrypted private keys are in the log files after encrypting the wallet, I wrote [this script](https://gist.github.com/achow101/7f7143e6c3d3fdc034d3470e72823e9d) to pull private keys from the original wallet file and searches for these keys in the log files (note that you will have to change your file paths to make it work on your own machine). As for concerns about private keys being written to slack space or being kept in memory, these behaviors no longer exist after the original wallet encryption PR and the shutting down solution from 2011. cc @ryanofsky Tree-SHA512: 34b894283b0677a873d06dee46dff8424dec85a2973009ac9b84bcf3d22d05f227c494168c395219d9aee3178e420cf70d4b3eeacc9785aa86b6015d25758e75
2018-09-13Merge #14215: [qa] Use correct python index slices in example testMarcoFalke
9dcb6763fb [qa] Use correct python index slices in example test (Suhas Daftuar) Pull request description: There's an off-by-one in the list indices used in example_test.py. Tree-SHA512: d75b77c1e0b3931d02dfa043da4cb6fe8e62864a73717ce5c184d9dbeb25579342c6365cc7bbcc7c4382d76a320a528bf3c69107854dfc6fa704133d0ba11012
2018-09-13Merge #14179: qa: Fixups to "Run all tests even if wallet is not compiled"MarcoFalke
fa8433e379 qa: Remove unneded import_deterministic_coinbase_privkeys overwrite, add comments (MarcoFalke) e413c2ddd1 qa: Fix codespell error and have lint-spelling error instead of warn (MarcoFalke) Pull request description: Currently the functional tests require the wallet module to be compiled into the Bitcoin Core executable. For example the premine (or datadir cache) to speed up tests when run in parallel would mine a bunch of blocks and store the private keys to sign the coinbase tx outputs in a wallet. There is no need to have the overhead of the whole wallet module by using keys that are deterministic for all runs. Note that this change most likely requires the `./test/cache/` to be cleared. Tree-SHA512: 9ce26036b0e10f0f888f66a1e50be6a357343f9ffb302ae24a7bb3df2f083a31702ef308b738a03b08a1b623aeddac5d6563dc1b15078c0357b7dafad7808ec3