Commit graph

16330 commits

Author SHA1 Message Date
Wladimir J. van der Laan
d59b8d6aa1
Merge #11880: Stop special-casing phashBlock handling in validation for TBV
9c5a4a6ed Stop special-casing phashBlock handling in validation for TBV (Matt Corallo)

Pull request description:

  There is no reason to do this, really, we already have "ignore PoW" flags. Motivated by https://github.com/bitcoin/bitcoin/pull/11739#discussion_r155841721

Tree-SHA512: 37cb1ae5b11c9e8ed7a679bb07ad3b119a2a014744b26d197d67ba21beb19fe6815271df935e40f7c7bd5f2e4d7ae4dad7bd4d00fa230a8d789f37e9de31a769
2018-03-05 20:09:55 +01:00
Wladimir J. van der Laan
c8ea91aa1d
Merge #12501: [qt] Improved "custom fee" explanation in tooltip
0bc095efd [qt] Improved "custom fee" explanation in tooltip (Randolf Richardson)

Pull request description:

  Thanks to @dooglus for asking about this tooltip in Issue 12500.
  Reference:  https://www.github.com/bitcoin/bitcoin/issues/12500

  I would also appreciate it if someone can confirm that 1 kilobyte in this field indeed represents 1,000 bytes rather than 1,024 bytes (if it's supposed to be 1,024, then I'll gladly make the necessary changes to reflect this).

Tree-SHA512: da2fe0128411b5ef6f0a26382a80601efcf823c3f3591bdd83a7fe7e25777728e7eb89e2e8b175b991566e63838aca12d204792f981031b86e7b2ba28ca50021
2018-03-05 20:04:26 +01:00
fanquake
2b1f794574 [Depends] Fix Qt build with Xcode 9.2 2018-03-05 13:51:14 -05:00
Wladimir J. van der Laan
47a7666dbe
Merge #11889: Drop extra script variable in ProduceSignature
9360f5032 Drop extra script variable in ProduceSignature (Russell Yanofsky)

Pull request description:

  Was slightly confusing.

Tree-SHA512: 1d18f92c133772ffc8eb71826c8d778988839a14bcefc50f9c591111b0a5f81ebc12bca0f1ab25d5fdd02d3d50c2325c04cbfcbdcd18a7b80ca112d049c2327d
2018-03-05 19:12:37 +01:00
Wladimir J. van der Laan
7f99964321
Merge #12516: Avoid unintentional unsigned integer wraparounds in tests
2736c9e05 Avoid unintentional unsigned integer wraparounds in tests (practicalswift)

Pull request description:

  Avoid unintentional unsigned integer wraparounds in tests.

  This is a subset of #11535 as suggested by @MarcoFalke :-)

Tree-SHA512: 4f4ee8a08870101a3f7451aefa77ae06aaf44e3c3b2f7555faa2b8a8503f97f34e34dffcf65154278f15767dc9823955f52d1aa7b39930b390e57cdf2b65e0f3
2018-03-05 18:56:40 +01:00
Wladimir J. van der Laan
6645eaf0ab
Merge #12466: depends: Only use D_DARWIN_C_SOURCE when building miniupnpc on darwin
992f56876 depends: Only use D_DARWIN_C_SOURCE when building miniupnpc on darwin (fanquake)

Pull request description:

  Only use D_DARWIN_C_SOURCE when building on darwin, so we don't inadvertently introduce issues elsewhere.

  cc @theuni

Tree-SHA512: e49a8456ba2b9925c06e62c73e139152b6d63cc5a4cee66944e41c863ca9103e98ac81a5718eceb3d0885a677fc53ece34062b02c304a05c3280e094965e856a
2018-03-05 18:51:53 +01:00
fanquake
992f568762 depends: Only use D_DARWIN_C_SOURCE when building miniupnpc on darwin 2018-03-05 12:50:22 -05:00
Wladimir J. van der Laan
d77b4a7bcf
Merge #12527: gitian-build.sh: fix signProg being recognized as two parameters
87c4320df gitian-build.sh: fix signProg being recognized as two parameters (Ken Lee)

Pull request description:

  On current build script, `gpg --detach-sign` will be recognized as two parameters of gsign
  This PR fix it and can build successfully

Tree-SHA512: 32e2f9e8414658ea4145bcbccd9aaa3cdf61ea648ad9328246bad67957e11a8e496afec71cbd888f8d0d49bd7eaed35c971fe2dac43b80ee6e664b90ffd997a3
2018-03-05 18:49:19 +01:00
Wladimir J. van der Laan
cbc1fcf576
Merge #12573: Fix compilation when compiler do not support __builtin_clz*
18307849b Consensus: Fix bug when compiler do not support __builtin_clz* (532479301)

