1. 05 May, 2021 2 commits
  2. 04 May, 2021 10 commits
    • +flatcloud0b3's avatar
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21849: fuzz: Limit toxic test globals to their respective scope · 3f8f238d
      MarcoFalke authored
      cf83b82c fuzz: Limit toxic test globals to their respective scope (MarcoFalke)
      
      Pull request description:
      
        Globals in one fuzz target are toxic to all other fuzz targets, because we link all fuzz targets into one binary. Any code called by constructing the global will affect all other targets. This leads to incorrect coverage stats, false-positive crashes, ...
      
      ACKs for top commit:
        practicalswift:
          cr ACK cf83b82c: non-toxic is better than toxic!
        laanwj:
          Code review ACK cf83b82c
      
      Tree-SHA512: 5b3a37bcb36fce4160c94f877b2c07704527e3e1842092375c793d2eca77b996ae62889326094020855666bb34fa019fcfe92e8ff8430ce0372227f03ab2b907
      3f8f238d
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21852: ci: Add msan fuzz config · a1c6434e
      MarcoFalke authored
      fa0422c2 ci: Add msan fuzz config (MarcoFalke)
      fa399a76 ci: Use clang-12 in msan task (MarcoFalke)
      fab30174 ci: Set BASE_SCRATCH_DIR early, so that it can be used in test configs (MarcoFalke)
      
      Pull request description:
      
        Similar to the valgrind config, this config is not run by any ci task in this repo, but it can be used by other repos or self-hosted infrastructure.
      
      ACKs for top commit:
        practicalswift:
          cr ACK fa0422c2: patch looks correct
      
      Tree-SHA512: 2122ac0948978a7b952efc80d4aa3674b27d48c6166e0ce917c61ac4ee6b68d701a83e5f71ee6868c208885ee45aae409ca022ebcb23ccbe37819a8c36e34872
      a1c6434e
    • MarcoFalke's avatar
      ci: Add msan fuzz config · fa0422c2
      MarcoFalke authored
      fa0422c2
    • MarcoFalke's avatar
      ci: Use clang-12 in msan task · fa399a76
      MarcoFalke authored
      fa399a76
    • MarcoFalke's avatar
      ci: Set BASE_SCRATCH_DIR early, so that it can be used in test configs · fab30174
      MarcoFalke authored
      Can be reviewed with --color-moved=dimmed-zebra
      fab30174
    • fanquake's avatar
      Merge bitcoin/bitcoin#21812: ci: Enable D_GLIBCXX_DEBUG for multiprocess task · 0ca8b7e7
      fanquake authored
      fa44f511 ci: Clarify that previous_releases task is using DEBUG (MarcoFalke)
      fad0f21c ci: Use clang in multiprocess task to avoid OOM (MarcoFalke)
      faeabef4 ci: Enable D_GLIBCXX_DEBUG for multiprocess task (MarcoFalke)
      
      Pull request description:
      
        Enable `-D_GLIBCXX_DEBUG` via the depends `DEBUG` flag. Also `--enable-debug` to get debug symbols in traces.
      
      ACKs for top commit:
        hebasto:
          ACK fa44f511, I have reviewed the code and it looks OK, I agree it can be merged, and CI is green.
      
      Tree-SHA512: ab2a216bb44ee462f9dd181ec9025962502bd4201a1118ff52b6a193398e7ea3ca465a45a5eb341e308758fc3ef34ea3521f8a1f85ed64478ef3c1f6c1b8b141
      0ca8b7e7
    • W. J. van der Laan's avatar
      Merge bitcoin/bitcoin#21825: net: add I2P hardcoded seeds · ab9a566a
      W. J. van der Laan authored
      142e2da4 net: add I2P seeds to chainparamsseeds (Jon Atack)
      e01f173f contrib: add a few I2P seed nodes (Jon Atack)
      ea269c7e contrib: parse I2P addresses in generate-seeds.py (Jon Atack)
      
      Pull request description:
      
        Follow-up to #21560 that updated the fixed seeds infra for BIP155 addresses and then added Tor v3 ones:
      
        - Update contrib/generate-seeds.py to parse I2P addresses
      
        - Add a few I2P nodes to contrib/seeds/nodes_main.txt
      
        - Run generate-seeds.py and add the I2P seeds to chainparamsseeds.h
      
        Reviewers, see contrib/seeds/README.md for more info and feel free to use the following CLI one-liner to check for and propose additional seeds for contrib/seeds/nodes_main.txt. You can also see how many I2P peers your node knows with cli -addrinfo.
      
        ```rake
        bitcoin-cli getnodeaddresses 0 | jq '.[] | (select(.address | contains(".b32.i2p"))) | .address' | sort
        ```
      
        I verified the I2P addresses are correctly BIP155-serialized/deserialized by building with all seeds removed from chainparamsseeds.h except those added here, restarting with `-datadir=newdir -dnsseed=0` and running rpc ` getnodeaddresses 0` that initially returns only the new I2P addresses.
      
      ACKs for top commit:
        laanwj:
          ACK 142e2da4
        vasild:
          ACK 142e2da4
      
      Tree-SHA512: 040576012d5f1f034e2bd566ad654a6fdfd8ff7f6b12fa40c9fda1e948ebf8417fcea64cfc14938a41439370aa4669bab3e97274f9d4f9a6906fa9520afa9cf8
      ab9a566a
    • MarcoFalke's avatar
      cf83b82c
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21840: test: Misc refactor to get rid of &foo[0] raw pointers · e2d4e67a
      MarcoFalke authored
      fa8a8884 bench: Remove duplicate constants (MarcoFalke)
      000098f9 test: Use throwing variant accessor (MarcoFalke)
      fa2197c8 test: Use loop to register RPCs (MarcoFalke)
      
      Pull request description:
      
        Simplify test code
      
      ACKs for top commit:
        Empact:
          Code Review ACK fa8a8884
        practicalswift:
          cr ACK fa8a8884
        promag:
          Code review ACK fa8a8884.
      
      Tree-SHA512: 6a5bebaa9a3f43e9c332f4fbff606e9ece6dc8b95a769980082cc022f8e9bde6083c1e4a0145dcbf3741f514d6e97b4198f201a1bf1370ebf43bd3a5c0f85981
      e2d4e67a
  3. 03 May, 2021 13 commits
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21846: fuzz: Add `-fsanitize=integer` suppression needed... · bf5e6a77
      MarcoFalke authored
      Merge bitcoin/bitcoin#21846: fuzz: Add `-fsanitize=integer` suppression needed for RPC fuzzer (`generateblock`)
      
      575792e6 fuzz: Add -fsanitize=integer suppression needed for RPC fuzzer (practicalswift)
      
      Pull request description:
      
        Add `-fsanitize=integer` suppression needed for RPC fuzzer (`generateblock`).
      
        Context: https://github.com/bitcoin-core/qa-assets/pull/59/checks?check_run_id=2494624259
      
        ```
        miner.cpp:130:21: runtime error: implicit conversion from type 'int64_t' (aka 'long') of value 244763573890 (64-bit, signed) to type 'uint32_t' (aka 'unsigned int') changed the value to 4245405314 (32-bit, unsigned)
            #0 0x56143974eaf3 in BlockAssembler::CreateNewBlock(CScript const&) miner.cpp:130:21
            #1 0x56143993690d in generateblock()::$_4::operator()(RPCHelpMan const&, JSONRPCRequest const&) const rpc/mining.cpp:370:127
        ```
      
      ACKs for top commit:
        practicalswift:
          > review ACK [575792e6](https://github.com/bitcoin/bitcoin/commit/575792e6ffe23c8236a1f8431f6be445e448809b), but this function shouldn't be called by the rpc fuzzer, at least not without sanitizing num_blocks
        MarcoFalke:
          review ACK 575792e6
      
      Tree-SHA512: c2133d1064bf17df0e7749ef4a0f7664b5c8082040491a1035d39f0c6e5d96997b347ef2354411e285c7f1f973e34515f1c3c88eb3de60fab64ca4d2adf6dd74
      bf5e6a77
    • practicalswift's avatar
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21662: build: update Boost download URL · 8e1c0684
      MarcoFalke authored
      36c10b9f build,boost: update download url. (fdov)
      
      Pull request description:
      
        - bintray is closing.
            - updated to jfrog.io.
      
        For reference:
        https://github.com/boostorg/boost/issues/502
      
      ACKs for top commit:
        Sjors:
          ACK 36c10b9f
        hebasto:
          ACK 36c10b9f
      
      Tree-SHA512: 6746781296c3f395a2824750cf1a578ef9a2d6b8d5c4da196a8da5d084aea01f7f2583b41b2aade7bb94dd02be71efcfd6edf7491a1a25f2d36240b18322a68e
      8e1c0684
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21810: fuzz: Various RPC fuzzer follow-ups · ea71726a
      MarcoFalke authored
      5252f86e fuzz: Reduce maintenance requirements by allowing RPC annotations also for conditionally available RPC commands (such as wallet commands) without the fragility of #ifdef forests (practicalswift)
      54549dda fuzz: RPC fuzzer post-merge follow-ups. Remove unused includes. Update list of fuzzed RPC commands. (practicalswift)
      
      Pull request description:
      
        Various RPC fuzzer follow-ups:
        * Remove unused includes.
        * Update list of fuzzed RPC commands.
        * Reduce maintenance requirements by allowing RPC annotations also for conditionally available RPC commands (such as wallet commands) without the fragility of `#ifdef` forests.
      
        Context: https://github.com/bitcoin/bitcoin/pull/21169#pullrequestreview-646723483
      
      ACKs for top commit:
        MarcoFalke:
          Concept ACK 5252f86e
      
      Tree-SHA512: 286d70798131706ffb157758e1c73f7f00ed96ce120c7d9dc849e672b283f1362df47b206cfec9da44d5debb5869225e721761dcd5c38a7d5d1019dc6c912ab2
      ea71726a
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21823: script: update REVIEWERS · 3692097d
      MarcoFalke authored
      48bd9ebc script: update REVIEWERS (Adam Jonas)
      
      Pull request description:
      
        Meta: `git show a06eb03d` indicates the commit was first made one year ago and the PR was merged in September 2020.
      
        It might be time for an update, if automated review requests via DrahtBot are operational.
      
        "Regular contributors are free to add their names to specific directories or files provided that they are willing to provide a review."
      
        Perhaps we can compile and squash suggested updates here, per that guideline.
      
      ACKs for top commit:
        practicalswift:
          ACK 48bd9ebc: patch looks correct :)
        adamjonas:
          ACK 48bd9ebc. I ran through the new files added with `*`s using `git ls-files`.
        hebasto:
          ACK 48bd9ebc, I have reviewed the code and it looks OK, I agree it can be merged.
      
      Tree-SHA512: 770fd60d78bd64100814c72211e4bd97718c87a55a4c91e136fababa0149d12cdc1b3e89462dee3a55e5f51d3263420cc6d856868469eb9a72ff8c930859c54f
      3692097d
    • Adam Jonas's avatar
      script: update REVIEWERS · 48bd9ebc
      Adam Jonas authored
      48bd9ebc
    • MarcoFalke's avatar
      bench: Remove duplicate constants · fa8a8884
      MarcoFalke authored
      fa8a8884
    • MarcoFalke's avatar
      test: Use throwing variant accessor · 000098f9
      MarcoFalke authored
      It does not matter if the tests fail due to a BOOST_CHECK failure or
      due to a thrown exception. Prefer the exception because it is less
      code.
      
      Example fail with the throwing accessor:
      
      unknown location(0): fatal error: in "script_standard_tests/script_standard_ExtractDestinations": std::bad_variant_access: std::get: wrong index for variant
      test/script_standard_tests.cpp(314): last checkpoint
      
      *** 1 failure is detected in the test module "Bitcoin Core Test Suite"
      000098f9
    • MarcoFalke's avatar
      test: Use loop to register RPCs · fa2197c8
      MarcoFalke authored
      The same loop is used by the server, so no need for
      the tests to do this differently.
      fa2197c8
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21775: p2p: Limit m_block_inv_mutex · b8593616
      MarcoFalke authored
      fac96d02 p2p: Limit m_block_inv_mutex (MarcoFalke)
      
      Pull request description:
      
        Keeping the lock longer than needed is confusing to reviewers and thread analysis. For example, keeping the lock while appending tx-invs, which requires the mempool lock, will tell thread analysis tools an incorrect lock order of `(1) m_block_inv_mutex, (2) pool.cs`.
      
      ACKs for top commit:
        Crypt-iQ:
          crACK fac96d02
        jnewbery:
          utACK fac96d02
        theStack:
          Code-Review ACK fac96d02
      
      Tree-SHA512: fcfac0f1f8b16df7522513abf716b2eed3d2fc9153f231c8cb61f451e342f29c984a5c872deca6bab3e601e5d651874cc229146c9370e46811b4520747a21f2b
      b8593616
    • MarcoFalke's avatar
      Merge bitcoin/bitcoin#21750: net: remove unnecessary check of CNode::cs_vSend · 320e518b
      MarcoFalke authored
      9096b13a net: remove unnecessary check of CNode::cs_vSend (Vasil Dimov)
      
      Pull request description:
      
        It is not possible to have a node in `CConnman::vNodesDisconnected` and
        its reference count to be incremented - all `CNode::AddRef()` are done
        either before the node is added to `CConnman::vNodes` or while holding
        `CConnman::cs_vNodes` and the object being in `CConnman::vNodes`.
      
        So, the object being in `CConnman::vNodesDisconnected` and its reference
        count being zero means that it is not and will not start to be used by
        other threads.
      
        So, the lock of `CNode::cs_vSend` in `CConnman::DisconnectNodes()` will
        always succeed and is not necessary.
      
        Indeed all locks of `CNode::cs_vSend` are done either when the reference
        count is >0 or under the protection of `CConnman::cs_vNodes` and the
        node being in `CConnman::vNodes`.
      
      ACKs for top commit:
        MarcoFalke:
          review ACK 9096b13a 🏧
        jnewbery:
          utACK 9096b13a
      
      Tree-SHA512: 910899cdcdc8934642eb0c40fcece8c3b01b7e20a0b023966b9d6972db6a885cb3a9a04e9562bae14d5833967e45e2ecb3687b94d495060c3da4b1f2afb0ac8f
      320e518b
    • fanquake's avatar
      Merge bitcoin/bitcoin#19817: build: macOS toolchain bump · 77d569cc
      fanquake authored
      a5550f87 build: use -stdlib++-isystem with Clang 10 (fanquake)
      51d9d160 guix: use Clang 10 for the macOS cross compile (fanquake)
      b80a6af9 build: no longer patch threading out of ld64 (fanquake)
      c29cba44 build: Xcode 12.1, macOS SDK 10.15.6 (fanquake)
      9ed2f19d build: native cctools 973.0.1, ld64 609 (fanquake)
      f48f187c build: Clang 10.0.1 (Hennadii Stepanov)
      9b193cd2 build: libtapi 1100.0.11 (fanquake)
      
      Pull request description:
      
        Bumps our macOS toolchain to be using the following:
        * Clang 10.0.1 (gitian) & Clang 10.0.0 (Guix)
        * ld64 609
        * libtapi 1100.0.11
        * cctools  973.0.1
        * Xcode 12.1
        * macOS SDK 10.15.6
      
        which are currently the most recent releases available as open source. See upstream [`cctools`](https://github.com/tpoechtrager/cctools-port/commits/973.0.1-ld64-609) and [`libtapi`](https://github.com/tpoechtrager/apple-libtapi/tree/1100.0.11).
      
        This should improve the possibility of Apple ARM cross-compilation in depends.
      
        This also removes our [patching out of pthreads usage](https://github.com/bitcoin/bitcoin/blob/master/depends/patches/native_cctools/ld64_disable_threading.patch) in `ld64`. There have been multiple changes since `ld64 450.3`, which have likely fixed the non-determinism we were working around. i.e from [InputFiles.cpp](https://opensource.apple.com/source/ld64/ld64-609/src/ld/InputFiles.cpp.auto.html):
        ```cpp
        // <rdar://problem/15002251> make implicit dylib order be deterministic by sorting by install_name
        std::sort(implicitDylibs.begin(), implicitDylibs.end(), DylibByInstallNameSorter());
        ```
      
        ```cpp
        // <rdar://problem/42675402> ld64 output is not deterministic due to dylib processing order
        std::sort(unprocessedDylibs.begin(), unprocessedDylibs.end(), [](const ld::dylib::File* lhs, const ld::dylib::File* rhs) {
        return strcmp(lhs->path(), rhs->path()) < 0;
        });
        ```
      
        Guix Build:
        ```bash
        find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
        f6c3817b8fe5f7370299d1ae2533e4a3acd313ba9f9aa8d423a8956117e52dd5  guix-build-a5550f87/output/dist-archive/bitcoin-a5550f87.tar.gz
        4954dcf563c2d496b8d9fecd48f8e3f7fba2f319ffa254a5bc8ee12cfee6acf0  guix-build-a5550f87/output/x86_64-apple-darwin18/bitcoin-a5550f87-osx-unsigned.dmg
        8f6095b445c7f1a8e6accd86bb7f0696d5849402084927d2b726b7d557831c3a  guix-build-a5550f87/output/x86_64-apple-darwin18/bitcoin-a5550f87-osx-unsigned.tar.gz
        cc40f25477b4defc1617ae694313d80f307ddf6742fe6cc85c6bc0e215ef8be0  guix-build-a5550f87/output/x86_64-apple-darwin18/bitcoin-a5550f87-osx64.tar.gz
        ```
      
        Gitian Build:
        ```bash
        Generating report
        506a8abdefe559999b43dd9f14905b9b2b5a3363b1cd013d45ae47acc1f7ef6c  bitcoin-a5550f87-osx-unsigned.dmg
        f606997f74026dd12d110d683c6f116b40df324836904ef507dd7ac787e6ebe2  bitcoin-a5550f87-osx-unsigned.tar.gz
        5b495ef15f2c3260c2950921b61326912a9bf533cccd51e13818809fd225489e  bitcoin-a5550f87-osx64.tar.gz
        f6c3817b8fe5f7370299d1ae2533e4a3acd313ba9f9aa8d423a8956117e52dd5  src/bitcoin-a5550f87.tar.gz
        9eb0221e962d2839770963bd03c6c9e98e8bf3078566bee2ae42f06233a710fa  bitcoin-core-osx-22-res.yml
        Done.
        ```
      
      ACKs for top commit:
        hebasto:
          ACK a5550f87
      
      Tree-SHA512: 504c4b0f9cd3b939714a322298320c5bde07e9356a48a9a000060b36f8dce4d6134ed60c3a5188810476a28ec5b108733eabbc6fb8053231b9ea8a494cc91b12
      77d569cc
    • fanquake's avatar
      Merge bitcoin/bitcoin#20867: Support up to 20 keys for multisig under Segwit context · 60132382
      fanquake authored
      ebd4be43 doc: add release notes for 20867 (Antoine Poinsot)
      5aa50ab9 rpc/util: multisig: only check redeemScript size is <= 520 for P2SH (Antoine Poinsot)
      063df9e8 test/functional: standardness sanity checks for P2(W)SH multisig (Antoine Poinsot)
      ae0429d3 script: allow up to 20 keys in wsh() descriptors (Antoine Poinsot)
      9fc68faf script: match multisigs with up to MAX_PUBKEYS_PER_MULTISIG keys (Antoine Poinsot)
      
      Pull request description:
      
        As described in https://github.com/bitcoin/bitcoin/issues/20620 multisigs are currently limited to 16 keys in descriptors and RPC helpers, even for P2WSH and P2SH-P2WSH.
      
        This adds support for multisig with up to 20 keys (which are already standard) for Segwit v0 context for descriptors (`wsh()`, `sh(wsh())`) and RPC helpers.
      
        Fixes https://github.com/bitcoin/bitcoin/issues/20620
      
      ACKs for top commit:
        meshcollider:
          re-utACK ebd4be43
        instagibbs:
          re-ACK https://github.com/bitcoin/bitcoin/pull/20867/commits/ebd4be43cc945e643f91d3a91007b5a35bbbd5a1
      
      Tree-SHA512: 36141f10a8288010d17d5c4fe8d24878bcd4533b88a8aba3a44fa8f74ceb3182d70fee01427e0ab7f53ce7fab46c88c1cd3ac3b18ab8a10bd4a6b8b74ed79e46
      60132382
  4. 02 May, 2021 7 commits
  5. 01 May, 2021 8 commits