Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get Rid of MapLinks #7

Closed
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Apr 13, 2020

  1. Merge bitcoin#18581: ci: Print ccache stats, add pip cache, and cleanups

    73f8303 ci: Add pip cache (Hennadii Stepanov)
    6d48066 ci: Print ccache statistics summary (Hennadii Stepanov)
    a6eea71 ci: Drop unused WINEDEBUG variable (Hennadii Stepanov)
    
    Pull request description:
    
      The Travis [pip cache](https://docs.travis-ci.com/user/caching/#pip-cache) is free and saves a dozen of seconds :)
    
      Here are some excerpts from the Travis logs with `ccache` statistics (I found useful):
    
      2) [Arm64](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507749)
      ```
      ccache version 3.6
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      stats updated                       Fri Apr 10 18:21:06 2020
      stats zeroed                        Fri Apr 10 18:03:04 2020
      cache hit (direct)                   156
      cache hit (preprocessed)             198
      cache miss                           143
      cache hit rate                     71.23 %
      called for link                        8
      cleanups performed                     9
      files in cache                      1255
      cache size                          80.6 MB
      max cache size                     100.0 MB
      ```
      3) [s390x](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507750)
      ```
      ccache version 3.4.1
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      stats zero time                     Fri Apr 10 17:15:35 2020
      cache hit (direct)                   115
      cache hit (preprocessed)             163
      cache miss                            94
      cache hit rate                     74.73 %
      called for link                        6
      cleanups performed                     0
      files in cache                       804
      cache size                         304.8 MB
      max cache size                       5.0 GB
      ```
      4) [Win64](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507751)
      ```
      ccache version 3.4.1
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      stats zero time                     Fri Apr 10 17:38:07 2020
      cache hit (direct)                   147
      cache hit (preprocessed)             199
      cache miss                           138
      cache hit rate                     71.49 %
      called for link                        7
      cleanups performed                     7
      files in cache                      1242
      cache size                          87.0 MB
      max cache size                     100.0 MB
      ```
      5) [CentOS 7](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507752)
      ```
      ccache version 3.7.7
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      stats updated                       Fri Apr 10 17:45:59 2020
      stats zeroed                        Fri Apr 10 17:34:27 2020
      cache hit (direct)                   152
      cache hit (preprocessed)             200
      cache miss                           144
      cache hit rate                     70.97 %
      called for link                        8
      cleanups performed                     4
      files in cache                      1352
      cache size                          86.1 MB
      max cache size                     100.0 MB
      ```
      6) [bionic](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507753)
      ```
      ccache version 3.4.1
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      stats zero time                     Fri Apr 10 17:21:10 2020
      cache hit (direct)                   136
      cache hit (preprocessed)              35
      cache miss                           330
      cache hit rate                     34.13 %
      called for link                        8
      cleanups performed                    18
      files in cache                      1302
      cache size                          83.8 MB
      max cache size                     100.0 MB
      ```
      7) [xenial](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507754)
      ```
      ccache version 3.2.4
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      cache hit (direct)                   161
      cache hit (preprocessed)             174
      cache miss                            95
      called for link                        7
      files in cache                      3411
      cache size                           1.1 GB
      max cache size                       5.0 GB
      ```
      10) [focal](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507757)
      ```
      ccache version 3.7.7
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      stats updated                       Fri Apr 10 17:35:57 2020
      stats zeroed                        Fri Apr 10 17:21:32 2020
      cache hit (direct)                    78
      cache hit (preprocessed)             125
      cache miss                           107
      cache hit rate                     65.48 %
      called for link                      120
      cleanups performed                     0
      files in cache                      6218
      cache size                           1.8 GB
      max cache size                       5.0 GB
      ```
      14) [macOS 10.12](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507761)
      ```
      ccache version 3.4.1
      cache directory                     /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /home/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /etc/ccache.conf
      stats zero time                     Fri Apr 10 17:47:19 2020
      cache hit (direct)                    28
      cache hit (preprocessed)               1
      cache miss                           469
      cache hit rate                      5.82 %
      called for link                        8
      cleanups performed                    17
      files in cache                      1946
      cache size                          82.6 MB
      max cache size                     100.0 MB
      ```
      15) [macOS 10.14 native](https://travis-ci.org/github/bitcoin/bitcoin/jobs/673507762)
      ```
      ccache version 3.7.8
      cache directory                     /Users/travis/build/bitcoin/bitcoin/ci/scratch/.ccache
      primary config                      /Users/travis/build/bitcoin/bitcoin/ci/scratch/.ccache/ccache.conf
      secondary config      (readonly)    /usr/local/Cellar/ccache/3.7.8/etc/ccache.conf
      stats updated                       Fri Apr 10 17:38:44 2020
      stats zeroed                        Fri Apr 10 17:22:36 2020
      cache hit (direct)                   213
      cache hit (preprocessed)             293
      cache miss                           144
      cache hit rate                     77.85 %
      called for link                       11
      called for preprocessing              56
      compile failed                        30
      preprocessor error                    56
      bad compiler arguments                14
      autoconf compile/link                 77
      no input file                         66
      cleanups performed                     0
      files in cache                      1564
      cache size                         284.6 MB
      max cache size                       5.0 GB
      ```
    
    Top commit has no ACKs.
    
    Tree-SHA512: f9f2c6d72680bafc7a982efc04dc37ab9bba77ffd2a4cbbc56bb0e86c5c3501d57aa2f0ebeac0113e9d8daac1ee4eac1eddf74c1172c267b37ee2d9324366c8a
    MarcoFalke committed Apr 13, 2020
    Configuration menu
    Copy the full SHA
    6ef45bc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9c16b17 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1833237 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c988f27 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1e48796 View commit details
    Browse the repository at this point in the history
  6. Add upgradewallet RPC

    achow101 committed Apr 13, 2020
    Configuration menu
    Copy the full SHA
    92263cc View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0d32d66 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18451: test: shift coverage from getunconfirmedbalance …

    …to getbalances
    
    0306d78 Use getbalances in wallet_address_types tests (Jon Atack)
    7eacdc5 Shift coverage from getunconfirmedbalance to getbalances in wallet_abandonconflict tests (Jon Atack)
    3e6f737 Improve getbalances coverage in wallet_balance tests (Jon Atack)
    
    Pull request description:
    
      <strike>This PR updates several tests and then removes the `getunconfirmedbalance` RPC which was deprecated in facfb41 a year ago.
    
      Next steps: remove the deprecated `getwalletinfo` fields and the `getbalance` RPC in follow-ups, if there seems to be consensus on those removals.</strike>
    
      Update:
    
      `getunconfirmedbalance` RPC was deprecated in facfb41 a year ago, but following the review comments below, this PR now only updates the test coverage to use `getbalances` while still leaving basic coverage for `getunconfirmedbalance` in wallet_balance.py.
    
      That said, I've seen 3 regular contributors confused in the past 10 days by "DEPRECATED" warnings in the code that are not following the deprecation policy in [JSON-RPC-interface.md#versioning](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#versioning).
    
      ISTM these warnings should either be removed, or the calls deprecated (`-deprecatedrpc`), or the policy updated to describe these warnings as a pre-deprecation practice.
    
    ACKs for top commit:
      jnewbery:
        utACK 0306d78
    
    Tree-SHA512: 692e43e9bed5afa97d905740666e365f0b64e559e1c75a6a398236d9e943894e3477947fc11324f420a6feaffa0c0c1532aa983c50090ca39d06551399e6ddd1
    MarcoFalke committed Apr 13, 2020
    Configuration menu
    Copy the full SHA
    6110ae8 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2020

  1. test: Add various low-level p2p tests

    MarcoFalke committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    fa4c29b View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#17954: wallet: Remove calls to Chain::Lock methods

    4897340 wallet: Avoid use of Chain::Lock in CWallet::GetKeyBirthTimes (Russell Yanofsky)
    e958ff9 wallet: Avoid use of Chain::Lock in CWallet::CreateTransaction (Russell Yanofsky)
    c0d07dc wallet: Avoid use of Chain::Lock in CWallet::ScanForWalletTransactions (Russell Yanofsky)
    1be8ff2 wallet: Avoid use of Chain::Lock in rescanblockchain (Russell Yanofsky)
    3cb85ac wallet refactor: Avoid use of Chain::Lock in CWallet::RescanFromTime (Russell Yanofsky)
    f7ba881 wallet: Avoid use of Chain::Lock in listsinceblock (Russell Yanofsky)
    bc96a9b wallet: Avoid use of Chain::Lock in importmulti (Russell Yanofsky)
    25a9fcf wallet: Avoid use of Chain::Lock in importwallet and dumpwallet (Russell Yanofsky)
    c1694ce wallet: Avoid use of Chain::Lock in importprunedfunds (Russell Yanofsky)
    ade5f87 wallet refactor: Avoid use of Chain::Lock in qt wallettests (Russell Yanofsky)
    f6da44c wallet: Avoid use of Chain::Lock in tryGetTxStatus and tryGetBalances (Russell Yanofsky)
    bf30cd4 refactor: Add interfaces::FoundBlock class to selectively return block data (Russell Yanofsky)
    
    Pull request description:
    
      This is a set of changes updating wallet code to make fewer calls to `Chain::Lock` methods, so the `Chain::Lock` class will be easier to remove in bitcoin#16426 with fewer code changes and small changes to behavior.
    
    ACKs for top commit:
      MarcoFalke:
        re-ACK 4897340, only change is fixing bug 📀
      fjahr:
        re-ACK 4897340, reviewed rebase and changes since last review, built and ran tests locally
      ariard:
        Coce Review ACK 4897340, only changes are one suggested by last review on more accurate variable naming, human-readable output, args comments in `findCommonAncestor`
    
    Tree-SHA512: cfd2f559f976b6faaa032794c40c9659191d5597b013abcb6c7968d36b2abb2b14d4e596f8ed8b9a077e96522365261299a241a939b3111eaf729ba0c3ef519b
    MarcoFalke committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    4702cad View commit details
    Browse the repository at this point in the history
  3. wallet: Prefer full destination groups in coin selection

    When a wallet uses avoid_reuse and has a large number of outputs in
    a single destination, it groups these outputs in OutputGroups that
    are no larger than OUTPUT_GROUP_MAX_ENTRIES. The goal is to spend
    as many outputs as possible from the destination while not breaking
    consensus due to a huge number of inputs and also not surprise the
    use with high fees. If there are n outputs in a destination and
    n > OUTPUT_GROUP_MAX_ENTRIES then this results in one or many groups
    of size OUTPUT_GROUP_MAX_ENTRIES and possibly one group of size
    < OUTPUT_GROUP_MAX_ENTRIES.
    
    Prior to this commit the coin selection in the case where
    n > OUTPUT_GROUP_MAX_ENTRIES was skewed towards the one group of
    size < OUTPUT_GROUP_MAX_ENTRIES if it exists and the amount to be
    spent by the transaction is smaller than the aggregate of those
    of the group size < OUTPUT_GROUP_MAX_ENTRIES. The reason is that
    the coin selection decides between the different groups based on
    fees and mostly the smaller group will cause smaller fees.
    
    The behavior that users of the avoid_reuse flag seek is that the
    full groups of size OUTPUT_GROUP_MAX_ENTRIES get used first. This
    commit implements this by pretending that the small group has
    a large number of ancestors (one smallet than the maximum allowed
    for this wallet). This dumps the small group to the bottom of the
    list of priorities in the coin selection algorithm.
    fjahr committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    1abbdac View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a2324e4 View commit details
    Browse the repository at this point in the history
  5. appveyor: Disable functional tests for now

    Also add a draft for a Windows build on cirrus. The draft can be
    finished later.
    MarcoFalke committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    fa50d11 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3867727 View commit details
    Browse the repository at this point in the history
  7. doc: Fix macos comments in release-notes

    MarcoFalke committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    fa6cb00 View commit details
    Browse the repository at this point in the history
  8. test: add more inactive filter tests to p2p_filter.py

    check the following expected behaviors if no filter is set:
    -> filtered block requests are ignored by the node
    -> sending a 'filteradd' message is treated as misbehavior
       (i.e. the peer's banscore increases by 100)
    
    also fixes a bug in the on_inv() callback method, which
    directly modified the type from BLOCK to FILTERED_BLOCK
    in the received 'inv' message rather than just for the reply
    
    Co-authored-by: MarcoFalke <[email protected]>
    theStack and MarcoFalke committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    a9ecbdf View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#18631: appveyor: Disable functional tests for now

    fa50d11 appveyor: Disable functional tests for now (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      jonasschnelli:
        ACK fa50d11
    
    Tree-SHA512: 86ea9bc0ff47dc309120748627cd83b19aa61fb1db3cca5e04a9e0d56f34c248cd2bec20b037c663ab0f21f7ee6cd0ff8266a36fe79c773de95e5032eb48b118
    MarcoFalke committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    75fcfda View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2020

  1. appveyor: Remove clcache

    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    fac0c8d View commit details
    Browse the repository at this point in the history
  2. test: Create cached blocks not in the future

    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    fa32097 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18632: doc: Fix macos comments in release-notes

    fa6cb00 doc: Fix macos comments in release-notes (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      hebasto:
        ACK fa6cb00.
      fanquake:
        ACK fa6cb00 - this has also been done in the release notes in the wiki.
    
    Tree-SHA512: ce325a9a32e28923ad34bdc7c1c69e9d14636a18d05604158e99f80683686bd2ba5550e84f85479336658b84c40dbe2940840e47d69c10ae3d41180dad49c8f3
    fanquake committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    4d793bc View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18621: script: Disallow silent bool -> CScript conversion

    88884ee script: Disallow silent bool -> CScript conversion (MarcoFalke)
    
    Pull request description:
    
      Makes nonsensical stuff like `ScriptToAsmStr(false,false);` a compile failure
    
    ACKs for top commit:
      practicalswift:
        ACK 88884ee
      laanwj:
        ACK 88884ee
      promag:
        ACK 88884ee.
      instagibbs:
        utACK 88884ee
      jb55:
        ACK 88884ee
      ryanofsky:
        Code review ACK 88884ee
    
    Tree-SHA512: 419d79c03b44a979c061b0540662928251ad68d53e65996bf370bb55ed1526ac7a22710cb7536c9954db5fec07bc312884bf8828f97a4ba180a5b07969a17f54
    fanquake committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    903be99 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#17929: build: add linker optimisation flags to gitian &…

    … guix (Linux)
    
    f2b5b0a build: add linker optimization flags to guix (fanquake)
    b8b050a build: add linker optimization flags to gitian descriptors (fanquake)
    
    Pull request description:
    
      This PR adds `-Wl,O2` to our gitian and guix LDFLAGS. This makes the linker perform certain optimisations (and is different from LTO).
    
      Any -O argument will enable optimizations in GNU ld. We can use -O2 here, as this matches our compile flags. Note that this would also enable additional optimizations if using the lld or gold linkers, when compared to -O0.
    
      A nice writeup + diagrams of some of these optimizations is  available here: http://lwn.net/Articles/192624/.
    
      #### master
      ```bash
      # bitcoind
      Histogram for `.gnu.hash' bucket list length (total of 3 buckets)
       Length  Number     % of total  Coverage
            0  1          ( 33.3%)       0.0%
            1  0          (  0.0%)       0.0%
            2  1          ( 33.3%)      40.0%
            3  1          ( 33.3%)     100.0%
      ```
      ```bash
      # bitcoin-qt
      Histogram for `.gnu.hash' bucket list length (total of 3 buckets)
       Length  Number     % of total  Coverage
            0  0          (  0.0%)       0.0%
            1  1          ( 33.3%)      10.0%
            2  0          (  0.0%)      10.0%
            3  0          (  0.0%)      10.0%
            4  1          ( 33.3%)      50.0%
            5  1          ( 33.3%)     100.0%
      ```
    
      #### this PR:
      ```bash
      # bitcoind
      Histogram for `.gnu.hash' bucket list length (total of 8 buckets)
       Length  Number     % of total  Coverage
            0  3          ( 37.5%)       0.0%
            1  5          ( 62.5%)     100.0%
      ```
      ```bash
      # bitcoin-qt
      Histogram for `.gnu.hash' bucket list length (total of 19 buckets)
       Length  Number     % of total  Coverage
            0  9          ( 47.4%)       0.0%
            1  10         ( 52.6%)     100.0%
      ```
    
      #### GNU ld -O
    
      > If level is a numeric values greater than zero ld optimizes the output. This might take significantly longer and therefore probably should only be enabled for the final binary. At the moment this option only affects ELF shared library generation. Future releases of the linker may make more use of this option. Also currently there is no difference in the linker’s behaviour for different non-zero values of this option. Again this may change with future releases.
    
      #### lld -O
    
      > Optimize output file size
    
    ACKs for top commit:
      dongcarl:
        ACK f2b5b0a
      laanwj:
        ACK f2b5b0a
    
    Tree-SHA512: e53f3a4338317dbec65d3a93b57b5a6204aabdf9ac82d99447847a3c8627facc53c58c2cf947376f13edd979fc8129a80f18d9ebeccd191a576c83f1dad5c513
    fanquake committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    ae486b2 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#18624: Added my fingerprint Stephan Oeste (Emzy)

    c47adf8 Added my fingerprint Stephan Oeste (Emzy) (Stephan Oeste)
    
    Pull request description:
    
      By request from laanwj added my PGP fingerprint.
      See: bitcoin-core/gitian.sigs#1220 (comment)
    
    ACKs for top commit:
      Sjors:
        ACK c47adf8. Fingerprint matches Twitter profile: https://twitter.com/emzy (haven't verified it in any other way)
      fanquake:
        ACK c47adf8
    
    Tree-SHA512: 3e39ae88f507a12f11fb2d5c779eba79ee2daeddecd0dc3f1fddfa29ce963d0e9af3fa5a10357157812597c10205a6beae31cc70af9471a782da23d8753b7cbd
    fanquake committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    5447d57 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    1b04302 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18619: gitian: add jonatack gpg key fingerprint

    905e2e8 gitian: add jonatack gpg key fingerprint (Jon Atack)
    
    Pull request description:
    
      per request bitcoin-core/gitian.sigs#1221 (comment)
    
    ACKs for top commit:
      laanwj:
        ACK 905e2e8
      fanquake:
        ACK 905e2e8
    
    Tree-SHA512: bddd734f13c53859280db2fa94b47cbb2a8b3f17ed6a6fdda2bf04f7e201e310ae24930e8f4be2f8b65a949659a9d3369704ed70031da9653a66a513fe597b67
    fanquake committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    e831f18 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a95af77 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#18646: gui: use PACKAGE_NAME in exception message

    1b04302 gui: use PACKAGE_NAME in exception message (fanquake)
    
    Pull request description:
    
      Should address [this comment](bitcoin#18643 (comment)).
    
      ![qt_exception](https://user-images.githubusercontent.com/863730/79310875-348bf780-7f2f-11ea-9970-ba1ac28c7849.png)
    
      Can be triggered with a diff like:
      ```diff
      diff --git a/src/qt/modaloverlay.cpp b/src/qt/modaloverlay.cpp
      index 6243a71c7..e5d499012 100644
      --- a/src/qt/modaloverlay.cpp
      +++ b/src/qt/modaloverlay.cpp
      @@ -6,6 +6,7 @@
       #include <qt/forms/ui_modaloverlay.h>
    
       #include <qt/guiutil.h>
      +#include <util/check.h>
    
       #include <chainparams.h>
    
      @@ -179,6 +180,7 @@ void ModalOverlay::showHide(bool hide, bool userRequested)
    
       void ModalOverlay::closeClicked()
       {
      +    CHECK_NONFATAL(false);
           showHide(true);
           userClosed = true;
       }
      ```
      and clicking close in the modal.
      ```bash
      EXCEPTION: 18NonFatalCheckError
      qt/modaloverlay.cpp:183 (closeClicked)
      Internal bug detected: 'false'
      You may report this issue here: https://github.com/bitcoin/bitcoin/issues
      ```
    
    ACKs for top commit:
      jonasschnelli:
        Thanks. utACK 1b04302
      emilengler:
        utACK 1b04302
      hebasto:
        ACK 1b04302.
    
    Tree-SHA512: 20118269882fbbb5602dafe8101c6ca6c92d7b97efc1ef280a68a83c6a58340018d05f837ecabefee618dc11a62e82828d5ecde4350a71a4c2fd24257b90d45c
    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    18f11fb View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#18628: test: Add various low-level p2p tests

    fa4c29b test: Add various low-level p2p tests (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      jonatack:
        ACK fa4c29b
    
    Tree-SHA512: 842821b97359d4747c763398f7013415858c18a300cd882887bc812d039b5cbb67b9aa6f68434575dbc3c52f7eb8c43d1b293a59555a7242c0ca615cf44dc0aa
    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    20c0e2e View commit details
    Browse the repository at this point in the history
  12. scripted-diff: test: replace command with msgtype

    This is the functional test framework pendant for
    7777e36, which renamed "strCommand" with
    "msg_type" in the network processing code.
    
    -BEGIN VERIFY SCRIPT-
     # Rename in test framework
     sed -i 's/command/msgtype/g' ./test/functional/test_framework/messages.py ./test/functional/test_framework/mininode.py
     # Rename in individual tests
     sed -i 's/command/msgtype/g' ./test/functional/p2p_invalid_messages.py ./test/functional/p2p_leak.py
    -END VERIFY SCRIPT-
    theStack committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    9df32e8 View commit details
    Browse the repository at this point in the history
  13. script: Remove undocumented and unused operator+

    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    ccccd51 View commit details
    Browse the repository at this point in the history
  14. test: add coverage for bitcoin-cli -rpcwait

    in interface_bitcoin_cli.py
    jonatack committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    727b67e View commit details
    Browse the repository at this point in the history
  15. test: verify bitcoin-cli -version with node stopped

    in interface_bitcoin_cli.py and improve/harmonize the test logging.
    jonatack committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    becc8b9 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    bb13f46 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    c28c7b8 View commit details
    Browse the repository at this point in the history
  18. test: Avoid accessing free'd memory in validation_chainstatemanager_t…

    …ests
    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    fa176e2 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    808ef36 View commit details
    Browse the repository at this point in the history
  20. Merge bitcoin#18615: test: Avoid accessing free'd memory in validatio…

    …n_chainstatemanager_tests
    
    fa176e2 test: Avoid accessing free'd memory in validation_chainstatemanager_tests (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      ryanofsky:
        Code review ACK fa176e2, though if you have to update this again, would suggest separating txindex test cleanup and the chainstatemanager test fix in separate commits, or identifying which part of the change is the bugfix fix in the commit description. Also to clean up the txindex test it might make sense to call SyncWithValidationInterfaceQueue in the test destructor to prevent nondeterminism in other tests
    
    Tree-SHA512: 34c5dca283a7c205cd42b6aa59f00a71fd1bd980bc3d6640a18b280be11470bfabb2fd8c93fadde6fb8e084bcf96c80ec3aa72bbccccfde8a8260d173eaad08f
    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    4bd6bc5 View commit details
    Browse the repository at this point in the history
  21. node: Add args alias for gArgs global

    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    fad4fa7 View commit details
    Browse the repository at this point in the history
  22. test: Add optional extra_args to testing setup

    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    fa0cbd4 View commit details
    Browse the repository at this point in the history
  23. fuzz: Disable debug log file

    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    fa69f88 View commit details
    Browse the repository at this point in the history
  24. Merge bitcoin#18640: appveyor: Remove clcache

    fac0c8d appveyor: Remove clcache (MarcoFalke)
    
    Pull request description:
    
      The build time without cache seems to be 47 minutes and with cache 46 minutes. Maybe we can save more time by not installing clcache.
    
    Top commit has no ACKs.
    
    Tree-SHA512: ce503641a465f5e49deb7aa6b566aaab5e567148c001704451891c49ba7ade3219ca788bc0d8e55565febb9aadd579e26894f6c03b99755eb8b5d1498acf4dc9
    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    6db8ef2 View commit details
    Browse the repository at this point in the history
  25. Merge bitcoin#18645: [doc] Update thread information in developer docs

    808ef36 [doc] Update thread information in developer docs (John Newbery)
    
    Pull request description:
    
      - DumpAddresses thread was removed in bitcoin#5964
      - Shutdown thread was removed in bitcoin#5679
      - Add new threads (scheduler, RPC worker, indexer, tor control)
      - Small changes to documentation of other threads
    
    ACKs for top commit:
      MarcoFalke:
        ACK 808ef36
      hebasto:
        ACK 808ef36.
    
    Tree-SHA512: 85b6ace7bcc4dee030c63461bef1ded1a9581d4fa249c59f6fcd5d33d89c4357a6b8b35888ce0960f276d397b5e38a21e6c5d4b7b79544827a28c950e097b36d
    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    e84a5f0 View commit details
    Browse the repository at this point in the history
  26. test: Verify findCommonAncestor always initializes outputs

    Also add code comment to clarify surprising code noted by practicalswift
    bitcoin#18657 (comment)
    ryanofsky committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    9986608 View commit details
    Browse the repository at this point in the history
  27. Merge bitcoin#18571: fuzz: Disable debug log file

    fa69f88 fuzz: Disable debug log file (MarcoFalke)
    fa0cbd4 test: Add optional extra_args to testing setup (MarcoFalke)
    fad4fa7 node: Add args alias for gArgs global (MarcoFalke)
    
    Pull request description:
    
      There are several issues with writing to a debug log file when fuzzing:
    
      * Disk access is slow, but fuzzing should be fast (Note: I could not verify this claim with data)
      * Disks have a limited size and will eventually run out of space, but fuzzing should run continuous
    
      Fix both issues by disabling the debug log file for fuzz tests
    
    ACKs for top commit:
      practicalswift:
        ACK fa69f88 -- patch looks correct
    
    Tree-SHA512: f61beb6c94a9ab664deb191685fcad601e228b77bb1c43db6ec40616ae393c9dd35c51474f1b0759ac0bc29b5ca8456a329906a3695bd0f18fa4372210c8b54a
    MarcoFalke committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    5447097 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2020

  1. tools: Add unused argsman to bench_bitcoin

    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    fa2bc41 View commit details
    Browse the repository at this point in the history
  2. scripted-diff: Replace gArgs with local argsman in bench

    -BEGIN VERIFY SCRIPT-
    sed -i -e 's/gArgs/argsman/g' src/bench/bench_bitcoin.cpp
    -END VERIFY SCRIPT-
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    fa46aeb View commit details
    Browse the repository at this point in the history
  3. bench: Remove unused argsman.ClearArgs

    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    fae00a7 View commit details
    Browse the repository at this point in the history
  4. rpc: Document all aliases for second arg of getblock

    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    fa5b1f0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fa168d7 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#18401: Refactor: Initialize PrecomputedTransactionData …

    …in CheckInputScripts
    
    f63dec1 [REFACTOR] Initialize PrecomputedTransactionData in CheckInputScripts (Pieter Wuille)
    
    Pull request description:
    
      This is a single commit taken from the Schnorr/Taproot PR bitcoin#17977.
    
      Add a default constructor to `PrecomputedTransactionData`, which doesn't initialize the struct's members. Instead they're initialized inside the `CheckInputScripts()` function. This allows a later commit to add the spent UTXOs to that structure. The spent UTXOs are required for the schnorr signature hash, since it commits to the scriptPubKeys. See https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#common-signature-message for details.
    
      By itself, this isn't really an improvement to the code, but I think it makes sense to separate out the refactor/moveonly commits from PR bitcoin#17977 so that PR is only the logical changes needed for Schnorr/Taproot.
    
    ACKs for top commit:
      jonatack:
        Re-ACK f63dec1  `git diff 851908d f63dec1` shows no change since last ACK.
      sipa:
        utACK f63dec1
      theStack:
        re-ACK f63dec1
      fjahr:
        Re-ACK f63dec1
      ariard:
        Code Review ACK f63dec1
    
    Tree-SHA512: ecf9154077824ae4c274b4341e985797f3648c0cb0c31cb25ce382163b923a3acbc7048683720be4ae3663501801129cd0f48c441a36f049cc304ebe9f30994e
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    e16718a View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#18650: qt: Make bitcoin.ico non-executable

    a95af77 qt: Make bitcoin.ico non-executable (practicalswift)
    
    Pull request description:
    
      Make `bitcoin.ico` non-executable.
    
      No need to execute icons and having +x bits laying around breaks `find … -executable` :)
    
      Before this patch:
    
      ```sh
      $ find $(git ls-files -- ":(exclude)*.sh" ":(exclude)*.py") -executable
      ci/retry/retry
      contrib/macdeploy/macdeployqtplus
      depends/config.guess
      depends/config.sub
      src/qt/res/icons/bitcoin.ico
      src/secp256k1/src/modules/recovery/main_impl.h
      ```
    
      After this patch:
    
      ```sh
      $ find $(git ls-files -- ":(exclude)*.sh" ":(exclude)*.py") -executable
      ci/retry/retry
      contrib/macdeploy/macdeployqtplus
      depends/config.guess
      depends/config.sub
      src/secp256k1/src/modules/recovery/main_impl.h
      ```
    
      FWIW:
    
      ```
      $ file $(find $(git ls-files -- ":(exclude)*.sh" ":(exclude)*.py") -executable)
      ci/retry/retry:                                 Bourne-Again shell script, UTF-8 Unicode text executable
      contrib/macdeploy/macdeployqtplus:              Python script, ASCII text executable
      depends/config.guess:                           POSIX shell script, ASCII text executable
      depends/config.sub:                             POSIX shell script, ASCII text executable
      src/qt/res/icons/bitcoin.ico:                   MS Windows icon resource - 10 icons, 48x48, 16 colors, 4 bits/pixel, 32x32, 16 colors, 4 bits/pixel
      src/secp256k1/src/modules/recovery/main_impl.h: C source, ASCII text
      ```
    
    ACKs for top commit:
      MarcoFalke:
        ACK a95af77 gitian build finished, so it doesn't look like the icon used in Windows resource files needs to be executable. Though, I didn't read the documentation.
      jonatack:
        ACK a95af77
    
    Tree-SHA512: ecf9154077824ae4c274b4341e985797f3648c0cb0c31cb25ce382163b923a3acbc7048683720be4ae3663501801129cd0f48c441a36f049cc304ebe9f30994e
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    79b0459 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18653: test: add coverage for bitcoin-cli -rpcwait

    c28c7b8 test: add -getinfo "unlocked_until" and "headers" coverage (Jon Atack)
    bb13f46 test: verify cli.getwalletinfo in wallet section (Jon Atack)
    becc8b9 test: verify bitcoin-cli -version with node stopped (Jon Atack)
    727b67e test: add coverage for bitcoin-cli -rpcwait (Jon Atack)
    
    Pull request description:
    
      and other coverage improvements in `interface-bitcoin_cli.py`
    
    ACKs for top commit:
      kristapsk:
        ACK c28c7b8
    
    Tree-SHA512: c3ac73b673872cba05496e3f9debc2c4dfa4291c6426bf0be9bb0242035613b25c0aecebb39abb14a1d87b13e1d28a5f34b21d4b77d93de56c679a8be92bbe82
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    661e8df View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    0c63187 View commit details
    Browse the repository at this point in the history
  10. log: Use Join() helper when listing log categories

    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    faec063 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#18660: test: Verify findCommonAncestor always initializ…

    …es outputs
    
    9986608 test: Verify findCommonAncestor always initializes outputs (Russell Yanofsky)
    
    Pull request description:
    
      Also add code comment to clarify surprising code noted by practicalswift
      bitcoin#18657 (comment)
    
    ACKs for top commit:
      MarcoFalke:
        ACK 9986608
      jonatack:
        ACK 9986608 modulo @practicalswift's bitcoin#18660 (comment)
    
    Tree-SHA512: d79c910291d68b770ef4b09564d274c0e19a6acf43ef1a6691dc889e3944ab3462b86056eeb794fd0c6f2464cfad6cc00711a833f84b32079c69ef9b3c8da24c
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    f4c0ad4 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    faf989f View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#17669: tests: have coins simulation test also use CCoin…

    …sViewDB
    
    bee88b8 tests: have coins simulation test also use CCoinsViewDB (James O'Beirne)
    
    Pull request description:
    
      Before this change, the coins simulation test uses a base view of type
      CCoinsViewTest, which has no relevance outside of the unittest suite. Might as
      well reuse this testcase with a more realistic configuration that has
      CCoinsViewDB (i.e. in-memory leveldb) at the bottom of the view structure.
    
      This adds explicit use of CCoinsViewDB in the unittest suite.
    
      #### Before change
      ```
      ./src/test/test_bitcoin --run_test=coins_tests --catch_system_errors=no  21.99s user 0.04s system 99% cpu 22.057 total
      ```
    
      #### After change
      ```
      ./src/test/test_bitcoin --run_test=coins_tests --catch_system_errors=no  78.80s user 0.04s system 100% cpu 1:18.82 total
      ```
    
    ACKs for top commit:
      ryanofsky:
        Code review ACK bee88b8
    
    Tree-SHA512: 75296b2bcbae2f46e780489aafb032592544a15c384d569d016005692fe79fe60d7f05857cf25cc7b0f9ab1c53b47886a6c71cca074a03fb9afec30e1f376858
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    d8dfcea View commit details
    Browse the repository at this point in the history
  14. scripted-diff: Sort test includes

    -BEGIN VERIFY SCRIPT-
     # Mark all lines with #includes
     sed -i --regexp-extended -e 's/(#include <.*>)/\1 /g' $(git grep -l '#include' ./src/bench/ ./src/test ./src/wallet/test/)
     # Sort all marked lines
     git diff -U0 | ./contrib/devtools/clang-format-diff.py -p1 -i -v
    -END VERIFY SCRIPT-
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    fac5c37 View commit details
    Browse the repository at this point in the history
  15. scripted-diff: Bump copyright headers

    -BEGIN VERIFY SCRIPT-
    ./contrib/devtools/copyright_header.py update ./
    -END VERIFY SCRIPT-
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    fa488f1 View commit details
    Browse the repository at this point in the history
  16. [tests] Don't initialize PrecomputedTransactionData in txvalidationca…

    …che tests
    
    PrecomputedTransactionData is initialized inside CheckInputScripts(). No need
    to pre-initialize it before calling into CheckInputScripts().
    jnewbery committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    3718ae2 View commit details
    Browse the repository at this point in the history
  17. Merge bitcoin#18667: ci: Limit cache size regardless of NO_DEPENDS

    0c63187 ci: Limit cache size regardless of NO_DEPENDS (Hennadii Stepanov)
    
    Pull request description:
    
      Close bitcoin#18666.
    
    ACKs for top commit:
      MarcoFalke:
        ACK 0c63187 . Depends has ccache disabled anyway and is cached regardless of whether ccache is there or not, see bitcoin#17248
    
    Tree-SHA512: b1bf98be0f844b4704abd177841b014f3900be8160496f0d12596310db607b4f544547e8c3cbfcf17c086a78afd251653363f3dd467b769ac0062bc19adc8144
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    447f867 View commit details
    Browse the repository at this point in the history
  18. Merge bitcoin#18598: gitian: Add missing automake package to gitian-w…

    …in-signer.yml
    
    e44aeef gitian: Add missing automake package to gitian-win-signer.yml (Andrew Chow)
    
    Pull request description:
    
      automake is needed to build osslsigncode otherwise autogen.sh fails with the docker virtualization method.
    
    ACKs for top commit:
      hebasto:
        ACK e44aeef, for `osslsigncode-1.7.1` we did not run `autogen.sh` in the past.
      fanquake:
        ACK e44aeef
      jonatack:
        ACK e44aeef
    
    Tree-SHA512: a0e615c1b099ee1c469ce41f886f2ece6746234a5a800743a4e8be671e4114fd30e1c35bc0ddcb75778409564129d0fde7ac4e3d70b0f7691f97f729f34c8e0c
    laanwj committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    8f24979 View commit details
    Browse the repository at this point in the history
  19. Merge bitcoin#18662: test: Replace gArgs with local argsman in bench

    faf989f util: Document why ArgsManager (con/de)structor is not inline (MarcoFalke)
    fae00a7 bench: Remove unused argsman.ClearArgs (MarcoFalke)
    fa46aeb scripted-diff: Replace gArgs with local argsman in bench (MarcoFalke)
    fa2bc41 tools: Add unused argsman to bench_bitcoin (MarcoFalke)
    
    Pull request description:
    
      All utilities use the same gArgs global that the node uses. This is generally fine and does not lead to issues unless a bench test is going to spin up a NodeContext via the TestingSetup. In that case the two uses of gArgs conflict and currently it needs to be cleared:
    
      https://github.com/bitcoin/bitcoin/blob/544709763e1f45148d1926831e07ff03487673ee/src/bench/bench_bitcoin.cpp#L76
    
      One solution would be to do nothing, because the current code works with that workaround. Another solution would be to not use the same global in all binaries.
    
    ACKs for top commit:
      promag:
        ACK faf989f.
      ryanofsky:
        Code review ACK faf989f. Just new commit added restoring forward declaration
    
    Tree-SHA512: 8ee4b28eee294d41c002f801fa844b0c23c919a3061f5109638701db0947b3b0ea28caa7311ae5f126fc660648bbaa0890853e6b06bdc5868692f52ba8c05f66
    MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    969ee85 View commit details
    Browse the repository at this point in the history
  20. refactor: Remove unused methods CBloomFilter::reset()/clear()

    Co-authored-by: MarcoFalke <[email protected]>
    theStack and MarcoFalke committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    69ffddc View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    fa60afc View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2020

  1. Configuration menu
    Copy the full SHA
    bda62e8 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18262: bnb: exit selection when best_waste is 0

    9b5950d bnb: exit selection when best_waste is 0 (Andrew Chow)
    
    Pull request description:
    
      If we find a solution which has no waste, just use that. This solution
      is what we would consider to be optimal, and other solutions we find
      would have to also have 0 waste, so they are equivalent to the first
      one with 0 waste. Thus we can optimize by just choosing the first one
      with 0 waste.
    
      Closes bitcoin#18257
    
    ACKs for top commit:
      instagibbs:
        utACK bitcoin@9b5950d
      meshcollider:
        utACK 9b5950d
    
    Tree-SHA512: 59565ff4a3d8281e7bc0ce87065a34c8d8bf8a95f628ba96b4fe89f1274979165aea6312e5f1f21b418c8c484aafc5166d22d9eff9d127a8192498625d58c557
    meshcollider committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    0856c15 View commit details
    Browse the repository at this point in the history
  3. test: Move boost/stdlib includes last

    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    fa4632c View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18670: refactor: Remove unused methods CBloomFilter::re…

    …set()/clear()
    
    69ffddc refactor: Remove unused methods CBloomFilter::reset()/clear() (Sebastian Falbesoner)
    
    Pull request description:
    
      The method `CBloomFilter::reset()` was introduced by commit d2d7ee0 in 2015, but was never ever used, as far as I could find. As discovered by MarcoFalke, the method `clear()` is also unused outside of unit tests and is hence also removed.
    
    ACKs for top commit:
      MarcoFalke:
        re-ACK 69ffddc
      jonatack:
        ACK 69ffddc, code review, compiled a fuzz build and started the bloom_filter fuzz test as a sanity check.
      promag:
        ACK 69ffddc.
    
    Tree-SHA512: 6c53678545ad8e2fa1ffc0a8838e450462f26748a60632f738dc020f0eb494ae2c32841e6256e266ed9140177257a78b707123421942f3819a14ffcb9a99322f
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    4a71c46 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b68e717 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#17824: wallet: Prefer full destination groups in coin s…

    …election
    
    a2324e4 test: Improve naming and logging of avoid_reuse tests (Fabian Jahr)
    1abbdac wallet: Prefer full destination groups in coin selection (Fabian Jahr)
    
    Pull request description:
    
      Fixes bitcoin#17603 (together with bitcoin#17843)
    
      In the case of destination groups of >10 outputs existing in a wallet with `avoid_reuse` enabled, the grouping algorithm is adding left-over outputs as an "incomplete" group to the list of groups even when a full group has already been added. This leads to the strange behavior that if there are >10 outputs for a destination the transaction spending from that will effectively use `len(outputs) % 10` as inputs for that transaction.
    
      From the original PR and the code comment I understand the correct behavior should be the usage of 10 outputs. I opted for minimal changes in the current code although there maybe optimizations possible for cases with >20 outputs on a destination this sounds like too much of an edge case right now.
    
    ACKs for top commit:
      jonatack:
        Re-ACK a2324e4
      achow101:
        ACK a2324e4
      kallewoof:
        ACK a2324e4
      meshcollider:
        Tested ACK a2324e4 (verified the new test fails on master without this change)
    
    Tree-SHA512: 4743779c5d469fcd16df5baf166024b1d3c8eaca151df1e8281b71df62b29541cf7bfee3f8ab48d83e3b34c9256e53fd38a7b146a54c79f9caa44cce3636971a
    meshcollider committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    c189bfd View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    eab7367 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18467: rpc: Improve documentation and return value of s…

    …ettxfee
    
    3867727 rpc: settxfee respects -maxtxfee wallet setting (Fabian Jahr)
    bda84a0 rpc: Add documentation for deactivating settxfee (Fabian Jahr)
    
    Pull request description:
    
      ~~Closes 18315~~
    
      `settxfee` can be deactivated by passing 0 as the fee. That does not seem to be documented for the user so this PR adds it in the description. The return value of a simple boolean seems also too simplified given the multiple dimensions that this deactivation feature enables. I.e. it does not seem intuitive if the returned boolean shows that the call succeeded or if means that `settxfee` is active. My suggested solution is to change the return value to a JSON object that included the "active" state and the currently set fee rate.
    
      Examples:
      ```
      $ src/bitcoin-cli settxfee 0.0000000
      {
        "active": false,
        "fee_rate": "0.00000000 BTC/kB"
      }
      $ src/bitcoin-cli settxfee 0.0001
      {
        "active": true,
        "fee_rate": "0.00010000 BTC/kB"
      }
      ```
    
    ACKs for top commit:
      MarcoFalke:
        ACK 3867727, seems useful to error out early instead of later bitcoin#16257 🕍
      jonatack:
        ACK 3867727
      meshcollider:
        LGTM, utACK 3867727
    
    Tree-SHA512: 642813b5cf6612abb4b6cb63728081a6bd1659d809e0149c8f56060b6da7253fee989b3b202854f3051df3773c966799af30b612648c466b099f00590f356548
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    c2e53ff View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    faceeae View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    1362be0 View commit details
    Browse the repository at this point in the history
  11. refactor: Drop unused ${WRAP_DIR}/${HOST} directory

    This commit removes the directory that is no longer used since bitcoin#16667.
    hebasto committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    2aa48ed View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#18664: fuzz: fix unused variable compiler warning

    eab7367 fuzz: fix unused variable compiler warning (Jon Atack)
    
    Pull request description:
    
      Fixes the compiler warning while hopefully not invalidating the existing seeds. Added an explanatory comment.
      ```
      test/fuzz/locale.cpp:59:19: warning: unused variable 'random_int32' [-Wunused-variable]
          const int32_t random_int32 = fuzzed_data_provider.ConsumeIntegral<int32_t>();
      ```
    
    ACKs for top commit:
      practicalswift:
        ACK eab7367
    
    Tree-SHA512: 4c90784518027cd3f85acd18030201efe4018f9da46365fef934e9a53a0b923031fec4c884a2da2f14232b6060aeb9016ac09950a18e31395de048548ecbc836
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    ecc2e4e View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#18673: scripted-diff: Sort test includes

    fa4632c test: Move boost/stdlib includes last (MarcoFalke)
    fa488f1 scripted-diff: Bump copyright headers (MarcoFalke)
    fac5c37 scripted-diff: Sort test includes (MarcoFalke)
    
    Pull request description:
    
      When writing tests, often includes need to be added or removed. Currently the list of includes is not sorted, so developers that write tests and have `clang-format` installed will either have an unrelated change (sorting) included in their commit or they will have to manually undo the sort.
    
      This pull preempts both issues by just sorting all includes in one commit.
    
      Please be aware that this is **NOT** a change to policy to enforce clang-format or any other developer guideline or process. Developers are free to use whatever tool they want, see also bitcoin#18651.
    
      Edit: Also includes a commit to bump the copyright headers, so that the touched files don't need to be touched again for that.
    
    ACKs for top commit:
      practicalswift:
        ACK fa4632c
      jonatack:
        ACK fa4632c, light review and sanity checks with gcc build and clang fuzz build
    
    Tree-SHA512: 130a8d073a379ba556b1e64104d37c46b671425c0aef0ed725fd60156a95e8dc83fb6f0b5330b2f8152cf5daaf3983b4aca5e75812598f2626c39fd12b88b180
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    54f812d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    fab1170 View commit details
    Browse the repository at this point in the history
  15. bench: Replace ::mempool globabl with test_setup.mempool

    This is a refactor, since they are aliases for each other
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    fa1fdb0 View commit details
    Browse the repository at this point in the history
  16. Merge bitcoin#18607: rpc: Fix named arguments in documentation

    fa168d7 rpc: Document all aliases for first arg of listtransactions (MarcoFalke)
    fa5b1f0 rpc: Document all aliases for second arg of getblock (MarcoFalke)
    fa86a4b rpc: Rename first arg of generateblock RPC to "output" (MarcoFalke)
    
    Pull request description:
    
      This fixes a bug found with bitcoin#18531:
    
      * Currently the named argument for `generateblock` is documented as `address/descriptor`, but the server only accepts a named argument of `address`. Fix it by changing the name to `output` for both the documentation and the server code. Also, add tests to prove the server understands the new name `output`.
    
      * Unrelated to that, there have been a bunch of aliases in the server code that are not present in the source code of the documentation. Fix that by adding the alias to the source code of the documentation. Only the first alias is displayed in the rendered documentation. Also, add tests to prove the server actually understands all aliases.
    
    ACKs for top commit:
      pierreN:
        Tested ACK fa168d7 tests, help messages
    
    Tree-SHA512: 05e15628e3a667b296f3783d20f764b450b959451b5360c7eaf5993156582d47a0f5882330ca2493b851eb46324d504953b90c875bc88a15c9e8c89eb3ef8d92
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    244daa4 View commit details
    Browse the repository at this point in the history
  17. fuzz: http_request workaround for libevent < 2.1.1

    Before libevent 2.1.1, internal functions names didn't end with an underscore.
    theStack committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    6f8b498 View commit details
    Browse the repository at this point in the history
  18. Merge bitcoin#18683: ci: Disable valgrind functionl tests on forked r…

    …epos to avoid timeouts
    
    faceeae ci: Disable valgrind functionl tests on forked repos to avoid timeouts (MarcoFalke)
    
    Pull request description:
    
      Allows people to fork our repo and run the tests again
    
      Also print more cache stats
    
    ACKs for top commit:
      hebasto:
        ACK faceeae, tested on my own repo: https://travis-ci.org/github/hebasto/bitcoin/jobs/676257500
    
    Tree-SHA512: 50e44edf94fcb997438eeaf7308b2b58a0854141ecb1fbb0ba7bf5ed662f19b60899f966f579cca90ad5e789234d0e90122d8c2c854da70339058adc3a475fa6
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    d7bdba4 View commit details
    Browse the repository at this point in the history
  19. Merge bitcoin#18641: test: Create cached blocks not in the future

    fa32097 test: Create cached blocks not in the future (MarcoFalke)
    
    Pull request description:
    
      This avoids test failures when tests assume blocks are not from the future, like in wallet_dump: https://cirrus-ci.com/task/6607130193035264?command=ci#L3306
    
    ACKs for top commit:
      jonatack:
        ACK fa32097
    
    Tree-SHA512: 60b6882e0e1df8c5d67f034533407a45d3685983891b67ff4631072bfd0a93a325c7ca18758d7a2df252e4fcdb7c87321cb1e84458b22782e57e719eec634c22
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    c54295c View commit details
    Browse the repository at this point in the history
  20. fuzz: Run in parallel

    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    fa66280 View commit details
    Browse the repository at this point in the history
  21. test: Bump timeout in wallet_import_rescan

    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    fabfcad View commit details
    Browse the repository at this point in the history
  22. Merge bitcoin#18682: fuzz: http_request workaround for libevent < 2.1.1

    6f8b498 fuzz: http_request workaround for libevent < 2.1.1 (Sebastian Falbesoner)
    
    Pull request description:
    
      The fuzz test `http_request` calls the following two internal libevent functions:
      * `evhttp_parse_firstline_`
      * `evhttp_parse_headers_`
    
      Before libevent 2.1.1 however, internal functions names didn't end with an underscore (see libevent commit libevent/libevent@8ac3c4c and [Changelog for 2.1.1.-alpha](https://github.com/libevent/libevent/blob/master/ChangeLog#L1830) when the change was first mentioned) hence the build fails with a linking error.
      This PR adds a preprocessor workaround to the test that checks for the libevent version (via ~`_EVENT_NUMERIC_VERSION`~ `LIBEVENT_VERSION_NUMBER`) and creates wrapper functions mapping to naming scheme without underscore in case the version is older than 2.1.1.
    
      Tested with Ubuntu Xenial 16.04.6 LTS and clang-8.
    
    ACKs for top commit:
      hebasto:
        ACK 6f8b498, tested on xenial:
    
    Tree-SHA512: 3b9e0147b8aea22e417d418e3b6d4905f5be131c2b0ae4b0f8b9411c5606d2e22f1b23e1ecc6980ecab907c61404de09e588aae1ac43cf70cf9e8d006bbdee73
    MarcoFalke committed Apr 17, 2020
    Configuration menu
    Copy the full SHA
    895c71e View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    27abd1a View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2020

  1. rpc: doc: Fix and extend getblockstats examples

    This fixes the example curl command for `getblockstats` which is missing
    a comma between the params and has single quotes around the second
    parameter.
    
    Besides fixing the existing example, this commit adds an additional
    example of getting block stats by hash by using a known workaround with
    bitcoin-cli to get it to treat the hash parameter as a JSON string by
    wrapping it in both single and double quotes.
    
    Co-Authored-By: Andrew Toth <[email protected]>
    Co-Authored-By: Sebastian Falbesoner <[email protected]>
    3 people committed Apr 18, 2020
    Configuration menu
    Copy the full SHA
    7099984 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#17219: wallet: allow transaction without change if keyp…

    …ool is empty
    
    92bcd70 [wallet] allow transaction without change if keypool is empty (Sjors Provoost)
    709f868 [wallet] CreateTransaction: simplify change address check (Sjors Provoost)
    5efc25f [wallet] translate "Keypool ran out" message (Sjors Provoost)
    
    Pull request description:
    
      Extracted from bitcoin#16944
    
      First this PR simplifies the check when generating a change address, by dropping `CanGetAddresses` and just letting `reservedest.GetReservedDestination` do this check.
    
      Second, when the keypool is empty, instead of immediately giving up, we create a dummy change address and pass that to coin selection. If we didn't need the change address (e.g. when spending the entire balance), then it's all good. If we did need a change address, we throw the original error.
    
    ACKs for top commit:
      fjahr:
        Code review ACK 92bcd70
      jonasschnelli:
        utACK 92bcd70
      achow101:
        ACK 92bcd70
      meshcollider:
        Code review ACK 92bcd70
    
    Tree-SHA512: 07b8c8251f57061c58a85ebf0359be63583c23bac7a2c4cefdc14820c0cdebcc90a2bb218e5ede0db11d1e204cda149e056dfd18614642070b3d56efe2735006
    meshcollider committed Apr 18, 2020
    Configuration menu
    Copy the full SHA
    bbb1ba1 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18692: test: Bump timeout in wallet_import_rescan

    fabfcad test: Bump timeout in wallet_import_rescan (MarcoFalke)
    
    Pull request description:
    
      Avoid timeouts when starting the node, also make error message more verbose
    
    ACKs for top commit:
      practicalswift:
        ACK fabfcad -- patch looks correct
    
    Tree-SHA512: 8fd60a05380349f521d0e814d2f268702dfbe57c7567a4f6e94435498dfdd32909179d75fded44757ecb1a93a4045842bc6d00bfd6cd18ba751513461359c7b0
    MarcoFalke committed Apr 18, 2020
    Configuration menu
    Copy the full SHA
    6ae99aa View commit details
    Browse the repository at this point in the history
  4. test: Properly raise FailedToStartError when rpc shutdown before warm…

    …up finished (take 2)
    MarcoFalke committed Apr 18, 2020
    Configuration menu
    Copy the full SHA
    fa03713 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2020

  1. build: fix ASLR for bitcoin-cli on Windows

    ASLR is not currently working for the bitcoin-cli.exe binary. This is
    due to it not having a .reloc section, which is stripped by default by
    the mingw-w64 ld we use for gitian builds. A good summary of issues with
    ld and mingw-w64 is available in this thread:
    https://sourceware.org/bugzilla/show_bug.cgi?id=19011.
    
    All other Windows binaries that we distribute (bitcoind, bitcoin-qt,
    bitcoin-wallet, bitcoin-tx and test_bitcoin) do not suffer this issue,
    and currently having working ASLR. This is due to them exporting
    (inadvertent or not) libsecp256k1 symbols, and, as a result, the .reloc
    section is not stripped by ld.
    
    This change is a temporary workaround, also the same one described here:
    https://www.kb.cert.org/vuls/id/307144/, that causes main() to be
    exported. Exporting a symbol will mean that the .reloc section is not
    stripped, and ASLR will function correctly.
    fanquake committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    315a4d3 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18695: test: Replace boost::mutex with std::mutex

    27abd1a test: Replace boost::mutex with std::mutex (Hennadii Stepanov)
    
    Pull request description:
    
      This PR replaces `boost::mutex` with `std::mutex` in the `scheduler_tests` test suite.
    
    ACKs for top commit:
      theStack:
        ACK bitcoin@27abd1a
      sipa:
        utACK 27abd1a
    
    Tree-SHA512: 062eed360a68910fb71552fd892bfd097442718a237446cfb8350bfd5d807da7251ead2b9755e1d7022598774ed23fa5432a589ac6f8cadddab404b439883466
    fanquake committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    d656311 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18633: test: Properly raise FailedToStartError when rpc…

    … shutdown before warmup finished (take 2)
    
    fa03713 test: Properly raise FailedToStartError when rpc shutdown before warmup finished (take 2) (MarcoFalke)
    
    Pull request description:
    
      actually (?) fix bitcoin#18561
    
      See most recent traceback https://travis-ci.org/github/bitcoin/bitcoin/jobs/674668692#L7062
    
      I believe the reason the error is still there is that ConnectionResetError is derived from OSError:
    
      ConnectionResetError(ConnectionError(OSError))
    
      And IOError is an alias for OSError since python 3.3, see https://docs.python.org/3/library/exceptions.html#IOError
    
      So fix that by renaming IOError to the alias OSError and move the less specific catch clause down a few lines.
    
    ACKs for top commit:
      jonatack:
        ACK fa03713
    
    Tree-SHA512: 6e5b214ed9101bf8ebe7472dcc1f9e9d128e2575c93ec00c8d0774ae1a9b52a8c2a653a45a0eab8d881570b08dd5ffeddf5aca88a10438c366e1f633253cb0b5
    MarcoFalke committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    b690b24 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18675: tests: Don't initialize PrecomputedTransactionDa…

    …ta in txvalidationcache tests
    
    3718ae2 [tests] Don't initialize PrecomputedTransactionData in txvalidationcache tests (John Newbery)
    
    Pull request description:
    
      PrecomputedTransactionData is initialized inside CheckInputScripts(). No need to pre-initialize it before calling into CheckInputScripts().
    
      Normally, I wouldn't bother, but we're making changes to `PrecomputedTransactionData` in bitcoin#17977 which would break these tests without removing these constructions. Might as well get these changes out of the way here.
    
    ACKs for top commit:
      robot-visions:
        ACK 3718ae2
      sipa:
        utACK 3718ae2
    
    Tree-SHA512: bc9c095035a7072a2a91941df38cdbb969e817264efbaa6dcb88cc3ab132d9264aa0751fa588d1a5e45f37b4d2bb1903cda078765f0bbcc87d9cc47cbec5356a
    MarcoFalke committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    a998c51 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#15761: Replace -upgradewallet startup option with upgra…

    …dewallet RPC
    
    0d32d66 Remove -upgradewallet startup option (Andrew Chow)
    92263cc Add upgradewallet RPC (Andrew Chow)
    1e48796 Make UpgradeWallet a member function of CWallet (Andrew Chow)
    c988f27 Have UpgradeWallet take the version to upgrade to and an error message out parameter (Andrew Chow)
    1833237 Only run UpgradeWallet if the wallet needs to be upgraded (Andrew Chow)
    9c16b17 Move wallet upgrading to its own function (Andrew Chow)
    
    Pull request description:
    
      `-upgradewallet` is largely incompatible with many recent wallet features and versions. For example, it was disabled if multiple wallets were used and would not work with encrypted wallets that were being upgraded to HD.
    
      This PR does away with the old method of upgrading upon startup and instead allows users to upgrade their wallets via an `upgradewallet` RPC. This does largely the same thing as the old `-upgradewallet` option but because the wallet is loaded, it can be unlocked to upgrade to HD. Furthermore it is compatible with multiwallet as it works on the individual wallet that is specified by the RPC.
    
    ACKs for top commit:
      meshcollider:
        Code review ACK 0d32d66
      darosior:
        ACK 0d32d66
      MarcoFalke:
        ACK 0d32d66 🚵
    
    Tree-SHA512: b425bf6f5d605e26506889d63c780895482f07cbc086193218e031e8504d3072d41e90d65cd41bcc98ee4c1eb048954bc5d4ac85435f7394892373aac89a3b0a
    MarcoFalke committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    b470c75 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    fac2fc4 View commit details
    Browse the repository at this point in the history
  7. ci: Remove xenial tsan workaround

    MarcoFalke committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    faebcd4 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fc289b7 View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#18610: scripted-diff: test: replace command with msgtyp…

    …e (naming)
    
    9df32e8 scripted-diff: test: replace command with msgtype (Sebastian Falbesoner)
    
    Pull request description:
    
      This is a follow-up PR to bitcoin#18533, which changed the naming of `strCommand` to `msg_type` in the network processing code. The same approach is done here for the function test framework, to get rid of the wrong "command" terminology for network mesage types. (Commands are usually used in the CLI or RPC context, so using the same name in the network message context would only be confusing.)
    
      The commit was created through the following steps:
      1. search for all occurences of the string "command" within the folder `test/functional`
      ```git grep -i command test/functional > command_finds```
      2. manually sort out all false-positives, i.e. occurences of "command" which describe commands in the correct sense (mostly CLI or RPC related, also some with Socks5)
      3. put the remaining occurences into a scripted-diff (a quite simple one, actually) that renames "command" to "msgtype" in the concerned files.
    
      The name `msgtype` was intentionally chosen without the underscore `_` as classes beginning with `msg_` define concrete types of messages.
    
    ACKs for top commit:
      MarcoFalke:
        ACK 9df32e8 . Makes sense that tests use the same naming as Bitcoin Core. See `NetMsgType` here: https://doxygen.bitcoincore.org/namespace_net_msg_type.html
    
    Tree-SHA512: cd0ee08a382910b7f10ce583acdaf4f8a39f9ba4a22434a914415727eedd98bac538de9bf6633574d5eb86f62558bc8dcb638a3289d99b04f8481f34e7a9a0c7
    MarcoFalke committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    d2882a0 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#18601: wallet: Refactor WalletRescanReserver to use wal…

    …let reference
    
    fc289b7 wallet: Refactor WalletRescanReserver to use wallet reference (João Barbosa)
    
    Pull request description:
    
      Simple refactor to `WalletRescanReserver` to use wallet reference instead of pointer.
    
      Complements bitcoin#18259.
    
    ACKs for top commit:
      MarcoFalke:
        ACK fc289b7
    
    Tree-SHA512: b03e33f2d9df2870436aa3284137fd022dd89ea96a1b170fa27f8685ad4f986e6c4ba5975a84966c30d18430a4014d7d8740a1dff2f985c9ef8226ed18e69db9
    MarcoFalke committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    f8102d9 View commit details
    Browse the repository at this point in the history
  11. test: add wait_for_cookie_credentials() to test framework

    to be able to ensure the cookie file is written and auth credentials available
    when testing CLI/RPC commands before the RPC connection is up.
    jonatack committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    c648e63 View commit details
    Browse the repository at this point in the history
  12. test: fix intermittent race condition in interface_bitcoin_cli.py

    by calling wait_for_cookie_credentials() to ensure the cookie file is written
    and auth credentials available for testing the CLI -rpcwait option before the
    RPC connection is up.
    jonatack committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    92fe537 View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2020

  1. Configuration menu
    Copy the full SHA
    20a3092 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18691: test: add wait_for_cookie_credentials() to frame…

    …work for rpcwait tests
    
    92fe537 test: fix intermittent race condition in interface_bitcoin_cli.py (Jon Atack)
    c648e63 test: add wait_for_cookie_credentials() to test framework (Jon Atack)
    
    Pull request description:
    
      This PR adds a `wait_for_cookie_credentials()` method to the test framework and calls it before the `-rpcwait` tests, to avoid an intermittent race condition on the CI run with Valgrind where the cookie file isn't written yet when the CLI call with `-rpcwait` arrives to `get_auth_cookie()`.
    
      To reproduce/test, build with
      ```diff
      diff --git a/src/httprpc.cpp b/src/httprpc.cpp
      index 60c4d06f12..3dd06c4758 100644
      --- a/src/httprpc.cpp
      +++ b/src/httprpc.cpp
      @@ -291,6 +291,7 @@ static bool InitRPCAuthentication()
       bool StartHTTPRPC()
       {
           LogPrint(BCLog::RPC, "Starting HTTP RPC server\n");
      +    UninterruptibleSleep(std::chrono::seconds{11});
           if (!InitRPCAuthentication())
      ```
      then run the test normally and with valgrind
      ```
      test/functional/interface_bitcoin_cli.py -l debug
      valgrind test/functional/interface_bitcoin_cli.py -l debug
      ```
      Thanks to Marco Falke for all the help. Closes bitcoin#18684.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 1b76635b5b1d6b05138affef7ab788aa3bc3fc75b0c69ba778ecdf81063cfe02a8dd7667cfd63a6c6e19b2dac47d7a8b755e334d8af5c0ab9d4026808ee96c83
    MarcoFalke committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    dc5da7f View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18544: net: limit BIP37 filter lifespan (active between…

    … 'filterload'..'filterclear')
    
    a9ecbdf test: add more inactive filter tests to p2p_filter.py (Sebastian Falbesoner)
    5eae034 net: limit BIP37 filter lifespan (active between 'filterload' and 'filterclear') (Sebastian Falbesoner)
    
    Pull request description:
    
      This PR fixes bitcoin#18483. On the master branch, there is currently _always_ a BIP37 filter set for every peer: if not a specific filter is set through a `filterload` message, a default match-everything filter is instanciated and pointed to via the `CBloomFilter` default constructor; that happens both initially, when the containing structure `TxRelay` is constructed:
    
      https://github.com/bitcoin/bitcoin/blob/c0b389b33516fb3eaaad7c30bd11dba768882a7e/src/net.h#L812
    
      and after a loaded filter is removed again through a `filterclear` message:
    
      https://github.com/bitcoin/bitcoin/blob/c0b389b33516fb3eaaad7c30bd11dba768882a7e/src/net_processing.cpp#L3201
    
      The behaviour was introduced by commit bitcoin@37c6389 (an intentional covert fix for [CVE-2013-5700](bitcoin#18515), according to gmaxwell).
    
      This default match-everything filter leads to some unintended side-effects:
      1. `getdata` request for filtered blocks (i.e. type `MSG_FILTERED_BLOCK`) are always responded to with `merkleblock`s, even if no filter was set by the peer, see issue bitcoin#18483 (strictly speaking, this is a violation of BIP37) https://github.com/bitcoin/bitcoin/blob/c0b389b33516fb3eaaad7c30bd11dba768882a7e/src/net_processing.cpp#L1504-L1507
      2. if a peer sends a `filteradd` message without having loaded a filter via `filterload` before, the intended increasing of the banscore never happens (triggered if `bad` is set to true, a few lines below) https://github.com/bitcoin/bitcoin/blob/c0b389b33516fb3eaaad7c30bd11dba768882a7e/src/net_processing.cpp#L3182-L3186
    
      This PR basically activates the `else`-branch code paths for all checks of `pfilter` again (on the master branch, they are dead code) by limiting the pointer's lifespan: instead of always having a filter set, the `pfilter` is only pointing to a `CBloomFilter`-instance after receiving a `filterload` message and the instance is destroyed again (and the pointer nullified) after receiving a `filterclear` message.
    
      Here is a before/after comparison in behaviour:
      | code part / scenario                          |    master branch                   |   PR branch                                          |
      | --------------------------------------------- | ---------------------------------- | ---------------------------------------------------- |
      | `getdata` processing for `MSG_FILTERED_BLOCK` | always responds with `merkleblock` | only responds if filter was set via `filterload`     |
      | `filteradd` processing, no filter was loaded  | nothing                            | peer's banscore increases by 100 (i.e. disconnect)   |
    
      On the other code parts where `pfilter` is checked there is no change in the logic behaviour (except that `CBloomFilter::IsRelevantAndUpdate()` is unnecessarily called and immediately returned in the master branch).
      Note that the default constructor of `CBloomFilter` is only used for deserializing the received `filterload` message and nowhere else. The PR also contains a functional test checking that sending `getdata` for filtered blocks is ignored by the node if no bloom filter is set.
    
    ACKs for top commit:
      MarcoFalke:
        re-ACK a9ecbdf, only change is in test code 🕙
    
    Tree-SHA512: 1a656a6d74ccaf628e7fdca063ba63fbab2089e0b6d0a11be9bbd387c2ee6d3230706ff8ffc1a55711481df3d4547137dd7c9d9184d89eaa43ade4927792d0b6
    MarcoFalke committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    da4cbb7 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#17831: rpc: doc: Fix and extend getblockstats examples

    7099984 rpc: doc: Fix and extend getblockstats examples (Adam Soltys)
    
    Pull request description:
    
      This pull fixes the example curl command for `getblockstats` which doesn't work as is because it's missing a comma between the params and has single quotes around the second parameter.
    
      It also adds an additional example of getting block stats by hash by using a known workaround (bitcoin#15412) to get bitcoin-cli to treat the hash parameter as JSON instead of a string since there is ongoing deliberation about how or whether to fix the root issue (bitcoin#15448).
    
    ACKs for top commit:
      theStack:
        ACK bitcoin@7099984
    
    Tree-SHA512: 84a5b7f449f06fff785bc0afbc1a7dfd55454bc76c52a8945e91556f87f3edfdc5a1780faab8fcfd6c415b734295b7c67d2e04ba7b6cfa91a77758af5dda53ae
    MarcoFalke committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    5e5dd99 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b91e4ae View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#17579: [refactor] Merge getreceivedby tally into GetRec…

    …eived function
    
    a1d5b12 Merge getreceivedby tally into GetReceived function (Andrew Toth)
    
    Pull request description:
    
      This PR merges the tally code of `getreceivedbyaddress` and `getreceivedbylabel` into a single function `GetReceived`. This reduces repeated code and makes it similar to `listreceivedbyaddress` and `listreceivedbylabel`, which use the function `ListReceived`. It will also make the change in bitcoin#14707 simpler and easier to review.
    
    ACKs for top commit:
      theStack:
        re-ACK bitcoin@a1d5b12
      meshcollider:
        utACK a1d5b12
    
    Tree-SHA512: 43d9cd92f7c2c6a8b9c7509aa85a9b9233a6cfec1c43a9062e3bdfb83515413d1feafa8938c828351278ba22bd31c47e62ab5341e4bddc2493103b094d73b047
    MarcoFalke committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    3be119c View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#18705: ci: Remove xenial tsan workaround

    faebcd4 ci: Remove xenial tsan workaround (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      hebasto:
        ACK faebcd4
    
    Tree-SHA512: 5d7e15be211e526948f863f573dbb5a97005262241ba4a07858346cba3a17cb24b1473df347224e0e4f2b22201750e27fba80ffe0d1dddf85f4e8f9341a8c129
    MarcoFalke committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    fc00e65 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    69749fb View commit details
    Browse the repository at this point in the history
  9. test: add further BIP37 size limit checks to p2p_filter.py

    also unified method of detecting misbehaviour
    (using assert_debug_log instead of checking peer's banscore)
    theStack committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    c743718 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#18676: build: Check libevent minimum version in configu…

    …re script
    
    b68e717 build: Set libevent minimum version to 2.0.21 (Hennadii Stepanov)
    
    Pull request description:
    
      The non-`pkg-config` path is ignored as there is a hope to get rid of all of them in bitcoin#18307.
    
      As xenial has [libevent 2.0.21](https://packages.ubuntu.com/xenial-updates/libevent-2.0-5) only, the default bionic Docker image is used in the _"[no depends, only system libs, sanitizers: thread (TSan), no wallet]"_ CI test.
    
    ACKs for top commit:
      theStack:
        utACK bitcoin@b68e717
      laanwj:
        ACK b68e717
    
    Tree-SHA512: 9825c42aeb166165e99fe5eaf74dbb47c2b51aecdbe53c5ae949fe126e1b8e8b6fe8d228fdde4e8daa4243e5907954202f42eb23c71629e4b2b92a7d4eb892e4
    laanwj committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    56d2ff8 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#18190: tests: Add fuzzing harness for Golomb-Rice codin…

    …g (GolombRiceEncode/GolombRiceDecode)
    
    69749fb tests: Add fuzzing harness for Golomb-Rice coding (GolombRiceEncode/GolombRiceDecode) (practicalswift)
    
    Pull request description:
    
      Add fuzzing harness for Golomb-Rice coding (`GolombRiceEncode`/`GolombRiceDecode`).
    
      Test this PR using:
    
      ```
      $ make distclean
      $ ./autogen.sh
      $ CC=clang CXX=clang++ ./configure --enable-fuzz \
            --with-sanitizers=address,fuzzer,undefined
      $ make
      $ src/test/fuzz/golomb_rice
      …
      ```
    
    Top commit has no ACKs.
    
    Tree-SHA512: 1b26512301b8c22ab3b804d9b9e4baf933f26f8c05e462d583863badcec7e694548a34849a0d7c4ff7d58b19f6338b51819976ecf642bc4659b04ef71182d748
    MarcoFalke committed Apr 20, 2020
    Configuration menu
    Copy the full SHA
    c4c3f11 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2020

  1. doc: fix typo in configure.ac

    s/liner/linker/
    fanquake committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    b155fcd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7b99c74 View commit details
    Browse the repository at this point in the history
  3. scripts: add MACHO LAZY_BINDINGS test to test-security-check.py

    I didn't add the relevant test in bitcoin#18295.
    fanquake committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    8334ee3 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18672: test: add further BIP37 size limit checks to p2p…

    …_filter.py
    
    c743718 test: add further BIP37 size limit checks to p2p_filter.py (Sebastian Falbesoner)
    
    Pull request description:
    
      This is a follow-up PR to bitcoin#18628. In addition to the hash-functions limit test introduced with commit bitcoin@fa4c29b, it adds checks for the following size limits as defined in [BIP37](https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki):
    
      ad message type `filterload`:
      > The filter itself is simply a bit field of arbitrary byte-aligned size. The maximum size is **36,000 bytes**.
    
      ad message type `filteradd`:
      > The data field must be smaller than or equal to **520 bytes** in size (the maximum size of any potentially matched object).
    
      Also introduces new constants for the limits (or reuses the max script size constant in case for the `filteradd` limit).
    
      Also fixes bitcoin#18711 by changing the misbehaviour check on "filteradd without filterset" (introduced with bitcoin#18544) below to also use the more commonly used `assert_debug_log` method.
    
    ACKs for top commit:
      MarcoFalke:
        ACK c743718
      robot-visions:
        ACK c743718
      jonasschnelli:
        utACK c743718. Seems to fix it: https://bitcoinbuilds.org/index.php?build=2524
    
    Tree-SHA512: a03e7639263eb36a381922afb4e1d0ed2ae286f2ad2e7bbd922509a043ddf6cfd08747e01d54d29bfb8f54b66908f653974b9c347e4ca4f43332b586778893be
    MarcoFalke committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    4ad6144 View commit details
    Browse the repository at this point in the history
  5. test: Fix linter issue

    hebasto committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    60cdcf3 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#18721: test: Fix linter issue

    60cdcf3 test: Fix linter issue (Hennadii Stepanov)
    
    Pull request description:
    
    Top commit has no ACKs.
    
    Tree-SHA512: 4fa0103526fed4b1399d3a6b83cea1e509cefff36d7e16ed1499d22afdc49e72053ac3d0634d858838ec6c296af7134131ea4d509c46de99da557567bc75d711
    MarcoFalke committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    9773283 View commit details
    Browse the repository at this point in the history
  7. bench: add CAddrMan benchmarks

    The added benchmarks exercise the public methods Add(), GetAddr(),
    Select() and Good().
    vasild committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    a9b9577 View commit details
    Browse the repository at this point in the history
  8. test: display command line options passed to send_cli() in debug log

    and fixup two cli calls from rpc commands to command line options.
    
    Co-authored-by: MarcoFalke <[email protected]>
    jonatack and MarcoFalke committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    8f5dc88 View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#18704: test: Increase debugging to hunt down mempool_re…

    …org intermittent failure
    
    fac2fc4 test: Increase debugging to hunt down mempool_reorg intermittent failure (MarcoFalke)
    
    Pull request description:
    
    Top commit has no ACKs.
    
    Tree-SHA512: 4094b44afaa623e58b69f8d0332e60f0150b9ae2fd8bb265210d85546d887672ab8a3435cd9b086be14f69ab5b17e0f9fae06bd8aec1e7947ca766dd72b577c4
    MarcoFalke committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    9ea4d83 View commit details
    Browse the repository at this point in the history
  10. [test] add 8 error messages to feature_segwit and change version to type

    P2WPKH witness program without signature -> throws "hash mismatch" error
    P2WSH witness program without signature -> throws "empty witness" error
    same errors for P2SH_P2WPKH and P2SH_P2WSH respectively when passed redeemScript but no signature
    P2SH_P2WPKH and P2SH_P2WSH with no signature fail with "Operation not valid with current stack size" when not signed due to missing input
    change VER to TYPE and constants WIT_V0 to P2WPKH=0 and WIT_V1 to P2WSH=1
    glozow committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    3c21db7 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#18384: [test] more specific feature_segwit test error m…

    …essages and fixing incorrect comments
    
    3c21db7 [test] add 8 error messages to feature_segwit and change version to type (Gloria Zhao)
    
    Pull request description:
    
      Followup to [this](https://github.com/bitcoin/bitcoin/pull/15169/files#r303673472) comment on functional test feature_segwit.py verifying that unsigned witness transactions are invalid.
    
      (1) Changes 8 error messages from "mandatory-script-verify-flag" to "non-mandatory-script-verify-flag" and with more specific error messages.
      (2) Edits comments that incorrectly describe the test, namely that the `v` variable corresponds to using P2WSH versus P2WPKH, not witness versions.
    
    ACKs for top commit:
      MarcoFalke:
        ACK 3c21db7 🍾
    
    Tree-SHA512: 3734ea3762667636c4fb20f5285634ab94d6b3527b7390fcc5e41b4582829dfe0099beabeaed42098613d168ede3385a6ffcd73989d1fa9dbd18004f5e9cf083
    MarcoFalke committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    b6a5dc9 View commit details
    Browse the repository at this point in the history
  12. [docs] Improve commenting in coins.cpp|h

    Remove references to 'pruned' coins, which don't exist since the move
    to per-txout coins db.
    jnewbery committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    c205979 View commit details
    Browse the repository at this point in the history
  13. scripted-diff: Rename PRUNED to SPENT in coins tests

    -BEGIN VERIFY SCRIPT-
    sed -i -e 's/PRUNED,/SPENT ,/g' ./src/test/coins_tests.cpp
    sed -i -e 's/PRUNED/SPENT/g' ./src/test/coins_tests.cpp
    -END VERIFY SCRIPT-
    jnewbery committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    e993696 View commit details
    Browse the repository at this point in the history
  14. [tests] small whitespace fixup

    Required after scripted-diff in previous commit.
    jnewbery committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    2685c21 View commit details
    Browse the repository at this point in the history
  15. [docs] use consistent naming for possible_overwrite

    And other general comment improvements for adding coins.
    jnewbery committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    21fa0a4 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2020

  1. Merge bitcoin#18709: doc: note why we can't use thread_local with gli…

    …bc back compat
    
    b155fcd doc: fix typo in configure.ac (fanquake)
    20a3092 doc: note why we can't use thread_local with glibc back compat (fanquake)
    
    Pull request description:
    
      Given that we went through a [gitian build](bitcoin#18681) to remember why this is the case, we might as well make a note of it in configure.ac.
    
      [From bitcoin#18681](bitcoin#18681 (comment)):
    
      Looking at the Linux build log, this has failed with:
      ```bash
      Checking glibc back compat...
      bitcoind: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
      bitcoind: failed IMPORTED_SYMBOLS
      bitcoin-cli: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
      bitcoin-cli: failed IMPORTED_SYMBOLS
      bitcoin-tx: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
      bitcoin-tx: failed IMPORTED_SYMBOLS
      bitcoin-wallet: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
      bitcoin-wallet: failed IMPORTED_SYMBOLS
      test/test_bitcoin: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
      test/test_bitcoin: failed IMPORTED_SYMBOLS
      bench/bench_bitcoin: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
      bench/bench_bitcoin: failed IMPORTED_SYMBOLS
      qt/bitcoin-qt: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
      ```
    
      `__cxa_thread_atexit_impl` is used for [thread_local variable destruction](https://sourceware.org/glibc/wiki/Destructor%20support%20for%20thread_local%20variables):
    
      > To implement this support, glibc defines __cxa_thread_atexit_impl exclusively for use by libstdc++ (which has the __cxa_thread_atexit to wrap around it), that registers destructors for thread_local variables in a list. Upon thread or process exit, the destructors are called in reverse order in which they were added.
    
      As suggested, this only became available in glibc 2.18. From the [2.18 release notes](https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html):
    
      > * Add support for calling C++11 thread_local object destructors on thread
        and program exit.  This needs compiler support for offloading C++11
        destructor calls to glibc.
    
    ACKs for top commit:
      hebasto:
        ACK b155fcd
    
    Tree-SHA512: 5b9567e4a70598a4b0b91956f44ae0d93091db17c84cbf9817dac6cfa992c97d3438a8b1bb66644c74891f2149e44984daed445d22de93ca8858c5b0eabefb40
    fanquake committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    7d1a3bd View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18713: scripts: Add MACHO stack canary check to securit…

    …y-check.py
    
    8334ee3 scripts: add MACHO LAZY_BINDINGS test to test-security-check.py (fanquake)
    7b99c74 scripts: add MACHO Canary check to security-check.py (fanquake)
    
    Pull request description:
    
      7b99c74 uses `otool -Iv` to check for `___stack_chk_fail` in the macOS binaries. Similar to the [ELF check](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/security-check.py#L105). Note that looking for a triple underscore prefixed function (as opposed to two for ELF) is correct for the macOS binaries. i.e:
      ```bash
      otool -Iv bitcoind | grep chk
      0x00000001006715b8   509 ___memcpy_chk
      0x00000001006715be   510 ___snprintf_chk
      0x00000001006715c4   511 ___sprintf_chk
      0x00000001006715ca   512 ___stack_chk_fail
      0x00000001006715d6   517 ___vsnprintf_chk
      0x0000000100787898   513 ___stack_chk_guard
      ```
    
      8334ee3 is a follow up to bitcoin#18295 and adds test cases to `test-security-check.py` that for some reason I didn't add at the time. I'll sort out bitcoin#18434 so that we can run these tests in the CI.
    
    ACKs for top commit:
      practicalswift:
        ACK 8334ee3: Mitigations are important. Important things are worth asserting :)
      jonasschnelli:
        utACK 8334ee3.
    
    Tree-SHA512: 1aa5ded34bbd187eddb112b27278deb328bfc21ac82316b20fab6ad894f223b239a76b53dab0ac1770d194c1760fcc40d4da91ec09959ba4fc8eadedb173936a
    fanquake committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    c90a9e6 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18612: script: Remove undocumented and unused operator+

    ccccd51 script: Remove undocumented and unused operator+ (MarcoFalke)
    
    Pull request description:
    
      This operator has no documented use case and is also unused outside of test code. The test code and all other (imaginary) code that might use this operator is written more clear and concise by the existing CScript push operators for opcodes and data.
    
      Removing the operator is also going to protect against accidentally reintroducing bugs like this bitcoin@6ff5f71#diff-8458adcedc17d046942185cb709ff5c3L1135 (last time it was used).
    
    ACKs for top commit:
      laanwj:
        ACK ccccd51
    
    Tree-SHA512: 43898ac77e4d9643d9f8ac6f8f65497a4f0bbb1fb5dcaecc839c3719aa36181ba77befb213e59a9f33a20a29e0173a0e9c4763b1930940b32c3d1598b3e39af9
    laanwj committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    19032c7 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18665: Do not expose and consider -logthreadnames when …

    …it does not work
    
    b91e4ae Do not expose and consider -logthreadnames when it does not work (Hennadii Stepanov)
    
    Pull request description:
    
      There are conditions when the `HAVE_THREAD_LOCAL` macro is undefined what causes the `-logthreadnames` option does not work -- instead of thread names empty strings `[]` only are printed in the `debug.log` file.
    
      This PR does not exposes the `-logthreadnames` option in such cases.
    
      Refs:
      - bitcoin#16059
      - bitcoin#18652
    
    ACKs for top commit:
      MarcoFalke:
        ACK b91e4ae, looked at the diff, didn't test
    
    Tree-SHA512: 3bd58e5ea603c69686589ddc94d6fa441cab4f712004378f2f1661e12638804ca03cfb6426e6393e55b6a095b325f3161d3c5371af05d7fc79d6d328227bf40c
    laanwj committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    acb4fa0 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#18410: Docs: Improve commenting for coins.cpp|h

    21fa0a4 [docs] use consistent naming for possible_overwrite (John Newbery)
    2685c21 [tests] small whitespace fixup (John Newbery)
    e993696 scripted-diff: Rename PRUNED to SPENT in coins tests (John Newbery)
    c205979 [docs] Improve commenting in coins.cpp|h (John Newbery)
    
    Pull request description:
    
      - Add full commenting for spentness / DIRTYness / FRESHness and which combinations are valid
      - Remove the 'pruned' terminology, which doesn't make sense since per-txout chainstate db was merged (bitcoin#10195).
      - Rename `potential_overwrite` to `possible_overwrite` to standardize terminology (there were previously examples of both, which made searching the codebase difficult).
      - Make other minor improvements to the comments
    
    ACKs for top commit:
      jonatack:
        Re-ACK 21fa0a4 per `git diff 98bee55 21fa0a4` the only change since my previous review is the following code commenting diff in `src/coins.cpp::L177-179`;  rebuilt/ran unit tests anyway as a sanity check on the unit test changes.
    
    Tree-SHA512: 391e01588ef5edb417250080cec17361f982c4454bc5f8c6d78bbd528c68a2bb94373297760691295c24660ce1022ad3ef7599762f736c8eed772ce096d38c3d
    laanwj committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    9e8e813 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    faff9e4 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#18553: Avoid non-trivial global constants in SHA-NI code

    8508473 Avoid non-trivial global constants in SHA-NI code (Pieter Wuille)
    
    Pull request description:
    
      This is a potential solution for bitcoin#18456.
    
      It seems that the compiler cannot turn `_mm_set_epi64x(<constant>,<constnant>)` into a constant itself, and thus emits a global initializer for the `MASK`, `INIT0`, and `INIT1` global constants in the sha-ni SHA256 implementation.
    
      Change this by turning them into dumb byte arrays, loading them into an SSE variable whenever needed.
    
      Tested on a SHA-NI capable machine. I do not observe any obvious performance impact (but this is hard to measure, it's already very fast...).
    
    ACKs for top commit:
      laanwj:
        Code review ACK 8508473
      elichai:
        ACK 8508473
    
    Tree-SHA512: 07049cf1a33624c22df2be48b814d5636c037b368861eb13ee073bdce2b7c902a56e96518218961f55a2a1631a40825ded6dbbc28d7fe0e7fec267d704e39112
    laanwj committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    ce4e1f0 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    faa4243 View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#18702: build: fix ASLR for bitcoin-cli on Windows

    315a4d3 build: fix ASLR for bitcoin-cli on Windows (fanquake)
    
    Pull request description:
    
      ASLR is not currently working for the `bitcoin-cli.exe` binary. This is
      due to it not having a .reloc section, which is stripped by default by
      the mingw-w64 ld we use for gitian builds. A good summary of issues with
      ld and mingw-w64 is available in this thread:
      https://sourceware.org/bugzilla/show_bug.cgi?id=19011.
    
      All other Windows binaries that we distribute (bitcoind, bitcoin-qt,
      bitcoin-wallet, bitcoin-tx and test_bitcoin) do not suffer this issue,
      and currently having working ASLR. This is due to them exporting
      (inadvertent or not) libsecp256k1 symbols, and, as a result, the .reloc
      section is not stripped by ld.
    
      This change is a temporary workaround, also the same one described here:
      https://www.kb.cert.org/vuls/id/307144/, that causes main() to be
      exported. Exporting a symbol will mean that the .reloc section is not
      stripped, and ASLR will function correctly.
    
      Ultimately, this will be fixed by using a newer version of binutils (that has this [change](https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=dc9bd8c92af67947db44b3cb428c050259b15cd0)). Whether that's through bumping our gitian distro, or Guix.
    
      Related to bitcoin#18629, which has a bunch of additional information in the PR description. If you would like to verify whether or not ASLR is indeed working, with or without this change. One easy way to check is using a tool like [VMMap](https://docs.microsoft.com/en-us/sysinternals/downloads/vmmap).
    
      Here are the memory mappings for the 0.20.0rc1 `bitcoind.exe` and `bitcoin-cli.exe` binaries. You'll notice that over machine restarts, even though the image is marked `(ASLR)` (which I assume may be due to the header bit being set), no ASLR is actually occuring for `bitcoin-cli.exe`:
    
      #### bitcoind.exe
    
      ![bitcoind-1](https://user-images.githubusercontent.com/863730/79678203-74065c80-822b-11ea-90bc-9c883d0aeefa.png)
    
      ![bitcoind-2](https://user-images.githubusercontent.com/863730/79678204-7668b680-822b-11ea-9263-3e7ba22f904c.png)
    
      ![bitcoind-3](https://user-images.githubusercontent.com/863730/79678206-7963a700-822b-11ea-972f-af31a514b9b4.png)
    
      #### bitcoin-cli.exe
    
      ![bitcoin-cli-1](https://user-images.githubusercontent.com/863730/79678208-7ec0f180-822b-11ea-8480-a4b5d1762945.png)
    
      ![bitcoin-cli-2](https://user-images.githubusercontent.com/863730/79678213-81bbe200-822b-11ea-964d-994f58ff12b0.png)
    
      ![bitcoin-cli-3](https://user-images.githubusercontent.com/863730/79678215-84b6d280-822b-11ea-9cd6-fee2e239c003.png)
    
    ACKs for top commit:
      dongcarl:
        ACK 315a4d3
      laanwj:
        ACK 315a4d3
    
    Tree-SHA512: 95f4dc15420ed9bcdeacb763e11c3c7e563eec594a172746fa0346c13f97db3a8769357dffc89fea1e57ae67133f337b1013a73b584662f5b6c4d251ca20a2b1
    laanwj committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    5dcb061 View commit details
    Browse the repository at this point in the history
  10. doc: Add wallet release notes for 0.21.0

    MarcoFalke committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    facaefa View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#18575: bench: Remove requirement that all benches use s…

    …ame testing setup
    
    fa1fdb0 bench: Replace ::mempool globabl with test_setup.mempool (MarcoFalke)
    fab1170 bench: Remove requirement that all benches use RegTestingSetup (MarcoFalke)
    
    Pull request description:
    
      The benches have always set up one global testing setup. This makes it hard to pick no testing setup at all or one with different params.
    
      Fix this by removing any global state setup from the main `bench.cpp` and leave the setup to each individual bench.
    
      One reason to have one global testing setup is to set the datadir location to a tempdir to avoid reading or writing in the default datadir location. But bitcoin#13687 should prevent this already.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 7c98aea7725a20f4b9225221f4279b9e9f7257ed5c14712ad01ea80d87c3b0fed760b40f413892498bbb354a917ee02d4c575cbe8423a403b86755e8ee11f33b
    MarcoFalke committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    a7a6f1f View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    bb1ec36 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    9f5608c View commit details
    Browse the repository at this point in the history
  14. Merge bitcoin#18733: doc: Add wallet release notes for 0.21.0

    facaefa doc: Add wallet release notes for 0.21.0 (MarcoFalke)
    faa4243 Add release notes skeleton, so that notes can be filled easier (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      fjahr:
        ACK facaefa
      achow101:
        ACK facaefa
    
    Tree-SHA512: a17ab86e422ca3d3e53deffa7fecf09cdd9b816588deeded3a15e80a1c268ff1e8b56a0e052a417f1a091872099cd3d2b89993d4773a86516b0bdef880a949a0
    MarcoFalke committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    fb89af2 View commit details
    Browse the repository at this point in the history
  15. Merge bitcoin#18732: test: Remove unused, undocumented and misleading…

    … CScript.__add__
    
    faff9e4 test: Remove unused, undocumented and misleading CScript.__add__ (MarcoFalke)
    
    Pull request description:
    
      See the corresponding pull bitcoin#18612
    
    ACKs for top commit:
      laanwj:
        ACK faff9e4 provided it passes Travis
    
    Tree-SHA512: 5d9c4d5b6453c70b24a6960d3b42834e9b31f6dbb99ac47a6abfd85f2739d5372563e7188c22aceabeee1c37eb218bf580848356f4a77268d65f178a9419b269
    MarcoFalke committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    47b94a3 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    d5a31b7 View commit details
    Browse the repository at this point in the history
  17. test: Check submitblock return values

    MarcoFalke committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    fa26271 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2020

  1. Configuration menu
    Copy the full SHA
    3e38023 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#17509: gui: save and load PSBT

    764bfe4 [psbt] add file size limit (Sjors Provoost)
    1cd8dc2 [gui] load PSBT (Sjors Provoost)
    f689530 [gui] save PSBT to file (Sjors Provoost)
    1d05a9d Move DEFAULT_MAX_RAW_TX_FEE_RATE to node/transaction.h (Sjors Provoost)
    86e22d2 [util] GetFileSize (Sjors Provoost)
    6ab3aad [gui] send dialog: split on_sendButton_clicked (Sjors Provoost)
    
    Pull request description:
    
      This adds:
      * a dialog after Create Unsigned, which lets you save a PSBT file in binary format, e.g. to an SD card
      * a "Load PSBT" menu entry lets you pick a PSBT file. We broadcast the transaction if complete
    
      ## Save flow
      <img width="482" alt="Schermafbeelding 2020-01-04 om 20 39 34" src="https://user-images.githubusercontent.com/10217/71765684-ba60d580-2f32-11ea-8dea-0c4398eb6e15.png">
    
      <img width="287" alt="Schermafbeelding 2020-01-04 om 20 40 35" src="https://user-images.githubusercontent.com/10217/71765677-a0bf8e00-2f32-11ea-8172-12dfd34a89f3.png">
    
      <img width="594" alt="Schermafbeelding 2020-01-04 om 20 41 12" src="https://user-images.githubusercontent.com/10217/71765681-aa48f600-2f32-11ea-8e2c-c4f6bf9f5309.png">
    
      <img width="632" alt="Schermafbeelding 2020-01-04 om 20 41 28" src="https://user-images.githubusercontent.com/10217/71765691-d19fc300-2f32-11ea-97ff-70f5dd59987a.png">
    
      By default the file name contains the destination address(es) and amount(s).
    
      We only use the binary format for files, in order to avoid compatibility hell. If we do want to add base64 file format support, we should use a different extension for that (`.psbt64`?).
    
      ## Load flow
    
      Select a file:
      <img width="649" alt="Schermafbeelding 2020-01-04 om 21 08 57" src="https://user-images.githubusercontent.com/10217/71766089-2ba28780-2f37-11ea-875d-074794b5707d.png">
    
      Offer to send if complete:
    
      <img width="308" alt="Schermafbeelding 2020-01-04 om 21 09 06" src="https://user-images.githubusercontent.com/10217/71766088-2a715a80-2f37-11ea-807d-394c8b840c59.png">
    
      Tell user if signatures are missing, offer to copy to clipboard:
      <img width="308" alt="Schermafbeelding 2020-01-04 om 21 15 57" src="https://user-images.githubusercontent.com/10217/71766115-702e2300-2f37-11ea-9f62-a6ede499c0fa.png">
    
      Incomplete for another reason:
    
      <img width="309" alt="Schermafbeelding 2020-01-04 om 21 07 51" src="https://user-images.githubusercontent.com/10217/71766090-2c3b1e00-2f37-11ea-8a22-6188377b67a1.png">
    
    ACKs for top commit:
      instagibbs:
        re-ACK  bitcoin@764bfe4
      achow101:
        ACK 764bfe4
      jb55:
        Tested ACK 764bfe4
      jonatack:
        ACK 764bfe4
      promag:
        Code review ACK 764bfe4.
    
    Tree-SHA512: d284ed6895f3a271fb8ff879aac388ad217ddc13f72074725608e1c3d6d90650f6dc9e9e254479544dd71fc111516b02c8ff92158153208dc40fb2726b37d063
    meshcollider committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    4f802e5 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18671: wallet: Add BlockUntilSyncedToCurrentChain to du…

    …mpwallet
    
    fa60afc wallet: Add BlockUntilSyncedToCurrentChain to dumpwallet (MarcoFalke)
    
    Pull request description:
    
      dumpwallet includes the block hash in the output, so this method depends on the chainstate. According to the developer notes https://github.com/bitcoin/bitcoin/blame/e84a5f000493fe39adb2a5f22b43c3848dcd0a4f/doc/developer-notes.md#L1095 it must include a `BlockUntilSyncedToCurrentChain`.
    
      This is a minor fix and does not need backport, I think.
    
      It fixes test failures such as https://travis-ci.org/github/bitcoin/bitcoin/jobs/675487097#L2657 , which can only happen in master because the test was not backported.
    
    ACKs for top commit:
      promag:
        Code review ACK fa60afc.
      ryanofsky:
        Code review ACK fa60afc
      meshcollider:
        utACK fa60afc
    
    Tree-SHA512: 8df70b06b226b2cdf880dec9264adb72d66fd81b09b404fd1665a79e5f5236d26122eebf15df00fe71ee292b5c91b2dc23a0a42b2aa50a8d690604b23832723f
    meshcollider committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    e890c15 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18690: test: Check object hashes in wait_for_getdata

    9f5608c test: check for matching object hashes in wait_for_getdata (Danny Lee)
    
    Pull request description:
    
      Previously, `wait_for_getdata` only looked for the presence of a recent `"getdata"` message.  Additionally checking the object hashes inside the message should make tests involving `wait_for_getdata` more robust.
    
      `p2p_sendheaders.py` already overrides `wait_for_getdata` do this check; we can use the same approach consistently across all tests that call `wait_for_getdata`.
    
      This PR is progress towards bitcoin#18614 , but closing that issue would also involve some additional changes to `wait_for_getheaders`.
    
    ACKs for top commit:
      theStack:
        ACK 9f5608c 🍻
    
    Tree-SHA512: 8e7f95881c19631db014d4bb2399fea0d14686a32542f6ca3b60809744b0d684eac4e4c107c87143991f3cd0c2d4ab09d0c17486239768a9b40bee25f2e4d54a
    MarcoFalke committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    6413980 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b8580ca View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0109622 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    507b36d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e9ea95a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    eb37275 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0662030 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    6b8119a View commit details
    Browse the repository at this point in the history
  12. Add WALLET_FLAG_DESCRIPTORS

    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    96accc7 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    aeac157 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    6b13cd3 View commit details
    Browse the repository at this point in the history
  15. Introduce WalletDescriptor class

    WalletDescriptor is a Descriptor with other wallet metadata
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    3194a7f View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    d813266 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    834de03 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    78f8a92 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    db7177a View commit details
    Browse the repository at this point in the history
  20. Implement IsMine for DescriptorScriptPubKeyMan

    Adds a set of scriptPubKeys that DescriptorScriptPubKeyMan tracks.
    If the given script is in that set, it is considered ISMINE_SPENDABLE
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    2db7ca7 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    741122d View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    ec2f9e1 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    46c46ae View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    2363e9f View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    953feb3 View commit details
    Browse the repository at this point in the history
  26. Add IsSingleType to Descriptors

    IsSingleType will return whether the descriptor will give one or multiple scriptPubKeys
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    d1ec3e4 View commit details
    Browse the repository at this point in the history
  27. Implement several simple functions in DescriptorScriptPubKeyMan

    Implements a bunch of one liners: UpgradeKeyMetadata, IsFirstRun, HavePrivateKeys,
    KeypoolCountExternalKeys, GetKeypoolSize, GetTimeFirstKey, CanGetAddresses,
    RewriteDB
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    4cb9b69 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    46dfb99 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    e014886 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    58c7651 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    bfdd073 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    a775f7c View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    f866957 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    586b57a View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    f1ca5fe View commit details
    Browse the repository at this point in the history
  36. Implement GetSolvingProvider for DescriptorScriptPubKeyMan

    Internally, a GetSigningProvider function is introduced which allows for
    some private keys to be optionally included. This can be called with a
    script as the argument (i.e. a scriptPubKey from our wallet when we are
    signing) or with a pubkey. In order to know what index to expand the
    private keys for that pubkey, we need to also cache all of the pubkeys
    involved when we expand the descriptor. So SetCache and TopUp are
    updated to do this too.
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    d50c8dd View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    bde7c9f View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    84b4978 View commit details
    Browse the repository at this point in the history
  39. Implement FillPSBT in DescriptorScriptPubKeyMan

    FillPSBT will add our own scripts to the PSBT if those inputs are ours.
    If an input also lists pubkeys that we happen to know the private keys
    for, we will sign those inputs too.
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    72a9540 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    8b9603b View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    b713baa View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    82ae02b View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    1cb42b2 View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    ce24a94 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    f193ea8 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    1346e14 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    388ba94 View commit details
    Browse the repository at this point in the history
  48. Return error when no ScriptPubKeyMan is available for specified type

    When a CWallet doesn't have a ScriptPubKeyMan for the requested type
    in GetNewDestination, give a meaningful error. Also handle this in
    Qt which did not do anything with errors.
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    3c19fdd View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    886e0d7 View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    cf06062 View commit details
    Browse the repository at this point in the history
  51. tests: Add RPCOverloadWrapper which overloads some disabled RPCs

    RPCOverloadWrapper overloads some deprecated or disabled RPCs with
    an implementation using other RPCs to avoid having a ton of code churn
    around replacing those RPCs.
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    869f7ab View commit details
    Browse the repository at this point in the history
  52. Add a --descriptors option to various tests

    Adds a --descriptors option globally to the test framework. This will
    make the test create and use descriptor wallets. However some tests may
    not work with this.
    
    Some tests are modified to work with --descriptors and run with that
    option in test_runer:
    * wallet_basic.py
    * wallet_encryption.py
    * wallet_keypool.py
    * wallet_keypool_topup.py
    * wallet_labels.py
    * wallet_avoidreuse.py
    achow101 committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    223588b View commit details
    Browse the repository at this point in the history
  53. test: Fix intermittent error in mempool_reorg

    MarcoFalke committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    fae9866 View commit details
    Browse the repository at this point in the history
  54. test: Fix intermittent failure in wallet_importmulti

    MarcoFalke committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    fa8b9b5 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2020

  1. Merge bitcoin#18589: Fix naming of macOS SDK and clarify version

    eb37275 Fix naming of macOS SDK and clarify version (Andrew Chow)
    
    Pull request description:
    
      Fixes the `MacOSX10.14.sdk.tar.gz` creation command to have `MacOSX.sdk` be correctly named as `MacOSX10.14.sdk` and for the resulting file to be placed in the current directory. Gitian requires that `tar.gz` contains a folder named `MacOSX10.14.sdk` and the command did not do this originally. Having the file be placed in the current directory is a convenience so builders don't have to go find it.
    
      Also clarifies which version of Xcode to download and where it can be downloaded.
    
    ACKs for top commit:
      fanquake:
        ACK eb37275 - tested the macOS and Linux SDK extraction. Also noticed something seemingly broken with Apple `tar`, but will open an issue to follow up.
      Sjors:
        ACK eb37275 for the macOS instruction
    
    Tree-SHA512: d691e14711cf195999291dd6fb7ffe552c86f8b30d2b1a77e88b4db6050dd817ba128b047cf36d29b0bb0d4183e709b7c03aa27f31b64e562ea8cd948434ca55
    fanquake committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    d8ca51d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c4027e7 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18752: test: Fix intermittent error in mempool_reorg

    fae9866 test: Fix intermittent error in mempool_reorg (MarcoFalke)
    
    Pull request description:
    
      Example: https://travis-ci.org/github/bitcoin/bitcoin/jobs/677689899#L4717
    
      Also speed up tx relay and fix two pep8 errors while touching the file anyway.
    
    ACKs for top commit:
      vasild:
        utACK fae9866
    
    Tree-SHA512: 23a7894e71ad0e1a59c74c73643708fca21b505fa4e980038d554294063fd63c396669eefb233ffdffb0083968e51b702c643cb449df8f656dd8345a20f33907
    MarcoFalke committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    85bae24 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fd8e99d View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#18712: test: display command line options passed to sen…

    …d_cli() in debug log
    
    8f5dc88 test: display command line options passed to send_cli() in debug log (Jon Atack)
    
    Pull request description:
    
      as per bitcoin#18691 (comment), and revert two cli calls changed in bitcoin#18691 from rpc commands back to command line options (these were the only occurrences).
    
    ACKs for top commit:
      MarcoFalke:
        ACK 8f5dc88
    
    Tree-SHA512: fcb3eca00aa4099066028c90d5e50a02e074366e09a17f5f5b937d9f7562dd054ff65681aa0ad4c94f6de1e98b1e2b9ac4cd084ddc297010253989a80483b1b9
    MarcoFalke committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    d1aa0ae View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    fdceb63 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#18157: doc: fixing init.md documentation to not require…

    … rpcpassword
    
    a2a03c3 fixing documentation to not require rpcpassword (“jkcd”)
    
    Pull request description:
    
      Configuration section in [doc/init.md](https://github.com/bitcoin/bitcoin/blob/master/doc/init.md) says user must set rpcpassword in order to run bitcoind. Since [71cbea](bitcoin@71cbeaa) fixed the code to use a cookie for authentication, it is not mandatory to set rpcpassword in the configuration.
    
      Fixes bitcoin#16346
    
    ACKs for top commit:
      hebasto:
        ACK a2a03c3, modulo nit
    
    Tree-SHA512: a62816fef78bed32200bb278cfc7aacf6ea154a60fdf5181927e48b806a1bd694bdf3ccec8362f5e58aad694d636c63f540323d54d85b61deaa417b95b8b56eb
    MarcoFalke committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    7812889 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18757: test: Remove enumeration of expected deserializa…

    …tion exceptions in ProcessMessage(...) fuzzer
    
    fdceb63 fuzz: Remove enumeration of expected deserialization exceptions in ProcessMessage(...) fuzzer (practicalswift)
    
    Pull request description:
    
      Remove enumeration of expected deserialization exceptions in `ProcessMessage(...)` fuzzer.
    
      Closes bitcoin#18749.
    
    Top commit has no ACKs.
    
    Tree-SHA512: fe0411dd1e574fe635019d9e3329202798295c8be1b0c5cb9c092ecc27ab7d4d2883104d7bd781ff5d422d13480d858fc8a7f5578d09268d142ae966afb79002
    MarcoFalke committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    8c0f86f View commit details
    Browse the repository at this point in the history
  9. test: add coverage for -rpcwallet cli option

    and add -getinfo coverage with multiple wallets loaded.
    jonatack committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    2495110 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#18745: test: Check submitblock return values

    fa26271 test: Check submitblock return values (MarcoFalke)
    
    Pull request description:
    
      Add `assert_equal` in some tests to check the `submitblock` return value
    
    ACKs for top commit:
      robot-visions:
        ACK fa26271
    
    Tree-SHA512: 25d9effe82a4f6852184b9ac848f96336cc2cafb0bb07edb2792f00cd363f0759575bc9c164dd62f64425d3754028b4acd0675600c07d51277aa80bf66c6f960
    MarcoFalke committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    29637a5 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#18756: refactor: test: use wait_for_getdata() in p2p_co…

    …mpactblocks.py
    
    c4027e7 refactor: test: use wait_for_getdata() in p2p_compactblocks.py (Sebastian Falbesoner)
    
    Pull request description:
    
      The method `wait_for_getdata()` was recently changed to be more precise by waiting for a specified list of hashes, instead of only matching _any_ `getdata` message (see Issue bitcoin#18614 and PR  bitcoin#18690). This PR replaces the remaining occurences of manual inspection of `last_messages` with this call.
    
    ACKs for top commit:
      robot-visions:
        ACK c4027e7
    
    Tree-SHA512: e10b346742f235b6ee2ef1f32f7fd74406c1a277389f020fb9913a93e94cc9530e1e9414872b83c9d2ae652ebce2b09b2c8c8372260c1afb4e0e54fbf7a935b0
    MarcoFalke committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    a215c61 View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#18724: test: add coverage for -rpcwallet cli option

    2495110 test: add coverage for -rpcwallet cli option (Jon Atack)
    
    Pull request description:
    
      The bitcoin-cli `-rpcwallet=` option is an essential RPC/CLI option when more than one wallet is loaded (see `bitcoin-cli -help | grep -A5 rpcwallet` or `src/bitcoin-cli.cpp::L61`) and it currently has no test coverage.
    
      It is not only used by users, but also by the test framework and ~10 test files via `get_wallet_rpc()`.
    
      This PR adds coverage, while simultaneously improving the `-getinfo` coverage when multiple wallets are loaded. This is similar to the test coverage that would be added in bitcoin#18594.
    
    ACKs for top commit:
      robot-visions:
        ACK 2495110
    
    Tree-SHA512: caaa8b99fb8fa481ab2c6b2a287ed29720bb4553c3f66657462c44fa2990acaaf36cabeaaf81408678e5fdce4e105d729dd94b5ed8588dd1a6f2cb03fc25acf3
    MarcoFalke committed Apr 24, 2020
    Configuration menu
    Copy the full SHA
    5f19155 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2020

  1. test: use zero-argument super() shortcut (Python 3.0+)

    as defined in PEP 3135:
    
    "The new syntax:
    
        super()
    
    is equivalent to:
    
        super(__class__, <firstarg>)
    
    where __class__ is the class that the method was defined in, and <firstarg> is
    the first parameter of the method (normally self for instance methods, and cls
    for class methods)."
    theStack committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    0956e46 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#17383: Refactor: Move consts to their correct translati…

    …on units
    
    e9ea95a [net processing] Move all const declarations to top of net_processing.cpp (John Newbery)
    507b36d [validation] Move all const declarations to top of validation.h (John Newbery)
    0109622 [validation] Move validation-only consts to validation.cpp (John Newbery)
    b8580ca [net processing] Move net processing consts to net_processing.cpp (John Newbery)
    
    Pull request description:
    
      Following the main.cpp split, there are still some constants in the wrong places, eg net_processing constants in validation.h. Move them all to their rightful homes. At the same time, make them constexpr.
    
      Also move all const declarations to the top of their files, and ensure that they all have doxygen comments.
    
    ACKs for top commit:
      practicalswift:
        ACK e9ea95a -- patch looks correct
      MarcoFalke:
        ACK e9ea95a 🚉
    
    Tree-SHA512: 44d81da73c7be01e1d36b939789d793f297d3b94f84ea4e7ac853c621cc7054b5a05c7c9e7b83db506db44c16f344541be8f240d955694211e53a84c32b0d2c5
    MarcoFalke committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    9fac600 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18754: bench: add CAddrMan benchmarks

    a9b9577 bench: add CAddrMan benchmarks (Vasil Dimov)
    
    Pull request description:
    
      The added benchmarks exercise the public methods Add(), GetAddr(),
      Select() and Good().
    
    ACKs for top commit:
      naumenkogs:
        utACK a9b9577
      MarcoFalke:
        ACK a9b9577
    
    Tree-SHA512: af54b2fbd97db34faf4cc6c9bacb20d2c97d0aaddb9cf91b220bc2e09227b55345402ed17e34450745493e3a2b286c176c031cdeb477415570a757cee16b06a8
    MarcoFalke committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    6f51f6f View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18585: test: use zero-argument super() shortcut (Python…

    … 3.0+)
    
    0956e46 test: use zero-argument super() shortcut (Python 3.0+) (Sebastian Falbesoner)
    
    Pull request description:
    
      This mini-PR replaces all calls to `super(...)` with arguments with the zero-argument shortcut `super()` where applicable. See [PEP 3135](https://www.python.org/dev/peps/pep-3135/#specification):
    
      > The new syntax:
      >
      >     super()
      >
      > is equivalent to:
      >
      >     super(__class__, <firstarg>)
      >
      > where __class__ is the class that the method was defined in, and <firstarg> is
      > the first parameter of the method (normally self for instance methods, and cls
      > for class methods).
    
    ACKs for top commit:
      fanquake:
        ACK 0956e46
    
    Tree-SHA512: 4ac66fe7ab2be2e8a514e5fcfc41dbb298f21b23ebb7b7b0310d704b0b3cef8adf287a8d80346d1ea9418998c597b4f0ff1f66148d0d806bb43db6607e0fe1cf
    MarcoFalke committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    fd48e7a View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#18739: doc: Document how to fuzz Bitcoin Core using Hon…

    …ggfuzz
    
    bb1ec36 doc: Document how to fuzz Bitcoin Core using honggfuzz (practicalswift)
    
    Pull request description:
    
      Document how to fuzz Bitcoin Core using Honggfuzz.
    
    ACKs for top commit:
      fanquake:
        ACK bb1ec36 - did a couple quick runs on a severely under powered VM.
    
    Tree-SHA512: 117944c52763a5672f988c62fecb01b85f19f3827fad5582a51464aefdaac4d9a9cd81e2118199f6ea1bb3ab0893c8459ca3d1df7f67bfcf215d5e305225f210
    MarcoFalke committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    bab81f7 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#18688: fuzz: Run in parallel

    fa66280 fuzz: Run in parallel (MarcoFalke)
    
    Pull request description:
    
      Can be reviewed with `--ignore-all-space`
    
    ACKs for top commit:
      practicalswift:
        ACK fa66280 -- patch looks correct and the live demo in bitcoin-core/qa-assets#11 (comment) convinced me: this is good!
      fanquake:
        ACK fa66280 - this seems sane, and clearly provides some speedup. I'd post benchmarks but can't seem to get through a full run of `./test/fuzz/test_runner.py` without hitting at least a few crashes; see bitcoin#18763, 18762.
    
    Tree-SHA512: d3b545ca90c75bed27f08fe712399d0ed1ac36b13fb289c83e5606eee8dec4c19f5f5cf91758f0a6b1606d8d6b455fbe46df2588faffe7462b185bd34dc2baaf
    MarcoFalke committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    3e7c118 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#18744: test: Add fuzzing harnesses for various classes/…

    …functions in primitives/
    
    fd8e99d tests: Add fuzzing harness for functions in primitives/transaction.h (practicalswift)
    d5a31b7 tests: Add fuzzing harness for functions in primitives/block.h (practicalswift)
    
    Pull request description:
    
      Add fuzzing harnesses for various classes/functions in `primitives/`.
    
      See [`doc/fuzzing.md`](https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md) for information on how to fuzz Bitcoin Core. Don't forget to contribute any coverage increasing inputs you find to the [Bitcoin Core fuzzing corpus repo](https://github.com/bitcoin-core/qa-assets).
    
      Happy fuzzing :)
    
    Top commit has no ACKs.
    
    Tree-SHA512: ed54bd5b37ff5e40cfa8d3cd8c65d91a2f64fca87b6a5c3b8ddd6becd876ed172735fb53da4d00a86f318fb94517afd179e07cb28a43edf301ffe4dad703cca4
    MarcoFalke committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    65276c7 View commit details
    Browse the repository at this point in the history
  8. test: Remove raw-tx byte juggling in mempool_reorg

    MarcoFalke committed Apr 25, 2020
    Configuration menu
    Copy the full SHA
    fa48901 View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2020

  1. Merge bitcoin#18770: test: Remove raw-tx byte juggling in mempool_reorg

    fa48901 test: Remove raw-tx byte juggling in mempool_reorg (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      robot-visions:
        ACK fa48901
    
    Tree-SHA512: 2ae537a5b34e48d2954ba02d9e050ae1a99043080266d5decca3f983b13bc3ddcbee1f3f3c7457e16ee76ea17b9ce08cac2e3205cf46b5e3c3e4ca5f758f00de
    MarcoFalke committed Apr 26, 2020
    Configuration menu
    Copy the full SHA
    3cf464d View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18753: test: Fix intermittent failure in wallet_importm…

    …ulti
    
    fa8b9b5 test: Fix intermittent failure in wallet_importmulti (MarcoFalke)
    
    Pull request description:
    
      The wallet is async, so after generating a block, we must call `syncwithvalidationinterfacequeue`. Otherwise the timestamp will be of the previous block.
    
      https://travis-ci.org/github/bitcoin/bitcoin/jobs/677685073#L2648
    
    ACKs for top commit:
      promag:
        ACK fa8b9b5.
    
    Tree-SHA512: c21f9912aabbe22019d4ac9d0da06d6e46ef7f2a84d2781110e04c9836eb0ecf90a22cf2bae7f608be611670d17b20600135d1c5e5404aa1e762839816285fb4
    MarcoFalke committed Apr 26, 2020
    Configuration menu
    Copy the full SHA
    9ddfce6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e3ec492 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18669: log: Use Join() helper when listing log categories

    faec063 log: Use Join() helper when listing log categories (MarcoFalke)
    
    Pull request description:
    
      This removes the global `ListLogCategories` and replaces it with a one-line member function `LogCategoriesString`, which just calls `Join`.
    
      Should be a straightforward refactor to get rid of a few LOC.
    
    ACKs for top commit:
      laanwj:
        ACK faec063
      promag:
        ACK faec063, I also think it's fine as it is (re bitcoin#18669 (comment)).
    
    Tree-SHA512: 2f51f9ce1246eda5630015f3a869e36953c7eb34f311baad576b92d7829e4e88051c6189436271cd0a13732a49698506345b446b98fd28e58edfb5b62169f1c9
    MarcoFalke committed Apr 26, 2020
    Configuration menu
    Copy the full SHA
    ae32e5c View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2020

  1. wallet: Recommned absolute path for dumpwallet

    MarcoFalke committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    fa50170 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#16528: Native Descriptor Wallets using DescriptorScript…

    …PubKeyMan
    
    223588b Add a --descriptors option to various tests (Andrew Chow)
    869f7ab tests: Add RPCOverloadWrapper which overloads some disabled RPCs (Andrew Chow)
    cf06062 Correctly check for default wallet (Andrew Chow)
    886e0d7 Implement CWallet::IsSpentKey for non-LegacySPKMans (Andrew Chow)
    3c19fdd Return error when no ScriptPubKeyMan is available for specified type (Andrew Chow)
    388ba94 Change wallet_encryption.py to use signmessage instead of dumpprivkey (Andrew Chow)
    1346e14 Functional tests for descriptor wallets (Andrew Chow)
    f193ea8 add importdescriptors RPC and tests for native descriptor wallets (Hugo Nguyen)
    ce24a94 Add IsLegacy to CWallet so that the GUI knows whether to show watchonly (Andrew Chow)
    1cb42b2 Generate new descriptors when encrypting (Andrew Chow)
    82ae02b Be able to create new wallets with DescriptorScriptPubKeyMans as backing (Andrew Chow)
    b713baa Implement GetMetadata in DescriptorScriptPubKeyMan (Andrew Chow)
    8b9603b Change GetMetadata to use unique_ptr<CKeyMetadata> (Andrew Chow)
    72a9540 Implement FillPSBT in DescriptorScriptPubKeyMan (Andrew Chow)
    84b4978 Implement SignMessage for descriptor wallets (Andrew Chow)
    bde7c9f Implement SignTransaction in DescriptorScriptPubKeyMan (Andrew Chow)
    d50c8dd Implement GetSolvingProvider for DescriptorScriptPubKeyMan (Andrew Chow)
    f1ca5fe Implement GetKeypoolOldestTime and only display it if greater than 0 (Andrew Chow)
    586b57a Implement ReturnDestination in DescriptorScriptPubKeyMan (Andrew Chow)
    f866957 Implement GetReservedDestination in DescriptorScriptPubKeyMan (Andrew Chow)
    a775f7c Implement Unlock and Encrypt in DescriptorScriptPubKeyMan (Andrew Chow)
    bfdd073 Implement GetNewDestination for DescriptorScriptPubKeyMan (Andrew Chow)
    58c7651 Implement TopUp in DescriptorScriptPubKeyMan (Andrew Chow)
    e014886 Implement SetupGeneration for DescriptorScriptPubKeyMan (Andrew Chow)
    46dfb99 Implement writing descriptorkeys, descriptorckeys, and descriptors to wallet file (Andrew Chow)
    4cb9b69 Implement several simple functions in DescriptorScriptPubKeyMan (Andrew Chow)
    d1ec3e4 Add IsSingleType to Descriptors (Andrew Chow)
    953feb3 Implement loading of keys for DescriptorScriptPubKeyMan (Andrew Chow)
    2363e9f Load the descriptor cache from the wallet file (Andrew Chow)
    46c46ae Implement GetID for DescriptorScriptPubKeyMan (Andrew Chow)
    ec2f9e1 Implement IsHDEnabled in DescriptorScriptPubKeyMan (Andrew Chow)
    741122d Implement MarkUnusedAddresses in DescriptorScriptPubKeyMan (Andrew Chow)
    2db7ca7 Implement IsMine for DescriptorScriptPubKeyMan (Andrew Chow)
    db7177a Add LoadDescriptorScriptPubKeyMan and SetActiveScriptPubKeyMan to CWallet (Andrew Chow)
    78f8a92 Implement SetType in DescriptorScriptPubKeyMan (Andrew Chow)
    834de03 Store WalletDescriptor in DescriptorScriptPubKeyMan (Andrew Chow)
    d813266 Add a lock cs_desc_man for DescriptorScriptPubKeyMan (Andrew Chow)
    3194a7f Introduce WalletDescriptor class (Andrew Chow)
    6b13cd3 Create LegacyScriptPubKeyMan when not a descriptor wallet (Andrew Chow)
    aeac157 Return nullptr from GetLegacyScriptPubKeyMan if descriptor wallet (Andrew Chow)
    96accc7 Add WALLET_FLAG_DESCRIPTORS (Andrew Chow)
    6b8119a Introduce DescriptorScriptPubKeyMan as a dummy class (Andrew Chow)
    0662030 Introduce SetType function to tell ScriptPubKeyMans the type and internal-ness of it (Andrew Chow)
    
    Pull request description:
    
      Introducing the wallet of the glorious future (again): native descriptor wallets. With native descriptor wallets, addresses are generated from descriptors. Instead of generating keys and deriving addresses from keys, addresses come from the scriptPubKeys produced by a descriptor. Native descriptor wallets will be optional for now and can only be created by using `createwallet`.
    
      Descriptor wallets will store descriptors, master keys from the descriptor, and descriptor cache entries. Keys are derived from descriptors on the fly. In order to allow choosing different address types, 6 descriptors are needed for normal use. There is a pair of primary and change descriptors for each of the 3 address types. With the default keypool size of 1000, each descriptor has 1000 scriptPubKeys and descriptor cache entries pregenerated. This has a side effect of making wallets large since 6000 pubkeys are written to the wallet by default, instead of the current 2000. scriptPubKeys are kept only in memory and are generated every time a descriptor is loaded. By default, we use the standard BIP 44, 49, 84 derivation paths with an external and internal derivation chain for each.
    
      Descriptors can also be imported with a new `importdescriptors` RPC.
    
      Native descriptor wallets use the `ScriptPubKeyMan` interface introduced in bitcoin#16341 to add a `DescriptorScriptPubKeyMan`. This defines a different IsMine which uses the simpler model of "does this scriptPubKey exist in this wallet". Furthermore, `DescriptorScriptPubKeyMan` does not have watchonly, so with native descriptor wallets, it is not possible to have a wallet with both watchonly and non-watchonly things. Rather a wallet with `disable_private_keys` needs to be used for watchonly things.
    
      A `--descriptor` option was added to some tests (`wallet_basic.py`, `wallet_encryption.py`, `wallet_keypool.py`, `wallet_keypool_topup.py`, and `wallet_labels.py`) to allow for these tests to use descriptor wallets. Additionally, several RPCs are disabled for descriptor wallets (`importprivkey`, `importpubkey`, `importaddress`, `importmulti`, `addmultisigaddress`, `dumpprivkey`, `dumpwallet`, `importwallet`, and `sethdseed`).
    
    ACKs for top commit:
      Sjors:
        utACK 223588b (rebased, nits addressed)
      jonatack:
        Code review re-ACK 223588b.
      fjahr:
        re-ACK 223588b
      instagibbs:
        light re-ACK 223588b
      meshcollider:
        Code review ACK 223588b
    
    Tree-SHA512: 59bc52aeddbb769ed5f420d5d240d8137847ac821b588eb616b34461253510c1717d6a70bab8765631738747336ae06f45ba39603ccd17f483843e5ed9a90986
    meshcollider committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    eef90c1 View commit details
    Browse the repository at this point in the history
  3. ci: Run functional tests on mac again

    MarcoFalke committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    fac24de View commit details
    Browse the repository at this point in the history
  4. doc: Better explain GNU ld's dislike of ld64's options

    There's also now more than a single option being special cased for
    darwin.
    fanquake committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    cd24f37 View commit details
    Browse the repository at this point in the history
  5. ci: Add and document BASE_BUILD_DIR

    Co-Authored-By: Hennadii Stepanov <[email protected]>
    MarcoFalke and hebasto committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    fae49f6 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#18777: wallet: Recommend absolute path for dumpwallet

    fa50170 wallet: Recommned absolute path for dumpwallet (MarcoFalke)
    
    Pull request description:
    
      Avoids misunderstandings such as bitcoin#9564
    
    ACKs for top commit:
      kristapsk:
        utACK fa50170
    
    Tree-SHA512: f675ef607992857ffeb556a2945b5436a70b39c5d83f05a8be15a6fccc84cbe9d03e52f8239e28d159e41ed7c6f119b7a38e8ab327029f04609f63c559c12c49
    MarcoFalke committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    8bdb213 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2020

  1. Merge bitcoin#18778: ci: Run functional tests on mac again

    fac24de ci: Run functional tests on mac again (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      hebasto:
        ACK fac24de, verified travis build log.
    
    Tree-SHA512: 406282a7ac03e5c193830b727366c7b1350639f1850aff951bf7ddd4b0c3e3ffb396b950ccb3a64ddc59500fa2739766f3c34806b4d144bc4535bb2bd765b959
    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    5352d14 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18629: scripts: add PE .reloc section check to security…

    …-check.py
    
    3e38023 scripts: add PE .reloc section check to security-check.py (fanquake)
    
    Pull request description:
    
      The `ld` in binutils has historically had a few issues with PE binaries, there's a good summary in this [thread](https://sourceware.org/bugzilla/show_bug.cgi?id=19011).
    
      One issue in particular was `ld` stripping the `.reloc` section out of PE binaries, even though it's required for functioning ASLR. This was [reported by a Tor developer in 2014](https://sourceware.org/bugzilla/show_bug.cgi?id=17321) and they have been patching their [own binutils](https://gitweb.torproject.org/builders/tor-browser-build.git/tree/projects/binutils) ever since. However their patch only made it into binutils at the [start of this year](https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=dc9bd8c92af67947db44b3cb428c050259b15cd0). It adds an `--enable-reloc-section` flag, which is turned on by default if you are using `--dynamic-base`. In the mean time this issue has also been worked around by other projects, such as FFmpeg, see [this commit](TheRyuu/FFmpeg@91b668a).
    
      I have checked our recent supported Windows release binaries, and they do contain a `.reloc` section. From what I understand, we are using all the right compile/linker flags, including `-pie` & `-fPIE`, and have never run into the crashing/entrypoint issues that other projects might have seen.
    
      One other thing worth noting here, it how Debian/Ubuntu patch the binutils that they distribute, because that's what we end up using in our gitian builds.
    
      In the binutils-mingw-w64 in Bionic (18.04), which we currently use in gitian, PE hardening options/security flags are enabled by default. See the [changelog](https://changelogs.ubuntu.com/changelogs/pool/universe/b/binutils-mingw-w64/binutils-mingw-w64_8ubuntu1/changelog) and the [relevant commit](https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64/-/commit/452b3013b8280cbe35eaeb166a43621b88d5f8b7).
    
      However in Focal (20.04), this has now been reversed. PE hardening options are no-longer the default. See the [changelog](https://changelogs.ubuntu.com/changelogs/pool/universe/b/binutils-mingw-w64/binutils-mingw-w64_8.8/changelog) and [relevant commit](https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64/-/commit/7bd8b2fbc242a8c2fc2217f29fd61f94d3babf6f), which cites same .reloc issue mentioned here.
    
      Given that we explicitly specify/opt-in to everything that we want to use, the defaults aren't necessarily an issue for us. However I think it highlights the importance of continuing to be explicit about what we want, and not falling-back or relying on upstream.
    
      This was also prompted by the possibility of us doing link time garbage collection, see bitcoin#18579 & bitcoin#18605. It seemed some sanity checks would be worthwhile in-case the linker goes haywire while garbage collecting.
    
      I think Guix is going to bring great benefits when dealing with these kinds of issues. Carl you might have something to say in that regard.
    
    ACKs for top commit:
      dongcarl:
        ACK 3e38023
    
    Tree-SHA512: af14d63bdb334bde548dd7de3e0946556b7e2598d817b56eb4e75b3f56c705c26aa85dd9783134c4b6a7aeb7cb4de567eed996e94d533d31511f57ed332287da
    fanquake committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    ac21090 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18556: build: Drop make dist in gitian builds

    2aa48ed refactor: Drop unused ${WRAP_DIR}/${HOST} directory (Hennadii Stepanov)
    1362be0 build: Drop make dist in gitian builds (Hennadii Stepanov)
    
    Pull request description:
    
      After the merge of bitcoin#18331, the packaged source tarball is created by `git archive`, but the binaries are built from another one which is made by `make dist`.
    
      With this PR the only source tarball, created by `git archive`, is used both for binaries building and for packaging to users.
    
      Close bitcoin#16588.
      Close bitcoin#18547.
    
      As a good side-effect, bitcoin#18349 becomes redundant.
    
      **Change in behavior**
    
      The following variables https://github.com/bitcoin/bitcoin/blob/1b151e3ffce7c1a2ee46bf280cc1d96775d1f91e/configure.ac#L2-L6
    
      are no longer used for naming of directories and tarballs.
    
      Instead of them the gitian descriptors use a git tag (if available) or a commit hash.
    
      ---
    
      Also a small refactor commit picked from bitcoin#18404.
    
    ACKs for top commit:
      dongcarl:
        ACK 2aa48ed
      MarcoFalke:
        ACK 2aa48ed
      fanquake:
        ACK 2aa48ed - I've had a quick look over this, and don't want to block merging if this actually gets as closer to finally having this all sorted out. Obviously we've still got bitcoin#18741, and after speaking to Carl this morning, there will likely be even more changes after that (not Guix specific).
    
    Tree-SHA512: d3b16f87e48d1790a3264940c28acd5d881bfd10f3ce94fb0c8a6af76d8039289d01e0cd4972adac49ae24362857251f6c1e5e09e3e9fbf636c10708b4015a7c
    fanquake committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    65fb3df View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18769: qt: remove bug fix for Qt < 5.5

    e3ec492 qt: remove todo bug fix for old versions of Qt (10xcryptodev)
    
    Pull request description:
    
      Remove the code used to fix a Qt bug in versions before Qt 5.5.0 as described in this link https://bugreports.qt.io/browse/QTBUG-43473
    
      Now the minimum requirement is Qt 5.5.1 as described in https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md
    
      This code is not necessary anymore
    
    ACKs for top commit:
      hebasto:
        re-ACK e3ec492, since the [previous review](bitcoin#18769 (review)) only the prefix of the commit message has been changed.
    
    Tree-SHA512: 57802974fccae863dde0e186847db09832b2433b11e8410a0137b27f1ae8a95bdcd9206a5ea0d79f7a2b56adc6b4bac8bb0c4db583158db36a349a6b28b81aac
    fanquake committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    b9ba76f View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#18779: doc: Better explain GNU ld's dislike of ld64's o…

    …ptions
    
    cd24f37 doc: Better explain GNU ld's dislike of ld64's options (fanquake)
    
    Pull request description:
    
      There's also now more than a single option being special cased for
      darwin. If we didn't special case these options they would still end
      up on the link line and the binaries produced would just segfault.
    
      I'm going to plug bitcoin#17874 here as well, because adding
      `-fatal-warnings` to our `AX_CHECK_LINK_FLAG` calls would
      mostly prevent this sort of option mangling from happening.
    
      An example of the warning behaviour:
      ```bash
      echo "int main() {}" | g++ -x c++ -std=c++11 -Wl,-dead_strip -
      /usr/bin/ld: warning: cannot find entry symbol ad_strip; defaulting to 0000000000001040
    
      nm -C a.out
      0000000000001000 t _init
      0000000000001040 T _start
                       U ad_strip
      ```
    
    ACKs for top commit:
      dongcarl:
        ACK cd24f37
    
    Tree-SHA512: 8c5ff11b647e7d44dbb3f509a07caf8606a6b481c114403f0de72b3ad65395dbe9a3436e731ae1b46a823431ed23c3c6aacab8942d78629d59cd8c258c5dbf02
    fanquake committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    9fb95ae View commit details
    Browse the repository at this point in the history
  6. ci: Document why tests can not be run on mac

    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    fa72a75 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#18799: ci: Document why tests can not be run on mac

    fa72a75 ci: Document why tests can not be run on mac (MarcoFalke)
    
    Pull request description:
    
      Fixes bitcoin#18794
    
    Top commit has no ACKs.
    
    Tree-SHA512: 297652eda412aa8cf7255e20a6f294d22773dad8637a3d7b5204f3b638e911ce5b2e40e85f81395a34c1b5a5b497665944c2d6ea17c70c30c0c9e0ab553f956e
    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    ad04130 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18663: doc: mention build docs in README.md

    bda62e8 Adding build instructions to Bitcoin Core, fixes bitcoin#18658 (Saahil Shangle)
    
    Pull request description:
    
      Making the instructions for building Bitcoin Core more clear in the main `README.md` will reduce confusion between the `build_msvc` and `doc` folders.
    
    ACKs for top commit:
      laanwj:
        ACK bda62e8
    
    Tree-SHA512: ee4c394661eba48d4229e3d1e9ddb67ccb79589429bfa9986cb0242cd615d1f3cc5332063562c1e89c0cdd9ae2e609f61e8bfb209926d8363d35d3da6d94ae9c
    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    6e3fc74 View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#18735: ci: Add and document BASE_BUILD_DIR

    fae49f6 ci: Add and document BASE_BUILD_DIR (MarcoFalke)
    
    Pull request description:
    
      Also fixes bitcoin#18768
    
    ACKs for top commit:
      hebasto:
        re-ACK fae49f6, which is essentially the same as the previously [reviewed changes](bitcoin#18735 (review)).
    
    Tree-SHA512: 216565a05ccd513dd9f114b2333d3c283fd71914d32f9b05f145cb7c70633b083ff8ef60798d6f22f4be6a4d652b03806551fd74b5b596c92968501a4d9726d2
    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    a483ffd View commit details
    Browse the repository at this point in the history
  10. test: Fix wallet_bumpfee intermittent error

    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    fa301fe View commit details
    Browse the repository at this point in the history
  11. tests: Add missing sync_all to wallet_importdescriptors.py

    node1 will sometimes do sendtoaddress before it has received a funding
    transaction which will cause the test to fail. sync_all to ensure it
    gets the transaction first.
    achow101 committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    7b2b06d View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#18765: test: Fix wallet_bumpfee intermittent error

    fa301fe test: Fix wallet_bumpfee intermittent error (MarcoFalke)
    
    Pull request description:
    
      Remove incorrect and undocumented `connect_nodes(self.nodes[0], 1)`.
    
      Issue is that transactions are re-relayed (going full circle) between the two nodes, that have two connections between each other.
    
      https://travis-ci.org/github/bitcoin/bitcoin/jobs/679201559#L6992
    
      Also fix some pep8 while touching the file
    
      This bug has been introduced by accident in c1dde3a
    
    ACKs for top commit:
      achow101:
        ACK fa301fe
    
    Tree-SHA512: a6565ca30dbe44b02e3f58f159d2515c2ea4a74030118fafc1a3391ce980a4b6d4505dcf51315fda24843f72550a7dea7407b877b3b796883dd73d3b6f009e6f
    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    6a60bfc View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#18805: tests: Add missing sync_all to wallet_importdesc…

    …riptors.py
    
    7b2b06d tests: Add missing sync_all to wallet_importdescriptors.py (Andrew Chow)
    
    Pull request description:
    
      node1 will sometimes do sendtoaddress before it has received a funding transaction which will cause the test to fail. sync_all to ensure it gets the transaction first.
    
      Fixes bitcoin#18800
    
    ACKs for top commit:
      instagibbs:
        ACK 7b2b06d The wallet endpoint right after is indeed node 1.
    
    Tree-SHA512: b610a771d062b5f955cd70b34337577a1ab8dacbf4be20aa74e1e8234495b0be9faff138eb1713f29decb5574446e0583e221bc2c9a6eea13611b422ea3a296a
    MarcoFalke committed Apr 28, 2020
    Configuration menu
    Copy the full SHA
    ba348db View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2020

  1. Configuration menu
    Copy the full SHA
    132e05c View commit details
    Browse the repository at this point in the history
  2. Part 2/2: Remove mapLinks in favor of entry inlined structs with iter…

    …ator type erasure. Finish by updating all callsite return types
    JeremyRubin committed Jul 9, 2020
    Configuration menu
    Copy the full SHA
    a1113b1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    af60b9f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8ac8161 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    53d1e55 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    bf338b9 View commit details
    Browse the repository at this point in the history