Pull request description:

  #ifdef is not correct since defination is defined to 0 or 1. Should change to #if

Tree-SHA512: ba13a591d28f4d7d6ebaab081be4304c43766a611226f8d2994c8db415dfcf318e82217d26a8c4af290760c68eded9503b39535b0e6e079ded912e6a8fca5b36
2018-03-05 18:38:17 +01:00
Wladimir J. van der Laan
9d49dcf9fa
Merge #12260: [Trivial] link mentioned scripted-diff-commit (developer-doc)
7eb665fc8 [Trivial] link mentioned scripted-diff-commit (Felix Wolfsteller)

Pull request description:

  Make it easier for people who do not operate on a cloned repository to access the example mentioned.

Tree-SHA512: 1c06e551c68cad03e6bd541bf0e0076cdf0b48ef9b8b4e4a61435367c3435e2e4ccb934112e8dc29d3d70217d8834924704aaf839e25d1133312df86848ca1a1
2018-03-05 17:41:49 +01:00
Wladimir J. van der Laan
71f56da384
Merge #12452: docs: clarified systemd installation instructions in init.md for Ubuntu users.
4d14d06fc docs: clarified systemd installation instructions in init.md for Ubuntu users. (DaveFromBinary)

Pull request description:

  Added a note to init.md to clarify the .service copy path for Ubuntu because it differs from the described copy path.

  Also noted which version of Ubuntu switched to systemd for the default system init to clarify when the systemd installation steps should be used instead of the upstart installation steps for Ubuntu users.

Tree-SHA512: 1ac6143a177d0f3782ff641029d71eb1f3b3be0c1482e266154d3ca093251b58a10a5f037d1cc82dbfaeae058df2bb8e904833ccb88b032f1a59a151724f95e2
2018-03-05 17:40:08 +01:00
Wladimir J. van der Laan
21e2670de3
Merge #12434: [doc] dev-notes: Members should be initialized
fa9461473 [doc] dev-notes: Members should be initialized (MarcoFalke)

Pull request description:

  Also, remove mention of threads that were removed long ago.

  Motivation:
  Make it easier to spot bugs such as #11654 and  #12426

Tree-SHA512: 8ca1cb54e830e9368803bd98a8b08c39bf2d46f079094ed7e070b32ae15a6e611ce98d7a614f897803309f4728575e6bc9357fab1157c53d2536417eb8271653
2018-03-05 17:38:59 +01:00
Wladimir J. van der Laan
07d2d2a21c
Merge #12475: qa: Fix python TypeError in script.py
fa41d68a2 qa: Fix python TypeError in script.py (MarcoFalke)

