Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on May 20, 2023

  1. Merge #27688: doc: remove Security section from build-unix.md

    4bfcbbf doc: remove Security section from build-unix.md (fanquake)
    
    Pull request description:
    
      Our compile documentation isn't the right place for generic binary hardening notes, which are neither particularly Bitcoin-Core specific, or as relevant as they might have once been, i.e non-executable stacks are now just the norm.
    
      Just remove the notes for now, if someone has something more interesting/Bitcoin Core specific, it could be added in separate documentation in the future (maybe into the devwiki or similar).
    
      Split from #27685 (comment).
    
    ACKs for top commit:
      jarolrod:
        ACK 4bfcbbf
    
    Tree-SHA512: 01b523ba40353d6cafb5dbd6540b514d83a2dc4e462a068fb390ca7de45b78e4a329367f70527f1824006ebe43f8caeea4ad05ec60556d5a5bd0143e27bf6581
    fanquake committed May 20, 2023

Commits on May 19, 2023

  1. Merge #27021: Implement Mini version of BlockAssembler to calculate m…

    …ining scores
    
    6b605b9 [fuzz] Add MiniMiner target + diff fuzz against BlockAssembler (glozow)
    3f3f2d5 [unit test] GatherClusters and MiniMiner unit tests (glozow)
    59afcc8 Implement Mini version of BlockAssembler to calculate mining scores (glozow)
    56484f0 [mempool] find connected mempool entries with GatherClusters(…) (glozow)
    
    Pull request description:
    
      Implement Mini version of BlockAssembler to calculate mining scores
    
      Run the mining algorithm on a subset of the mempool, only disturbing the
      mempool to copy out fee information for relevant entries. Intended to be
      used by wallet to calculate amounts needed for fee-bumping unconfirmed
      transactions.
    
      From comments of sipa and glozow below:
    
      > > In what way does the code added here differ from the real block assembly code?
      >
      >    * Only operates on the relevant transactions rather than full mempool
      >    * Has the ability to remove transactions that will be replaced so they don't impact their ancestors
      >    * Does not hold mempool lock outside of the constructor, makes copies of the entries it needs instead (though I'm not sure if this has an effect in practice)
      >    * Doesn't do the sanity checks like keeping weight within max block weight and `IsFinalTx()`
      >    * After the block template is built, additionally calculates fees to bump remaining ancestor packages to target feerate
    
    ACKs for top commit:
      achow101:
        ACK 6b605b9
      Xekyo:
        > ACK [6b605b9](6b605b9) modulo `miniminer_overlap` test.
      furszy:
        ACK 6b605b9 modulo `miniminer_overlap` test.
      theStack:
        Code-review ACK 6b605b9
    
    Tree-SHA512: f86a8b4ae0506858a7b15d90f417ebceea5038b395c05c825e3796123ad3b6cb8a98ebb948521316802a4c6d60ebd7041093356b1e2c2922a06b3b96b3b8acb6
    glozow committed May 19, 2023
  2. Merge #27687: msvc: Provide ObjectFileName explicitly

    b8ed951 msvc: Provide `ObjectFileName` explicitly (Hennadii Stepanov)
    
    Pull request description:
    
      This PR is a follow-up to #26715.
    
      Fixes intermittent MSVC link [errors](https://cirrus-ci.com/task/6646912535756800).
    
    ACKs for top commit:
      sipsorcery:
        ACK b8ed951.
    
    Tree-SHA512: 4319ecf61b578ce66d240998d089b9bb0a42f89dcfcb1a73f648cd3915f566c773721dcff1feba27d393a743d121334ccb890b1a519173e35a156d6135821ef4
    fanquake committed May 19, 2023
  3. Merge #27695: test: Add test to check tx in the last block can be dow…

    …nloaded
    
    fa4c16b test: Add test to check tx in the last block can be downloaded (MarcoFalke)
    fadc849 test: Split up test_notfound_on_unannounced_tx test case (MarcoFalke)
    
    Pull request description:
    
      If a peer received an `inv` about a transaction, which was included in a block before receiving the corresponding `getdata`, it can be beneficial to send this transaction to the peer to aid compact block relay.
    
      Add a test for this to avoid breaking it in the future.
    
    ACKs for top commit:
      sdaftuar:
        ACK fa4c16b
      instagibbs:
        ACK fa4c16b
    
    Tree-SHA512: 1ec16dcc216dd29c849928e753158d45c409612e9ac528db16e5af465bb5b69cd42241ac6f67e5a4583b8e558eeba49fa0a0889a4247b3fb0053b2758eec9490
    fanquake committed May 19, 2023
  4. Merge #27458: build: Detect USDT the same way how it is used in the code

    b53cab0 build: Detect USDT the same way how it is used in the code (Hennadii Stepanov)
    
    Pull request description:
    
      In the code we do not use string literals.
    
      Also a check for `DTRACE_PROBE7` macro has been added as not all systems define`DTRACE_PROBE{6,7,8,9,10,11,12}` macros (e.g., FreeBSD).
    
    ACKs for top commit:
      0xB10C:
        ACK b53cab0
    
    Tree-SHA512: 74f49424d57bf1929f2b09edba1449cef5a1a2448161952da35302343f3003d5bedeab1417e166b656c5f629303e2de888550b1219e886a1b991b12b9c880794
    fanquake committed May 19, 2023
  5. Merge #27662: build: Bump minimum supported GCC to g++-9

    fa953f1 build: Bump minimum supported GCC to g++-9 (MarcoFalke)
    fa69955 ci: Bump centos:stream8 to centos:stream9 (MarcoFalke)
    fa6a755 ci: Document the false positive error for g++-9 (MarcoFalke)
    
    Pull request description:
    
      It is a bit frustrating to write valid C++ code only to realize that g++-8 fails to parse it later on.
    
      The only non-EOL operating system still shipping with g++-8 is CentOS Stream 8. I think it is reasonable for users of affected Linux distributions to:
    
      * Upgrade their operating system, or compiler to a supported version.
      * Alternatively, stay with a previous release of Bitcoin Core as long as it is supported.
    
      Fixes #27537
    
    ACKs for top commit:
      hebasto:
        ACK fa953f1
      fanquake:
        ACK fa953f1
    
    Tree-SHA512: b9cf7e763d3071e1e008c5010de19601d4773afe46d58cf869d3f59285c53240c739a1cd7235a5525ede1bbdf6b6cb6fb091c8fc314864a28d5b27a400bb7632
    fanquake committed May 19, 2023

Commits on May 18, 2023

  1. Merge #27556: wallet: fix deadlock in bdb read write operation

    69d4390 test: add coverage for wallet read write db deadlock (furszy)
    12daf6f walletdb: scope bdb::EraseRecords under a single db txn (furszy)
    043fcb0 wallet: bugfix, GetNewCursor() misses to provide batch ptr to BerkeleyCursor (furszy)
    
    Pull request description:
    
      Decoupled from #26644 so it can closed in favor of #26715.
    
      Basically, with bdb, we can't make a write operation while we are traversing the db with the same db handler. These two operations are performed in different txn contexts and cause a deadlock.
    
      Added coverage by using `EraseRecords()` which is the simplest function that executes this process.
    
      To replicate it, need bdb support and drop the first commit. The test will run forever.
    
    ACKs for top commit:
      achow101:
        ACK 69d4390
      hebasto:
        re-ACK 69d4390
    
    Tree-SHA512: b3773be78925f674e962f4a5c54b398a9d0cfe697148c01c3ec0d68281cc5c1444b38165960d219ef3cf1a57c8ce6427f44a876275958d49bbc0808486e19d7d
    achow101 committed May 18, 2023
  2. Merge #27698: doc: add historical release notes for 24.1 & 23.2

    e0f69a7 doc: add 24.1 release notes (fanquake)
    f1e6f2d doc: add 23.2 release notes (fanquake)
    
    Pull request description:
    
      Also for linking to from `Releases`.
    
    ACKs for top commit:
      achow101:
        ACK e0f69a7
    
    Tree-SHA512: d00d692ab477408842d2ae8575c3355433fb7f236a354317075a6de06f8fbe3b038ee8ccd349789ce1fca24c5fae63fad78521480c14425ce679cdee3307e210
    achow101 committed May 18, 2023
  3. doc: add 24.1 release notes

    fanquake committed May 18, 2023
  4. doc: add 23.2 release notes

    fanquake committed May 18, 2023
  5. Merge #27640: test: Return dict in MiniWallet::send_to

    faf4315 test: Return dict in MiniWallet::send_to (MarcoFalke)
    
    Pull request description:
    
      Returning a tuple has many issues:
    
      * If only one value is needed, it can not be indexed by name
      * If another value is added to the return value, all call sites need to be updated
    
      Bite the bullet now and update all call sites to fix the above issues.
    
    ACKs for top commit:
      brunoerg:
        crACK faf4315
      theStack:
        Code-review ACK faf4315
      stickies-v:
        Code review ACK faf4315
    
    Tree-SHA512: 8ce1aca237df21f04b3990d0e5fcb49cc408fe6404399d3769a64eae1b5218941157d9785fce1bd9e45140cf70e06c3aa42646ee8f7b57855beb784fc3ef0261
    fanquake committed May 18, 2023
  6. doc: remove Security section from build-unix.md

    Our compile documentation isn't the right place for genric binary
    hardening notes, which are neither particularly Bitcoin-Core specific,
    or as relevant as they might have once been, i.e non-executable stacks
    are now just the norm.
    
    Just remove the notes for now, if someone has
    something more interesting/Bitcoin Core specific, it could be added in
    separate documentation in the future (maybe into the devwiki or
    similar).
    
    Split from
    #27685 (comment).
    fanquake committed May 18, 2023
  7. Merge #27685: doc: Rework build-unix.md

    fa29651 doc: Rework build-unix.md (MarcoFalke)
    
    Pull request description:
    
      The doc has many issues:
    
      * The fist section contains outdated non-existing and confusing configure flags like `--enable-cxx` and `--disable-shared`, as well as edge-case expert options such as `BDB_PREFIX`. Fix that by removing the section and adding notes elsewhere, if applicable.
      * There are links to the depends system before instructions on how to simply build from system packages. Fix that by moving that later.
      * Also, remove sections that are duplicate with other depends READMEs.
    
    ACKs for top commit:
      fanquake:
        ACK fa29651
      TheCharlatan:
        ACK fa29651
    
    Tree-SHA512: 5348ddf3fa094c630d80b63033ca7b40ec0356427856f9a1075b31244f6bf8ec65cb2a738366e1174ef2fe7e0bf5cc249a62c58f458bbaf50668aceeac954820
    fanquake committed May 18, 2023
  8. Merge #27615: msvc: Rename libbitcoinconsensus to `libbitcoin_conse…

    …nsus` and other adjustments
    
    a94d75f msvc: Do not define `HAVE_CONSENSUS_LIB` (Hennadii Stepanov)
    cf6ff10 msvc: Clean up `libbitcoin_consensus` source files (Hennadii Stepanov)
    30aee01 scripted-diff: Rename `libbitcoinconsensus` to `libbitcoin_consensus` (Hennadii Stepanov)
    
    Pull request description:
    
      The current Autotools-based build system operates with two build artifacts:
      - [`LIBBITCOIN_CONSENSUS`](https://github.com/bitcoin/bitcoin/blob/3777c75d147954b24f770dc7781b27870eadf775/src/Makefile.am#L31) which is [defined as](https://github.com/bitcoin/bitcoin/blob/master/doc/design/libraries.md) "Stable, backwards-compatible consensus functionality used by _libbitcoin_node_ and _libbitcoin_wallet_"
      - [`LIBBITCOINCONSENSUS`](https://github.com/bitcoin/bitcoin/blob/3777c75d147954b24f770dc7781b27870eadf775/src/Makefile.am#L42) which is [defined as](https://github.com/bitcoin/bitcoin/blob/master/doc/design/libraries.md) "Shared library build of static _libbitcoin_consensus_ library"
    
      The way how the `libbitcoinconsensus.vcxproj` project is used in the MSVC build system obviously shows that it is the former use case.
    
      This PR makes the related adjustments to the MSVC build system.
    
    ACKs for top commit:
      sipsorcery:
        ACK a94d75f.
    
    Tree-SHA512: 1144e13ee2b428ce14be8f76729744830c502a07814eb03e2aa6b8e009d8936fd13743e3f36ef3f31fac0e3979eb9af23e6a1364f151df49b3ae18dbd14cbf99
    fanquake committed May 18, 2023
  9. Merge #27689: doc: remove mention of glibc 2.10+

    7014e08 doc: remove mention of glibc 2.10+ (fanquake)
    
    Pull request description:
    
      We already require glibc 2.27+, so mentioning a much older version here is redundant.
    
    ACKs for top commit:
      TheCharlatan:
        ACK 7014e08
    
    Tree-SHA512: 883a566a80cabe34bfb5d902990f3eca08d0e11438e6c128d311e558f373ec232b0934deb85d12d796baacfeae590af8c73aa1b2faef07f27ffa9011270ffd96
    fanquake committed May 18, 2023
  10. build: Bump minimum supported GCC to g++-9

    Also, update the code to use constexpr, which does not work in g++-8.
    
    Also, drop the no longer needed build-aux/m4/l_filesystem.m4.
    MarcoFalke committed May 18, 2023
  11. ci: Bump centos:stream8 to centos:stream9

    This is required for the next commit. Also, drop CI_RETRY_EXE before
    "dnf install", because it requires getopt, which will only be installed
    later on via util-linux
    MarcoFalke committed May 18, 2023
  12. ci: Document the false positive error for g++-9

    MarcoFalke committed May 18, 2023
  13. Merge #27690: ci: Use credits for ARM task

    fa3761d ci: Reduce tsan CPU and memory for faster scheduling (MarcoFalke)
    aaaa07b ci: Use credits for ARM task (MarcoFalke)
    
    Pull request description:
    
      After #27562 the task should finish in less than 10 minutes, so also using credits for it will be cheap and improve dev experience.
    
    ACKs for top commit:
      fanquake:
        ACK fa3761d
    
    Tree-SHA512: 98ba76eaa63bcbab674076bb9877b3a20d1b90e6d51e2fd7b97ae245414e984d734006b15ea60228a1f4f9bc72fbe2a1a8910fd05e7c52dd2a8b223bfaa25b50
    fanquake committed May 18, 2023
  14. Merge #27682: build: Bump minimum supported Clang to clang-10

    fa199ee ci: Drop NO_WERROR=1 for clang-10 build (MarcoFalke)
    fad2c20 build: Bump minimum Clang to clang-10 (MarcoFalke)
    fad7cfe doc: Remove outdated CentOS comment (MarcoFalke)
    
    Pull request description:
    
      It doesn't make sense to support a minimum clang version that is difficult to install on all supported operating systems, which generally ship a later version:
    
      * Ubuntu Focal 20.04: https://packages.ubuntu.com/focal/clang-10 and https://packages.ubuntu.com/focal/clang-12
      * Debian Bullseye: https://packages.debian.org/bullseye/clang-13
      * CentOS 8 Stream: All Clang versions from 11.0 to 15.0
    
      Also, it allows to drop build code, which means it won't waste review when rolling over into cmake (`cmake/module/CheckStdFilesystem.cmake`).
    
    ACKs for top commit:
      hebasto:
        ACK fa199ee
      fanquake:
        ACK fa199ee
    
    Tree-SHA512: c1a0e8f191a6db866b8be3c9d254dc3f576fa021e2eaaeb68f3354554a8b38eaa90bbf9871ff92351b715e62a6b7b98cf94eba6dc53d7c951bddb6ad49ba7716
    fanquake committed May 18, 2023

Commits on May 17, 2023

  1. Merge #25193: indexes: Read the locator's top block during init, allo…

    …w interaction with reindex-chainstate
    
    97844d9 index: Enable reindex-chainstate with active indexes (Martin Zumsande)
    60bec3c index: Use first block from locator instead of looking for fork point (Martin Zumsande)
    
    Pull request description:
    
      This makes two improvements to the index init phase:
    
      **1) Prevent index corruption in case a reorg happens when the index was switched off**:
      This is done by reading in the top block stored in the locator instead of looking for a fork point already in `BaseIndex::Init()`.
      Before, we'd just go back to the fork point by calling `FindForkInGlobalIndex()`, which would have corrupted the coinstatsindex because its saved muhash needs to be reverted step by step by un-applying all blocks in between, which wasn't done before. This is now being done a bit later in  `ThreadSync()`, which has existing logic to call the custom `Rewind()` method when going back along the chain to the forking point (thanks ryanofsky for pointing this out to me!).
    
      **2) Allow using the `-reindex-chainstate` option without needing to disabling indexes**:
      With `BaseIndex::Init()` not calling `FindForkInGlobalIndex()` anymore, we can allow `reindex-chainstate` with active indexes. `reindex-chainstate` deletes the chain and rebuilds it later in `ThreadImport`, so there is no chain available during `BaseIndex::Init()`, which would lead to problems (see #24789).
      But now we'll only need the chain a bit later in `BaseIndex::ThreadSync`, which will wait for the reindex-chainstate in `ThreadImport` to finish and will continue syncing after that.
    
    ACKs for top commit:
      ryanofsky:
        Code review ACK 97844d9. Just simple rebase since last review
    
    Tree-SHA512: e24973fc22e0b87a49026f4820aecb0a4e415f4d381bade9969dd31cf97afecfea0449dce7fcc797343b792199cc8287276d1f5ffa4433dcb54fb24a808db6fb
    ryanofsky committed May 17, 2023
  2. index: Enable reindex-chainstate with active indexes

    This is achieved by letting the index sync thread wait until
    reindex-chainstate is finished.
    
    This also disables the pruning check when reindexing the chainstate (which is
    incompatible with prune mode) because there would be no chain at this point
    in init.
    mzumsande committed May 17, 2023
  3. index: Use first block from locator instead of looking for fork point

    The index sync code has logic to go back the chain to the forking point, while
    also updating index-specific state, which is necessary to prevent
    possible corruption of the coinstatsindex.
    
    Also add a test for this (a reorg happens while the index is deactivated)
    that would not pass before this change.
    mzumsande committed May 17, 2023
  4. ci: Reduce tsan CPU and memory for faster scheduling

    MarcoFalke committed May 17, 2023
  5. ci: Use credits for ARM task

    MarcoFalke committed May 17, 2023
  6. msvc: Provide ObjectFileName explicitly

    Should fix intermittent MSVC link errors.
    hebasto committed May 17, 2023
  7. doc: remove mention of glibc 2.10+

    We already require glibc 2.27+, so mentioning a much older version here
    is redundant.
    fanquake committed May 17, 2023
  8. doc: Rework build-unix.md

    MarcoFalke committed May 17, 2023
  9. Merge #27668: guix: document when certain patches can be dropped

    a09269a guix: document when certain guix patches can be dropped (fanquake)
    
    Pull request description:
    
      Additional notes for when patches can be dropped.
    
    ACKs for top commit:
      hebasto:
        ACK a09269a, I have reviewed the changes and they look OK.
      jarolrod:
        ACK a09269a
    
    Tree-SHA512: c1876b9a4e3cf73645d25c9077cef19a9b6b7fe2eda5dc9d82fd3ca3f9105453406c1b197e6635035b6ce19c9f255c070bebed5563f68913033d04627202155a
    fanquake committed May 17, 2023
  10. Merge #27571: ci: Run iwyu on all src files

    ddddf49 ci: Run iwyu on all src files (MarcoFalke)
    
    Pull request description:
    
      This makes it easier to look at the CI output of a file without having to manually add it first to the list.
    
    ACKs for top commit:
      hebasto:
        ACK ddddf49
    
    Tree-SHA512: 342b52838ae45ea343731c30058cdd5595d5ea5601a1f396de4466ccdd63f7ab07b3a193df3669e4dca7cb535557dcc98f866b3cf986b98176b20ecead123868
    fanquake committed May 17, 2023
  11. ci: Drop NO_WERROR=1 for clang-10 build

    This partially reverts commit 71383f2.
    This should be fine, because if warnings are issues again in the future,
    it can be disabled again, along with a list of the false warnings.
    MarcoFalke committed May 17, 2023
  12. Merge bitcoin-core/gui#729: test: Add missed header

    36e2d51 qt, test: Add missed header (Hennadii Stepanov)
    
    Pull request description:
    
      Should fix MSVC link errors like [that](https://api.cirrus-ci.com/v1/task/4870882892447744/logs/build.log):
      ```
      addressbooktests.obj : error LNK2019: unresolved external symbol "void __cdecl ConfirmMessage(class QString *,class std::chrono::duration<__int64,struct std::ratio<1,1000> >)" (?ConfirmMessage@@YAXPEAVQString@@v?$duration@_JU?$ratio@$00$0DOI@@std@@@chrono@std@@@z) referenced in function "void __cdecl `anonymous namespace'::EditAddressAndSubmit(class EditAddressDialog *,class QString const &,class QString const &,class QString)" (?EditAddressAndSubmit@?A0x2e52698e@@YAXPEAVEditAddressDialog@@AEBVQString@@1v3@@z) [C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build\build_msvc\test_bitcoin-qt\test_bitcoin-qt.vcxproj]
      wallettests.obj : error LNK2001: unresolved external symbol "void __cdecl ConfirmMessage(class QString *,class std::chrono::duration<__int64,struct std::ratio<1,1000> >)" (?ConfirmMessage@@YAXPEAVQString@@v?$duration@_JU?$ratio@$00$0DOI@@std@@@chrono@std@@@z) [C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build\build_msvc\test_bitcoin-qt\test_bitcoin-qt.vcxproj]
      C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build\build_msvc\x64\Release\test_bitcoin-qt.exe : fatal error LNK1120: 1 unresolved externals [C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build\build_msvc\test_bitcoin-qt\test_bitcoin-qt.vcxproj]
      ```
    
    ACKs for top commit:
      fanquake:
        ACK 36e2d51
    
    Tree-SHA512: 84685598fbf8857c0284ff660d953b93da3c2f47ba4ac0d3591b5009a6bcdb76898031fd70f289c4256ce389e485bd259ca145f9f862f085795e374dfa88705d
    hebasto committed May 17, 2023
Older