aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-03-01Merge #10387: Eventually connect to NODE_NETWORK_LIMITED peersWladimir J. van der Laan
eb91835 Add setter for g_initial_block_download_completed (Jonas Schnelli) 3f56df5 [QA] add NODE_NETWORK_LIMITED address relay and sync test (Jonas Schnelli) 158e1a6 [QA] fix mininode CAddress ser/deser (Jonas Schnelli) fa999af [QA] Allow addrman loopback tests (add debug option -addrmantest) (Jonas Schnelli) 6fe57bd Connect to peers signaling NODE_NETWORK_LIMITED when out-of-IBD (Jonas Schnelli) 31c45a9 Accept addresses with NODE_NETWORK_LIMITED flag (Jonas Schnelli) Pull request description: Eventually connect to peers signalling NODE_NETWORK_LIMITED if we are out of IBD. Accept and relay NODE_NETWORK_LIMITED peers in addrman. Tree-SHA512: 8a238fc97f767f81cae1866d6cc061390f23a72af4a711d2f7158c77f876017986abb371d213d1c84019eef7be4ca951e8e6f83fda36769c4e1a1d763f787037
2018-03-01Merge #12570: Add test cases for HexStr (std::reverse_iterator and corner cases)Wladimir J. van der Laan
ac48861 Add tests for HexStr std::reverse_iterator cases (Kosta Zertsekel) 90eac8c Add tests for HexStr corner cases (Kosta Zertsekel) Pull request description: Tree-SHA512: 6298d6fdc344e67a9ea6dc74eadb04e68f4f49fc4511d4a8765cafce7eeb8603f96ebedd82c13811326bcaf1ee511946419b651ca411f711baca91bec51947d6
2018-03-01Merge #12421: [qt] navigate to transaction history page after sendWladimir J. van der Laan
e7d9fc5 [qt] navigate to transaction history page after send (Sjors Provoost) Pull request description: Before this change QT just remained on the Send tab, which I found confusing. Now it switches to the Transactions tab. This makes it more clear to the user that the send actually succeeded, and here they can monitor progress. Ideally I would like to highlight the transaction, e.g. by refactoring `TransactionView::focusTransaction(const QModelIndex &idx)` to accept a transaction hash, but I'm not sure how to do that. Tree-SHA512: 8aa93e03874de8434e18951f8aec47377814c0bcaf7eda4766fc41d5a4e32806346e12e4139e4d45468dfdf0b786f5a7faa393a31b8cd6c65ccac21fb3782c33
2018-03-01Merge #12549: Make prevector::resize() and other prevector operations much ↵Wladimir J. van der Laan
faster 5aad635 Use memset() to optimize prevector::resize() (Evan Klitzke) e46be25 Reduce redundant code of prevector and speed it up (Akio Nakamura) f0e7aa7 Add new prevector benchmarks. (Evan Klitzke) Pull request description: This branch optimizes various `prevector` operations, especially resizing vectors. While profiling the `loadblk` thread I noticed that a lot of time was being spent in `prevector::resize()` which led to this work. I have some data here indicating that it takes up **37%** of the time in `ReadBlockFromDisk()`: https://monad.io/readblockfromdisk.svg This branch improves things significantly. For trivial types, the new results for the prevector benchmark are: * `PrevectorClearTrivial` which tests `prevector::clear()` becomes 24.6x faster * `PrevectorDestructorTrivial` which tests `prevector::~prevector()` becomes 20.5x faster * `PrevectorResizeTrivial` which tests `prevector::resize()` becomes 20.3x faster Note that in practice it looks like the prevector is only used to contain `unsigned char` types, which is a trivial type. The benchmarks are testing a bit of an extreme case, but the changes here are motivated by the profiling data for `ReadBlockFromDisk()` I linked to above. The pull request here consists of a series of three commits: * The first adds new benchmarks but does not change the prevector code. * The second is from @AkioNak , and merges some prevector optimizations he submitted in #11988 * The third optimizes `prevector::resize()` to use `memset()` when the prevector contains trivially constructible types Tree-SHA512: 28f7cbb91a19f9f43b6a5942781d7eb2e3197389186b666f086b69df12bee37773140f765426d715bfb8ebff79cb27a5f1206d0325b54b4aa65598b50fb18368
2018-03-01[qt] navigate to transaction history page after sendSjors Provoost
The transaction will be selected. When sending to multiple destinations, all will be selected (thanks @promag).
2018-03-01Add tests for HexStr std::reverse_iterator casesKosta Zertsekel
Signed-off-by: Kosta Zertsekel <zertsekel@gmail.com>
2018-03-01Add tests for HexStr corner casesKosta Zertsekel
Signed-off-by: Kosta Zertsekel <zertsekel@gmail.com>
2018-02-27Use memset() to optimize prevector::resize()Evan Klitzke
Further optimize prevector::resize() (which is called by a number of other prevector methods) to use memset to initialize memory when the prevector contains trivial types.
2018-02-27Reduce redundant code of prevector and speed it upAkio Nakamura
In prevector.h, the code which like item_ptr(size()) apears in the loop. Both item_ptr() and size() judge whether values are held directly or indirectly, but in most cases it is sufficient to make that judgement once outside the loop. This PR adds 2 private function fill() which has the loop to initialize by specified value (or iterator of the other prevector's element), but don't call item_ptr() in their loop. Other functions(assign(), constructor, operator=(), insert()) that has similar loop, call fill() instead of original loop. Also, resize() was changed like fill(), but it calls the default constructor for that element each time.
2018-02-27Add new prevector benchmarks.Evan Klitzke
This prepares for a series of two additional commits which optimize prevector performance.
2018-02-27Merge #12556: [Trivial] fix version typo in getpeerinfo RPC call helpWladimir J. van der Laan
d16bfaa fix version typo (Tamas Blummer) Pull request description: RPC getpeeerinfo help output uses non-existent protocol version 7001. Changed to 70001. Tree-SHA512: aea634d739b51bf26e3f871e8bf2bf812eb62a5d87008ead3ed27ec8bd9b753ad0a958eb21f580e505d7f2b36d60e5d9901dc8e0d25f34b7ef9533fddc898844
2018-02-27fix version typoTamas Blummer
2018-02-26Merge #12083: Improve getchaintxstats test coverageWladimir J. van der Laan
57e6786 qa: Improve getchaintxstats functional test (João Barbosa) 501b439 rpc: Refactor blockhash parse in getchaintxstats (João Barbosa) Pull request description: Tree-SHA512: 61dec5cb68122998df7ec7b5239830f3caf0fe7185c107a66f27653ab2531a800db19a09050671b6fa8dbb5b53181da861eb31199c79d8635f246ccfa0d10efd
2018-02-26doc: Add historical release notes for 0.16.0Wladimir J. van der Laan
Tree-SHA512: 4c33c9c85bf31aa7c73b09ba9f2295eec477adc90934e51323ed50228be0dde9341a2d99ccf7adb184060fe2293533436bccfdbdfe5a30efcd61127ebb5359b8
2018-02-25Merge #12287: Optimise lock behaviour for GuessVerificationProgress()Jonas Schnelli
90ba2df11 Fix missing cs_main lock for GuessVerificationProgress() (Jonas Schnelli) Pull request description: `GuessVerificationProgress()` needs `cs_main` due to accessing the `pindex->nChainTx`. This adds a `AssertLockHeld` in `GuessVerificationProgress()` and adds the missing locks in... * `LoadChainTip()` * `ScanForWalletTransactions()` (got missed in #11281) * GUI, `ClientModel::getVerificationProgress()` <--- **this may have GUI performance impacts**, but could be relaxed later with a cache or something more efficient. Tree-SHA512: 13302946571422375f32af8e396b9d2c1180f2693ea363aeba9e98c8266ddec64fe7862bfdcbb5a93a4b12165a61eec1e51e4e7d7a8515fa50879095dc163412
2018-02-23Merge #12443: qa: Move common args to bitcoin.confMarcoFalke
face7220b7 qa: Move common args to bitcoin.conf (MarcoFalke) Pull request description: Beside removing duplicates of the same args in the code, this actually helps with debugging after a test failure. For example, `bitcoin-qt` has `server` turned off, so you'd have to turn it on every time, if you wanted to debug a temporary test datadir created by the test framework. Also, `keypool` would fill up if you forget to specify `-keypool=1`. Tree-SHA512: 996bec8738dc0fce7297ab1fc5b4fbe3aa31b9b6241f8c4e685db728925363ccaca6145ad1edc6bee2f360e02ac4b9a53fcdff74eb79de90793393742d52b559
2018-02-23Merge #12477: test: Plug memory leaks and stack-use-after-scopeWladimir J. van der Laan
fadb39c test: Plug memory leaks and stack-use-after-scope (MarcoFalke) Pull request description: Tree-SHA512: 7bd6bbba43c7870bbd9732d73ecfc520f21701168e6fb4ad099a08ea5b21d9cd09215e70d22fb92a1af03993204ef89ad74b3e80d9fa5a10831c3e7cf2dd04cd
2018-02-23Merge #12474: [depends] Allow depends system to support armv7lWladimir J. van der Laan
ac91ea6 [depends] Allow depends system to support armv7l (Henrik Jonsson) Pull request description: Credit for the actual patches goes to @theuni, I just tested them on an armv7l machine. This change allows the depends system to build our dependencies on 32-bit ARM / armv7l architecture. I.e. with this patch, the following steps now builds fine: ``` $ uname -m armv7l $ ./autogen.sh $ cd depends && make NO_QT=1 && cd .. $ ./configure --prefix=$(pwd)/depends/armv7l-unknown-linux-gnueabihf $ make ``` Without this patch, the `cd depends && make NO_QT=1` command fails on armv7l. Tree-SHA512: 1a81be2f1346e0e7080e83a991d9851f0371438262a34580eda5f43ebd220a3ce1ed0d783c43a0a8aed18082bbb1afc91e5c9bf3f4a36eecc82b6a9b6eff5e4c
2018-02-23Merge #12486: [test] Round target fee to 8 decimals in assert_fee_amountWladimir J. van der Laan
42e1b5d [test] Round target fee to 8 decimals in assert_fee_amount (Karl-Johan Alm) Pull request description: The output would produce arbitrary number of decimal points, sometimes resulting in 9 decimals: ``` AssertionError: Fee of 0.00000415 BTC too low! (Should be 0.000006175 BTC) ``` The above looks like the expected fee is 6175 sats when in reality it's 618. Tree-SHA512: ddbff2926a88890d6e34a58db36f0b15a917a80064be6e40e9bcbec3f05ae6202d02adcd7873733945b043fa121d4a56dd930446ec368078fe1935cbfff898ce
2018-02-22test: Plug memory leaks and stack-use-after-scopeMarcoFalke
2018-02-22Merge #12451: Bump leveldb subtreeWladimir J. van der Laan
835a21b Squashed 'src/leveldb/' changes from c521b3ac65..64052c76c5 (MarcoFalke) Pull request description: Pull in changes from https://github.com/bitcoin/bitcoin/pull/11674#issuecomment-348174674. Merges cleanly into master and 0.16 branch. Tree-SHA512: 819c042c0dfac8dc3078fc182c1e22d4a85b343967475d3389be5b5b056361114d8c9892437cd1dc4b45808c27880c0e166e047afc2c2bd2bbc33e55336a8c33
2018-02-22Merge #12487: init: Remove translation for `-blockmaxsize` option helpWladimir J. van der Laan
d2ee6e3 init: Remove translation for `-blockmaxsize` option help (Wladimir J. van der Laan) Pull request description: Move `-blockmaxsize`, a deprecated option which is replaced by `-blockmaxweight`, to debug options and remove the translation. This message is absolutely terrible for translators (esp the `* 4` part). (for 0.17 we should probably remove this option completely?) (reported by French Language Coordinator) Tree-SHA512: 379150c9217672d2f2f93b4c02a3ac638e77ca56fb518e30c56c46d59f89eac422b4f540e70a9abd3c6ad653ac4b786d4734621b18f93804885d81e223f1a908
2018-02-21Merge #12503: [RPC] createmultisig no longer takes addressesMarcoFalke
e4c924c517 createmultisig no longer takes addresses (Gregory Sanders) Pull request description: Tree-SHA512: a6a752ef2282c5c893dd1a6ff5ccab42d3de1989847af627d82d41605ea19abc0aaf68567a62b6478933ba7eea09f911087b410ba7d3a815331ef15ec1ff9df0
2018-02-21Merge #12494: Declare CMutableTransaction a struct in rawtransaction.hMarcoFalke
eacc5b24f8 Declare CMutableTransaction a struct in rawtransaction.h (Ben Woosley) Pull request description: Because it's a struct. Fix for #10579 - this was called out in code review. https://github.com/bitcoin/bitcoin/pull/10579#discussion_r168936821 Tree-SHA512: 10758a667218481de6f50b5ed874e92eb350c621f7a6355fba7da6ab42b09e1764f827e89491c8663e554fcfd23f124b299f968237c6ad1ff7819e211bd7e521
2018-02-21createmultisig no longer takes addressesGregory Sanders
2018-02-20Declare CMutableTransaction a struct in rawtransaction.hBen Woosley
Because it's a struct.
2018-02-20Merge #12489: Bugfix: respect user defined configuration file (-conf) in QT ↵MarcoFalke
settings a6e6e39a8b Bugfix: respect user defined configuration file (-conf) when open conf. file from QT settings (Jonas Schnelli) Pull request description: Fixes #12488. In master, opening the configuration file from the GUI settings will always open the file "bitcoin.conf" regardless of the `-conf=` settings. This PR makes the GUI settings open configuration file function respect the `-conf` option. Tree-SHA512: fb54cc699b4d2a3947f749fdf5f1a51251ffd67d0f6c6a937a5b80f0ba5a5c1085d0eef190453bbc04696d4d76c2c266de0fe9712e65e4bb36116158b54263d4
2018-02-20[depends] Allow depends system to support armv7lHenrik Jonsson
2018-02-20Bugfix: respect user defined configuration file (-conf) when open conf. file ↵Jonas Schnelli
from QT settings
2018-02-20init: Remove translation for `-blockmaxsize` option helpWladimir J. van der Laan
Move `-blockmaxsize`, a deprecated option which is replaced by `-blockmaxweight`, to debug options and remove the translation. This message is absolutely terrible for translators (esp the `* 4` part).
2018-02-20[test] Round target fee to 8 decimals in assert_fee_amountKarl-Johan Alm
The output would produce arbitrary number of decimal points, sometimes resulting in 9 decimals: AssertionError: Fee of 0.00000415 BTC too low! (Should be 0.000006175 BTC) The above looks like the expected fee is 6175 sats when in reality it's 618.
2018-02-19Merge #10579: [RPC] Split signrawtransaction into wallet and non-wallet RPC ↵Pieter Wuille
command d60234885b Add test for signrawtransaction (Andrew Chow) eefff65a4b scripted-diff: change signrawtransaction to signrawtransactionwithwallet in tests (Andrew Chow) 1e79c055cd Split signrawtransaction into wallet and non-wallet (Andrew Chow) Pull request description: This PR is part of #10570. It also builds on top of #10571. This PR splits `signrawtransaction` into two commands, `signrawtransactionwithkey` and `signrawtransactionwithwallet`. `signrawtransactionwithkey` requires private keys to be passed in and does not use the wallet for any signing. `signrawtransactionwithwallet` uses the wallet to sign a raw transaction and does not have any parameters to take private keys. The `signrawtransaction` RPC has been marked as deprecated and will call the appropriate RPC command based upon the parameters given. A test was added to check this behavior is still consistent with the original behavior. All tests that used `signrawtransaction` have been updated to use one of the two new RPCs. Most uses were changed to `signrawtransactionwithwallet`. These were changed via a scripted diff. Tree-SHA512: d0adf5b4cd7077639c504ec07bee262a3b94658d34db0a5c86a263b6393f7aa62f45129eafe29a7c861aa58440dd19348ee0c8b685e8a62d6f4adae8ec8f8cb3
2018-02-18Merge #12308: contrib: Add support for out-of-tree builds in gen-manpages.shMarcoFalke
526e28220a contrib: Add support for out-of-tree builds in gen-manpages.sh (Wladimir J. van der Laan) Pull request description: This adds support for setting the environment variable `BUILDDIR` to point to executables that are outside the source directory. E.g. to invoke the tool when the build is in $PWD/build: ```bash BUILDDIR=$PWD/build contrib/devtools/gen-manpages.sh ``` This avoids having to manually copy the generated manpages after they end up in the build instead of source path, when setting TOPDIR instead. Tree-SHA512: 8dc6dd7a47a0c014ae7d27f0ac9d86f69238ec6bac8a3007b975bb88c9f37014755c716c5e62604dd91baad2f8a41fd1544cdca3ba4b59bc76602e6593f4a4a7
2018-02-17Add test for signrawtransactionAndrew Chow
Add a brief test for signrawtransaction to ensure that compatibility is maintained.
2018-02-17scripted-diff: change signrawtransaction to signrawtransactionwithwallet in ↵Andrew Chow
tests -BEGIN VERIFY SCRIPT- sed -i 's/\<signrawtransaction\>/signrawtransactionwithwallet/g' test/functional/*.py sed -i 's/\<signrawtransaction\>/signrawtransactionwithwallet/g' test/functional/test_framework/*.py -END VERIFY SCRIPT-
2018-02-17Split signrawtransaction into wallet and non-walletAndrew Chow
Splits signrwatransaction into a wallet version (signrawtransactionwithwallet) and non-wallet version (signrawtransactionwithkey). signrawtransaction is marked as DEPRECATED and will call the right signrawtransaction* command as per the parameters in order to maintain compatibility. Updated signrawtransactions test to use new RPCs
2018-02-17Merge #10583: [RPC] Split part of validateaddress into getaddressinfoJonas Schnelli
b22cce014 scripted-diff: validateaddress to getaddressinfo in tests (Andrew Chow) b98bfc5ed Create getaddressinfo RPC and deprecate parts of validateaddress (Andrew Chow) 1598f3230 [rpc] Move DescribeAddressVisitor to rpc/util (John Newbery) 39633ecd5 [rpc] split wallet and non-wallet parts of DescribeAddressVisitor (John Newbery) Pull request description: This PR makes a new RPC command called `getaddressinfo` which relies on the wallet. It contains all of `validateaddress`'s address info stuff. Those parts in `validateaddress` have been marked as deprecated. The tests have been updated to use `getaddressinfo` except the `disablewallet` test which is the only test that actually uses `validateaddress` to validate an address. Tree-SHA512: ce00ed0f2416200b8de1e0a75e8517c024be0b6153457d302c3879b3491cce28191e7c29aed08ec7d2eeeadc62918f5c43a7cb79cd2e4b6d9291bd83ec31c852
2018-02-17Merge #12468: Add missing newline in init.cpp log messageJonas Schnelli
8b661f971 fixes #12465 added missing terminating newline character in log message (Josh Hartshorn) Pull request description: Adding missing new line as detailed in #12465 Tree-SHA512: 48f1e3f892f7c13b862d24b4e807cc42310001cab65d771ddf758155f727554bf13c59fa9a6c9fb93d1d0466f03f142289b5fcad9d7938fd55b1a268fc1307ed
2018-02-17Add setter for g_initial_block_download_completedJonas Schnelli
2018-02-17Merge #12029: Build: Add a makefile target for Doxygen documentationJonas Schnelli
a777244e4 Build: Add a makefile target for Doxygen documentation (Andrea Comand) Pull request description: You can now build the doxygen documentation with `make docs` and clean it with `make clean-docs`. Fixes: #11949 Tree-SHA512: f2361ec7f771227367dd04bba1a444b44e59f13901463a678a5f2f579a10a56d67db2e29552e754e312a1c472a31593b6af189cbaac5cd351a428c57baf5ace7
2018-02-16fixes #12465 added missing terminating newline character in log messageJosh Hartshorn
2018-02-16Merge #12455: Fix bip68 sequence test to reflect updated rpc error messageMarcoFalke
e710387ca9 test: Fix bip68 sequence test to reflect updated rpc error message (Ben Woosley) Pull request description: The message changed in #12356, but this test is in the extended test suite, so it didn't fail on CI. Tree-SHA512: ce800e2636ab7bbba7876aa533e1684e75c37a7d2a119f9c4602fd89ac9215e2e28710a1f27feb642b6737ed858da049ebc52fdd476ff4637e3ac3bb1d8399ce
2018-02-16Merge #12464: Revert "[tests] bind functional test nodes to 127.0.0.1"MarcoFalke
df47afb600 Revert "[tests] bind functional test nodes to 127.0.0.1" (John Newbery) Pull request description: #12200 was merged without test, and breaks `rpc_bind.py`. (Tested locally by @MarcoFalke and me). This PR backs out the change. Fixes #12462 Tree-SHA512: e92901a0ce05af86486d4f74457953a5502689b03bb2ad9a94f6fd1664385fdda8aa351e601e27ee6580227ea9adb4d7d7fbdc381e69af6b998d9c6f6d358751
2018-02-16Revert "[tests] bind functional test nodes to 127.0.0.1"John Newbery
This reverts commit 65682da7e57af544abb46a7d8a7f4fdca0c73f56.
2018-02-16test: Fix bip68 sequence test to reflect updated rpc error messageBen Woosley
The message changed in #12356
2018-02-16scripted-diff: validateaddress to getaddressinfo in testsAndrew Chow
Change all instances of validateaddress to getaddressinfo since it seems that no test actually uses validateaddress for actually validating addresses. -BEGIN VERIFY SCRIPT- find ./test/functional -path '*py' -not -path ./test/functional/wallet_disable.py -not -path ./test/functional/rpc_deprecated.py -not -path ./test/functional/wallet_address_types.py -exec sed -i'' -e 's/validateaddress/getaddressinfo/g' {} \; -END VERIFY SCRIPT-
2018-02-16Create getaddressinfo RPC and deprecate parts of validateaddressAndrew Chow
Moves the parts of validateaddress which require the wallet into getaddressinfo which is part of the wallet RPCs. Mark those parts of validateaddress which require the wallet as deprecated. Validateaddress will call getaddressinfo for the data that both share for right now. Moves IsMine functions to libbitcoin_common and then links libbitcoin_wallet before libbitcoin_common in order to prevent linker errors since IsMine is no longer used in libbitcoin_server.
2018-02-16[rpc] Move DescribeAddressVisitor to rpc/utilJohn Newbery
2018-02-16Merge #12402: [depends] expat 2.2.5, ccache 3.4.1, miniupnpc 2.0.20180203Wladimir J. van der Laan
25409b1 fixme: depends: Add D_DARWIN_C_SOURCE to miniupnpc CFLAGS (fanquake) 3335d45 [depends] latest config.guess and config.sub (fanquake) 41550d6 [depends] miniupnpc 2.0.20180203 (fanquake) 61647a4 [depends] ccache 3.4.1 (fanquake) 5a10859 [depends] expat 2.2.5 (fanquake) Pull request description: miniupnpc changelog: http://miniupnp.free.fr/files/changelog.php?file=miniupnpc-2.0.20180203.tar.gz 2.0.20180203 includes fixes for the recent buffer overflow and segfault issues, see https://github.com/miniupnp/miniupnp/issues/268. expat changelog: https://github.com/libexpat/libexpat/blob/R_2_2_5/expat/Changes 2.2.2 & 2.2.3 included security fixes. ccache changelog: https://ccache.samba.org/releasenotes.html#_ccache_3_4_1 Also includes latest config.guess and config.sub. Tree-SHA512: 5115b6ccf2bc50c62fd16ab2350bdc752eef7db8b1e4fbe35998fe1aac3702baa6c7f5e471ec48f7c614278df20a68ee6a254dde7c3e2d5c6ce2d10257a5aa21
2018-02-16Merge #12447: test: Add missing signal.h headerMarcoFalke
dd7e42cbb4 test: Add missing signal.h header (Wladimir J. van der Laan) Pull request description: util_tests.cpp needs to include the signal.h header on FreeBSD. Reported by denis2342 on IRC. Tree-SHA512: 0b946fc2770ca6043087f4fe22be96848d46efe44e3d4d45c5ee663e0f95b0e2e6145f4ade577a6257d0c0c4cfadf324111799e78b9e4e4be4da8a90f68e349f