Pull request description:

  `__repr__` returns string, so don't mix it with byte strings.

  This fixes

  ```
  TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'str'

Tree-SHA512: fac06e083f245209bc8a36102217580b0f6186842f4e52a686225111b0b96ff93c301640ff5e7ddef6a5b4f1689071b16a9a8dc80f28e2b060ddee29edd24ec7
2018-03-05 17:32:42 +01:00
MarcoFalke
ce56fdd2e8
Merge #12580: Show a transaction's virtual size in its details dialog
ee041196fc Show a transaction's virtual size in its details dialog. (Chris Moore)

Pull request description:

  #12501 looks like it is going to mention transaction's "virtual size" in the custom fee tooltip, so let's display the virtual size when the user double-clicks a transaction.

Tree-SHA512: c60ae23c9f86edfba086b840519941d8e8ee1be9da5987ffe6dee3255943ea5d215708ce57464f109a1d1c612c4c0eeb11f8f3e203d8a8cfc1f8ec753a8aac27
2018-03-05 10:41:26 -05:00
MarcoFalke
480f42630c
Merge #12543: Fix typos
d918eb7864 Fix typos (practicalswift)

Pull request description:

  Fix typos.

Tree-SHA512: c790e49be6e01c8d70ebd872ef61cc210c1de15c4a1e5a98280169f32dc8a14cd68f4dd1c23afc76758b28ef355ab12ded2ff7504562dc9b69a11839ad3cd7e3
2018-03-05 08:41:25 -05:00
Richard Kiss
5f8cc0df12 Add a test for large tx output scripts with segwit input. 2018-03-04 17:24:43 -08:00
MarcoFalke
6012f1caf7
Merge #12582: Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee
7ba2d57852 Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee (Russell Yanofsky)

Pull request description:

  New global variable was introduced in #11882 and not setting it causes:

  ```
  wallet/test/wallet_tests.cpp(638): error in "ListCoins": check wallet->CreateTransaction({recipient}, wtx, reservekey, fee, changePos, error, dummy) failed
  wallet/test/wallet_tests.cpp(679): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]
  wallet/test/wallet_tests.cpp(686): error in "ListCoins": check available.size() == 2 failed [1 != 2]
  wallet/test/wallet_tests.cpp(705): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]
  ```

  It's possible to reproduce the failure reliably by running:

  ```
  src/test/test_bitcoin --log_level=test_suite --run_test=wallet_tests/ListCoins
  ```
  Failures happen nondeterministically because boost test framework doesn't run tests in a specified order, and tests that run previously can set the global variables and mask the bug.

  This is similar to bugs #12150 and #12424. Example travis failures are:

  https://travis-ci.org/bitcoin/bitcoin/jobs/348296805#L2676
  https://travis-ci.org/bitcoin/bitcoin/jobs/348362560#L2769
  https://travis-ci.org/bitcoin/bitcoin/jobs/348362563#L2824

Tree-SHA512: ca37b554a75c12ac2d534de62bf74eb9e0b29e4399ebf1fa10053a40887e55e9e7135f754a01e5a67499cc8677ae226542146b370b1e83d08bb63d79ff379073
2018-03-03 10:26:55 -05:00
MarcoFalke
ded6a2afa5
Merge #12584: Fix typos and cleanup documentation
a9761cae1c Fix typos and cleanup (Dimitris Apostolou)

Pull request description:

  [ci-skip]

Tree-SHA512: 6d7e02d8fdf6add702bbfe4439ace9c8621b45d21111abc69d85be9120347b06a029bc1885665547c1230ebc41da9d97210f6d1325b7692a4585356969ecb127
2018-03-03 09:24:55 -05:00
Michał Zabielski
6058766de4 Remove deprecated PyZMQ call from Python ZMQ example
PyZMQ 17.0.0 has deprecated and removed zmq.asyncio.install() call
with advice to use asyncio native run-loop instead of zmq specific.

This caused exception when running the contrib/zmq/zmq_sub*.py examples.

This commit simply follows the advice.
2018-03-03 06:05:53 +01:00
Dimitris Apostolou
a9761cae1c
Fix typos and cleanup
[ci-skip]
2018-03-02 23:00:25 +02:00
Russell Yanofsky
7ba2d57852 Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee
New global variables were introduced in #11882 and not setting them causes:

    wallet/test/wallet_tests.cpp(638): error in "ListCoins": check wallet->CreateTransaction({recipient}, wtx, reservekey, fee, changePos, error, dummy) failed
    wallet/test/wallet_tests.cpp(679): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]
    wallet/test/wallet_tests.cpp(686): error in "ListCoins": check available.size() == 2 failed [1 != 2]
    wallet/test/wallet_tests.cpp(705): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]

It's possible to reproduce the failure reliably by running:

    src/test/test_bitcoin --log_level=test_suite --run_test=wallet_tests/ListCoins

Failures happen nondeterministically because boost test framework doesn't run
tests in a specified order, and tests that run previously can set the global
variables and mask the bug.
2018-03-02 14:50:49 -05:00
Chris Moore
ee041196fc Show a transaction's virtual size in its details dialog. 2018-03-01 13:27:13 -08:00
Wladimir J. van der Laan
90a0aed511
Merge #12182: Remove useless string initializations
19ac86e Remove useless string initialization. (Alin Rus)

Pull request description:

Tree-SHA512: 4273dd7e8ed083cc9d05fc70967465e405085b630c000f829648dd44dd0cfe2249f6af1498b02f54b4ca73833130b802488bae8eca0d4d0b803a6f0122b19e8f
2018-03-01 20:51:05 +01:00
Ken Lee
87c4320dfc gitian-build.sh: fix signProg being recognized as two parameters 2018-03-02 03:49:08 +08:00
Randolf Richardson
0bc095efd8 [qt] Improved "custom fee" explanation in tooltip 2018-03-01 19:43:44 +00:00
Wladimir J. van der Laan
a4a5fc7c17
Merge #12546: [docs] Minor improvements to Compatibility Notes
b22c289 [docs] Minor improvements to Compatibility Notes (Randolf Richardson)

Pull request description:

  Progressed from Windows Vista to Windows 7 for OS testing statement.

Tree-SHA512: b8027c3d284d6f7197b434f29fdff9da9b9b1daa2b05cd900eb6d216df4930d9cfa6280e23e9f493aa6bcc874cb32ea377034d64783f535986e8c069acf8319d
2018-03-01 20:30:32 +01:00
Wladimir J. van der Laan
987a80995a
Merge #11882: Disable default fallbackfee on mainnet
3f592b8 [QA] add wallet-rbf test (Jonas Schnelli)
8222e05 Disable wallet fallbackfee by default on mainnet (Jonas Schnelli)

Pull request description:

  Removes the default fallback fee on mainnet (but keeps it on testnet/regtest).

  Transactions using the fallbackfee in case the fallback fee has not been set are getting rejected.

Tree-SHA512: e54d2594b7f954e640cc513a18b0bfbe189f15e15bdeed4fe02b7677f939bca1731fef781b073127ffd4ce08a595fb118259b8826cdaa077ff7d5ae9495810db
2018-03-01 19:01:52 +01:00
Wladimir J. van der Laan
5c2aff8d95
Merge #10387: Eventually connect to NODE_NETWORK_LIMITED peers
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-01 15:31:15 +01:00
Wladimir J. van der Laan
39dcac27a1
Merge #12570: Add test cases for HexStr (std::reverse_iterator and corner cases)
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-01 14:11:01 +01:00
Wladimir J. van der Laan
be263faf87
Merge #12421: [qt] navigate to transaction history page after send
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-01 12:36:38 +01:00
Wladimir J. van der Laan
32987d5aeb
Merge #12549: Make prevector::resize() and other prevector operations much 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 12:13:08 +01:00
Sjors Provoost
e7d9fc5c53
[qt] navigate to transaction history page after send
The transaction will be selected. When sending to multiple
destinations, all will be selected (thanks @promag).
2018-03-01 10:40:36 +01:00
532479301
18307849b4 Consensus: Fix bug when compiler do not support __builtin_clz*
#ifdef is not correct since defination is defined to 0 or 1. Should change to #if
2018-03-01 17:20:27 +08:00
Kosta Zertsekel
ac48861815 Add tests for HexStr std::reverse_iterator cases
Signed-off-by: Kosta Zertsekel <zertsekel@gmail.com>
2018-03-01 07:31:35 +02:00
Kosta Zertsekel
90eac8c1f2 Add tests for HexStr corner cases
Signed-off-by: Kosta Zertsekel <zertsekel@gmail.com>
2018-03-01 07:31:35 +02:00
Luke Dashjr
874e818085 Allow dustrelayfee to be set to zero 2018-02-28 17:37:14 +00:00
Karl-Johan Alm
22b4aae028
[arith_uint256] Avoid unnecessary this-copy using prefix operator 2018-02-28 19:59:19 +09:00
Evan Klitzke
5aad635b78 Use memset() to optimize prevector::resize()
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-27 13:27:51 -08:00
Akio Nakamura
e46be25f0e Reduce redundant code of prevector and speed it up
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-27 11:42:33 -08:00
Evan Klitzke
f0e7aa7020 Add new prevector benchmarks.
This prepares for a series of two additional commits which optimize
prevector performance.
2018-02-27 11:42:06 -08:00
Wladimir J. van der Laan
9e2ed253f5
Merge #12556: [Trivial] fix version typo in getpeerinfo RPC call help
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-27 15:56:35 +01:00
Tamas Blummer
d16bfaab93 fix version typo 2018-02-27 11:43:46 +01:00
murrayn
cfaac2a60f Add build support for 'gprof' profiling. 2018-02-26 20:54:16 -08:00
Randolf Richardson
b22c289ae6 [docs] Minor improvements to Compatibility Notes
Progressed from Windows Vista to Windows 7 for OS testing statement.
2018-02-27 01:42:23 +00:00
practicalswift
d918eb7864 Fix typos 2018-02-26 20:19:29 +01:00
Wladimir J. van der Laan
228b086b9a
Merge #12083: Improve getchaintxstats test coverage
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-26 16:51:20 +01:00
Wladimir J. van der Laan
d3f4dd313e
doc: Add historical release notes for 0.16.0
Tree-SHA512: 4c33c9c85bf31aa7c73b09ba9f2295eec477adc90934e51323ed50228be0dde9341a2d99ccf7adb184060fe2293533436bccfdbdfe5a30efcd61127ebb5359b8
2018-02-26 12:25:01 +01:00
Conor Scott
1dfb4e7d75 [Tests] Check output of parent/child tx list from getrawmempool, getmempooldescendants, getmempoolancestors, and REST interface 2018-02-25 19:02:54 -05:00
Conor Scott
fc44cb108b [RPC] Add list of child transactions to verbose output of getrawmempool 2018-02-25 19:02:44 -05:00
Jonas Schnelli
3f592b81dc
[QA] add wallet-rbf test 2018-02-25 09:38:38 +08:00