Commit graph

32951 commits

Author SHA1 Message Date
Sebastian Falbesoner
7d755bb31c contrib: testgen: avoid need for manually setting PYTHONPATH 2022-04-05 19:51:04 +02:00
MarcoFalke
7b83c7d609
Merge bitcoin/bitcoin#24510: test: check for importprunedfunds RPC errors
7573789925 test: check for importprunedfunds RPC errors (Sebastian Falbesoner)

Pull request description:

  This PR adds missing test coverage for the following errors of the `importprunedfunds` RPC:
  7003b6ab24/src/wallet/rpc/backup.cpp (L320-L322)
  7003b6ab24/src/wallet/rpc/backup.cpp (L332-L334)
  7003b6ab24/src/wallet/rpc/backup.cpp (L338-L340)
  7003b6ab24/src/wallet/rpc/backup.cpp (L343-L345)

ACKs for top commit:
  MarcoFalke:
    review ACK 7573789925

Tree-SHA512: b054520d102e5940bdeed2456ca644e91afb187d169b751b1262ce34480e4e9fbe1616ab184a78777c184350dced23508c3d367ed5825cab78bb5ad687fd7dac
2022-03-15 16:04:17 +01:00
MarcoFalke
28bdaa3f76
Merge bitcoin/bitcoin#24080: policy: Remove unused locktime flags
fa8d4d9128 scripted-diff: Clarify CheckFinalTxAtTip name (MarcoFalke)
fa4e30b0f3 policy: Remove unused locktime flags (MarcoFalke)

Pull request description:

  The locktime flags have many issues:
  * They are passed in by a default argument, which is fragile. It has already lead to bugs like the one fixed in commit e30b6ea194.
  * They are negative (signed), which doesn't make sense for flags (unsigned in general). According to the review comments when the code was added: "The max on the flags is a fairly weird operation." (https://github.com/bitcoin/bitcoin/pull/6566#issuecomment-150310861)
  * No call site relies on the default argument and they all pass in a single compile-time constant, rendering most of the code dead and untested.
  * The dead code calls `GetAdjustedTime` (network adjusted time), which has its own issues. See https://github.com/bitcoin/bitcoin/issues/4521

  Fix all issues by removing them

ACKs for top commit:
  ajtowns:
    ACK  fa8d4d9128
  theStack:
    Code-review ACK fa8d4d9128
  glozow:
    ACK fa8d4d9128, agree the default arg `flags` is a massive footgun and just setting max flags is weird. Adding `AtTip` to the names makes sense to me, since they're both testing for *next* block and only ever used for {,re}addition to mempool.

Tree-SHA512: 79f4a52f34909eb598d88bbae7afe8abe5f85f45c128483d16aa83dacd0e5579e561b725d01b1e9a931d1821012a51ad2bc6fb2867f8d09ee541f9d234d696f8
2022-03-14 16:32:23 +01:00
Andrew Chow
25d045a9ec
Merge bitcoin/bitcoin#24225: wallet: Add sanity checks to DiscourageFeeSniping
fa8e76bb90 wallet: Add sanity checks to AntiFeeSnipe (MarcoFalke)

Pull request description:

  I added those sanity checks as part of implementing BIP 326, but I think they make sense on their own. The checks require the transaction to be passed in to `DiscourageFeeSniping`. Also, replace `(int)locktime` cast with the equivalent `int(locktime)` cast.

ACKs for top commit:
  chris-belcher:
    ACK fa8e76bb90
  S3RK:
    Code review ACK fa8e76bb90
  achow101:
    ACK fa8e76bb90
  w0xlt:
    Code Review ACK fa8e76bb90

Tree-SHA512: 6fe37c85f074851ef09cae8addcb836257089290fecec515c129c3180e9ccb64740aaac76043af10ce7c213e5001568ca6b4b62ae9631f0994ed676b07118074
2022-03-14 10:31:25 +00:00
MarcoFalke
e0881aa5f0
Merge bitcoin/bitcoin#24505: wallet: Add a deprecation warning for newly created legacy wallets
61152183ab wallet: Add a deprecation warning for newly created legacy wallets (Andrew Chow)

Pull request description:

  As we slowly deprecate legacy wallets, we need to warn users that are making new legacy wallets that their wallet type is going to be unsupported in the future.

ACKs for top commit:
  jonatack:
    ACK 61152183ab
  S3RK:
    reACK 61152183ab
  theStack:
    ACK 61152183ab

Tree-SHA512: e89bfb8168869542498958f0c9a2ab302dfd43287f8a49e7d9e09f60438a567bb8b7219a4e569797ee819b30b624f532fcc0b70c6aa0edcb392a301b8ce8b541
2022-03-14 08:37:46 +01:00
MarcoFalke
e04720ec33
Merge bitcoin/bitcoin#24528: rpc: rename getdeploymentinfo status-next to status_next
5d7c69b887 rpc: rename getdeploymentinfo status-next to status_next (Jon Atack)

Pull request description:

  Rename the `status-next` field to `status_next` in getdeploymentinfo before the RPC is released in v23.

  Before
  ```
  Result:
  {                                       (json object)
    "hash" : "str",                       (string) requested block hash (or tip)
    "height" : n,                         (numeric) requested block height (or tip)
    "deployments" : {                     (json object)
      "xxxx" : {                          (json object) name of the deployment
        "type" : "str",                   (string) one of "buried", "bip9"
        "height" : n,                     (numeric, optional) height of the first block which the rules are or will be enforced (only for "buried" type, or "bip9" type with "active" status)
        "active" : true|false,            (boolean) true if the rules are enforced for the mempool and the next block
        "bip9" : {                        (json object, optional) status of bip9 softforks (only for "bip9" type)
          "bit" : n,                      (numeric, optional) the bit (0-28) in the block version field used to signal this softfork (only for "started" and "locked_in" status)
          "start_time" : xxx,             (numeric) the minimum median time past of a block at which the bit gains its meaning
          "timeout" : xxx,                (numeric) the median time past of a block at which the deployment is considered failed if not yet locked in
          "min_activation_height" : n,    (numeric) minimum height of blocks for which the rules may be enforced
          "status" : "str",               (string) status of deployment at specified block (one of "defined", "started", "locked_in", "active", "failed")
          "since" : n,                    (numeric) height of the first block to which the status applies
          "status-next" : "str",          (string) status of deployment at the next block
          "statistics" : {                (json object, optional) numeric statistics about signalling for a softfork (only for "started" and "locked_in" status)
            "period" : n,                 (numeric) the length in blocks of the signalling period
            "threshold" : n,              (numeric, optional) the number of blocks with the version bit set required to activate the feature (only for "started" status)
            "elapsed" : n,                (numeric) the number of blocks elapsed since the beginning of the current period
            "count" : n,                  (numeric) the number of blocks with the version bit set in the current period
            "possible" : true|false       (boolean, optional) returns false if there are not enough blocks left in this period to pass activation threshold (only for "started" status)
          },
          "signalling" : "str"            (string) indicates blocks that signalled with a # and blocks that did not with a -
        }
      }
    }
  }
  ```
  After
  ```
  Result:
  {                                       (json object)
    "hash" : "str",                       (string) requested block hash (or tip)
    "height" : n,                         (numeric) requested block height (or tip)
    "deployments" : {                     (json object)
      "xxxx" : {                          (json object) name of the deployment
        "type" : "str",                   (string) one of "buried", "bip9"
        "height" : n,                     (numeric, optional) height of the first block which the rules are or will be enforced (only for "buried" type, or "bip9" type with "active" status)
        "active" : true|false,            (boolean) true if the rules are enforced for the mempool and the next block
        "bip9" : {                        (json object, optional) status of bip9 softforks (only for "bip9" type)
          "bit" : n,                      (numeric, optional) the bit (0-28) in the block version field used to signal this softfork (only for "started" and "locked_in" status)
          "start_time" : xxx,             (numeric) the minimum median time past of a block at which the bit gains its meaning
          "timeout" : xxx,                (numeric) the median time past of a block at which the deployment is considered failed if not yet locked in
          "min_activation_height" : n,    (numeric) minimum height of blocks for which the rules may be enforced
          "status" : "str",               (string) status of deployment at specified block (one of "defined", "started", "locked_in", "active", "failed")
          "since" : n,                    (numeric) height of the first block to which the status applies
          "status_next" : "str",          (string) status of deployment at the next block
          "statistics" : {                (json object, optional) numeric statistics about signalling for a softfork (only for "started" and "locked_in" status)
            "period" : n,                 (numeric) the length in blocks of the signalling period
            "threshold" : n,              (numeric, optional) the number of blocks with the version bit set required to activate the feature (only for "started" status)
            "elapsed" : n,                (numeric) the number of blocks elapsed since the beginning of the current period
            "count" : n,                  (numeric) the number of blocks with the version bit set in the current period
            "possible" : true|false       (boolean, optional) returns false if there are not enough blocks left in this period to pass activation threshold (only for "started" status)
          },
          "signalling" : "str"            (string) indicates blocks that signalled with a # and blocks that did not with a -
        }
      }
    }
  }
  ```

Top commit has no ACKs.

Tree-SHA512: 4facfd7af3cfb7b6f5495758c4387602802f5e39d9270b162d17350a7f954eab0b74d895f17f0d8dfbc7814d36db7cff56d08c42728432885ea6f4e37aea4aa8
2022-03-13 10:23:20 +01:00
MarcoFalke
2860a91df0
Merge bitcoin/bitcoin#24527: test: set segwit height back to 0 on regtest
5ce3057c8e test: set segwit height back to 0 on regtest (Martin Zumsande)

Pull request description:

  The change of `consensus.SegwitHeight` from 0 to 1 for regtest in #22818 had the effect that if I create a regtest enviroment with  current master (or 23.x), and then try to load this chain with an older version (22.x), I get an InitError
  `Witness data for blocks after height 0 requires validation. Please restart with -reindex`
  and have to reindex because `BLOCK_OPT_WITNESS` is no longer set for the Genesis block and `NeedsRedownload()` in validation returns `true` with an older version.
  That might be a bit annoying for tests that use a shared regtest dir with different versions.

  If people think this is enough of an issue to be worth fixing, I think it should also make it into 23.x

ACKs for top commit:
  theStack:
    Concept and code-review ACK 5ce3057c8e

Tree-SHA512: b0e89ff7fc953bc0ae929d2da44cde7149321d987fb4763934f6c9635d00d807129a50b459cc5e69e86bb1819e4b063b969486e8016a1cb8db8f905fa315653d
2022-03-13 10:20:15 +01:00
MarcoFalke
f94784f5bc
Merge bitcoin/bitcoin#24533: test: use MiniWallet for feature_maxuploadtarget.py
aab552fa30 test: use MiniWallet for feature_maxuploadtarget.py (Sebastian Falbesoner)

Pull request description:

  This PR enables one more of the non-wallet functional tests (feature_maxuploadtarget.py) to be run even with the Bitcoin Core wallet disabled by using the MiniWallet instead, as proposed in https://github.com/bitcoin/bitcoin/issues/20078. Note that the adapted helper function `mine_large_block` is currently only is used in this test, i.e. there was no need to change any others.

ACKs for top commit:
  brunoerg:
    crACK aab552fa30

Tree-SHA512: 82fb962ae40e3717419b063af295fc03ac5d5dfe4266dee8ba7f6c86800ede1d32f8fa632c189c30e982badf0c6083fcf6eca4798221f6e284c5e01a8b1a1ed9
2022-03-13 09:46:14 +01:00
laanwj
deb847b757
Merge bitcoin/bitcoin#24491: contrib: fix implicit function decleration in win symbol check
e4e9dd3a28 contrib: fix implicit function decleration in win symbol check (fanquake)

Pull request description:

  ```bash
  test3.c: In function 'main':
  test3.c:6:21: warning: implicit declaration of function 'CoFreeUnusedLibrariesEx' [-Wimplicit-function-declaration]
      6 |                     CoFreeUnusedLibrariesEx(0,0);
  ```

  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  1907745369f13b0b01583795e395b7e8ecda174a8a3b6309184b14609bfdcb20  guix-build-e4e9dd3a287f/output/dist-archive/bitcoin-e4e9dd3a287f.tar.gz
  6973025bd46acdbc327118541f26d36885434305d20a7fa33e0db61f66f8b930  guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/SHA256SUMS.part
  4cdc4efc0d27b3fcfb8f36244dfd956d19ae5df0414dcc23e733c88188f1f93a  guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win-unsigned.tar.gz
  022e9743b13f5366cd0f4b52ff8350b42d8c6a506c98363071501a6c4ac735f1  guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win64-debug.zip
  62e65f04fdcacb3d3fbcffbea5204f723f2b27a5f9a62a77abaf0b7ee7de3744  guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win64-setup-unsigned.exe
  d773f5ba6afe456b7b5286f0cf98bcb711da8087b96a31f2e38f9c43af44fe96  guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win64.zip
  ```

ACKs for top commit:
  laanwj:
    Code review ACK e4e9dd3a28
  hebasto:
    ACK e4e9dd3a28, tested on Ubuntu 22.04.

Tree-SHA512: e075b052f848a654ed11fb8bc29e2a7b015ab2b44878535d84ac61ecec507410d68e866526c5e0acd1b1b99e65c9d738231208cbb676c8d3f73691317c94c9e0
2022-03-13 09:23:50 +01:00
fanquake
fd381d86b1
Merge bitcoin/bitcoin#24526: build: don't install deprecated libevent headers
339b4a51f6 build: don't install deprecated libevent headers (fanquake)

Pull request description:

  We don't use the deprecated headers now, and never should do in the
  future, so there is no need for them to exist in depends.

  The headers themselves are just full of includes for the newer headers.

ACKs for top commit:
  hebasto:
    ACK 339b4a51f6

Tree-SHA512: 736fd9e3b22212da462cc05203dd253806dc59f973090357b705f2742ed4a3b8c3cc44b3173d706527f60ad93e95cf4143ec6b7db4233a489890a98f8e5c8f07
2022-03-12 20:16:49 +00:00
MarcoFalke
e7db4e245a
Merge bitcoin/bitcoin#24164: build: Bump minimum required clang/libc++ to 8.0
fae20e6b50 Revert "Avoid the use of P0083R3 std::set::merge" (MarcoFalke)
fab53b5fd4 ci/doc: Set minimum required clang/libc++ version to 8.0 (MarcoFalke)

Pull request description:

  This is not for 23.0, but for 24.0. It comes with the following benefits:

  * Can use C++17 P0083R3 std::set::merge from libc++ 8.0
  * No longer need to provide support for clang-7, which already fails to compile on some architectures (https://github.com/bitcoin/bitcoin/issues/21294#issuecomment-998098483)

  This should be fine, given that all supported operating systems ship with at least clang-10:

  * CentOS 8: clang-12
  * Stretch: https://packages.debian.org/stretch/clang-11
  * Buster: https://packages.debian.org/buster-backports/clang-11
  * Bionic: https://packages.ubuntu.com/bionic-updates/clang-10
  * Focal: https://packages.ubuntu.com/focal/clang-10

ACKs for top commit:
  fanquake:
    ACK fae20e6b50 - I think this is fine to do. I would be surprised if in another 6 months time someone was stuck on a system we supported, needing to compile Core, and only had access to Clang 7 or older. As mentioned in the PR description, all systems we currently support, already support multiple newer versions of Clang.
  hebasto:
    ACK fae20e6b50, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: 3b4c6c130ff40dd7e84934af076863415e5dd661d823c72e3e3832566c65be6e877a7ef9164bbcf394bcea4b897fc29a48db0f231c22ace0e2c9b5638659a628
2022-03-12 10:37:05 +01:00
Andrew Chow
c109e7d51c
Merge bitcoin/bitcoin#24530: wallet: assert BnB's internally calculated waste is the same as GetSelectionWaste
ec7d73628a [wallet] assert BnB internally calculated waste is the same as GetSelectionWaste() (glozow)

Pull request description:

  #22009 introduced a `GetSelectionWaste()` function to determine how much "waste" a coin selection solution has, and is a mirror of the waste calculated inside of `SelectCoinsBnB()`. It would be bad for these two waste metrics to deviate, since it could negatively affect how often we select the BnB solution. Add an assertion to help tests catch a potential accidental change.

ACKs for top commit:
  achow101:
    ACK ec7d73628a
  Xekyo:
    ACK ec7d73628a

Tree-SHA512: 3ab7ad45ae92e7ce3f21824fb975105b6be8382edf47c252df5d13d973a3abdcb675132d223b42fcbb669cca879672c904b8a58d0676e12bf381a9219f4db37c
2022-03-11 16:40:17 +00:00
Sebastian Falbesoner
aab552fa30 test: use MiniWallet for feature_maxuploadtarget.py
This test can now be run even with the Bitcoin Core wallet disabled.
2022-03-11 16:14:48 +01:00
MarcoFalke
a81717443f
Merge bitcoin/bitcoin#24453: Bugfix: doc: Correct change_address/changeAddress in wallet RPC help
e8272024ab doc: Use human-friendly DefaultHint for change_address/changeAddress in wallet RPC help (Luke Dashjr)
9d5e693c9d Bugfix: doc: Correct type of change_address/changeAddress in wallet RPC help (STR, not STR_HEX) (Luke Dashjr)

Pull request description:

ACKs for top commit:
  achow101:
    ACK e8272024ab

Tree-SHA512: da4db2b241160c93ea66f8c572c69d4688f52a5fd8c32b66b1192925fcb360baf91be9771eaca178f5b08e1920559174260ed57caddcffade48156ec0c83c0bc
2022-03-11 16:11:17 +01:00
fanquake
23e8c702bc
Merge bitcoin/bitcoin#24421: miner: always assume we can build witness blocks
40e871d9b4 [miner] always assume we can create witness blocks (glozow)

Pull request description:

  Given the low possibility of a reorg reverting the segwit soft fork, there is no longer a need to check whether segwit is active to see if it's okay to add to the block template (see also #23512, #21009, etc). `TestBlockValidity()` is also run on the block template at the end of `CreateNewBlock()`, so any invalid block would be caught there.

ACKs for top commit:
  gruve-p:
    ACK 40e871d9b4
  jnewbery:
    utACK 40e871d9b4, although I disagree about changing the test for segwit transaction in mempool before activagtion, instead of just removing it: https://github.com/bitcoin/bitcoin/pull/24421#discussion_r822933721.
  achow101:
    ACK 40e871d9b4
  theStack:
    Code-review ACK 40e871d9b4

Tree-SHA512: bf4860bf2bed8339622d05228d11d60286edb0c32a9a3c434b8d154913c07ea56e50649f4af7009c2a1c6a58a81d2299ab43b41a6f16dee7d08cc89cc1603019
2022-03-11 15:00:38 +00:00
glozow
ec7d73628a [wallet] assert BnB internally calculated waste is the same as GetSelectionWaste()
These two implementations of waste calculation should never deviate.
Still keep the SelectCoinsBnB internal calculation because incremental
calculate-as-you-go is much more performant than calling
GetSelectionWaste() over and over again.
2022-03-11 12:22:34 +00:00
fanquake
bb0b39ce6f
Merge bitcoin/bitcoin#24524: doc: remove Boost LDFLAGS from netBSD build docs
8336a06dbd doc: remove Boost LDFLAGS from netBSD build docs (fanquake)

Pull request description:

  We no-longer link against any Boost libs, so we shouldn't need to use
  any Boost linker flags.

ACKs for top commit:
  hebasto:
    ACK 8336a06dbd, I have reviewed the code and it looks OK, I agree it can be merged. Also verified that there is no other usage of `BOOST_LDFLAGS` in our codebase or documentation.

Tree-SHA512: b7814d10cee789903cb3c613631e184a72f5766cda85261b5f99f9ac207348a2a49c92494c8c1d50163494f6b755c503cf51bf083b31f564dae1b0f493c54c2e
2022-03-11 11:25:58 +00:00
fanquake
ce1fabe545
Merge bitcoin/bitcoin#24509: doc: Add guix prefix for changes to reproducible builds
f1f994a122 doc: Add `guix` prefix for changes to reproducible builds (Hennadii Stepanov)

Pull request description:

  Most of contributors already use the `guix:` prefix for changes to `contrib/guix`. Also `guix` is shorter than `build`, and it is more focused/specific.

ACKs for top commit:
  fanquake:
    ACK f1f994a122

Tree-SHA512: 3f754e80802ec4e871b099ce1f0877e34ecc4816fbe9c49bfd2a7368ef79fed9edf6c65f38eedef2a87367fdc911dc548e0def422d80b66a91ce2e5f35826032
2022-03-11 10:27:05 +00:00
fanquake
f661da70b9
Merge bitcoin/bitcoin#24521: build: Fix Boost.Process detection on macOS arm64
1d4157a42b build: Fix Boost.Process detection on macOS arm64 (Hennadii Stepanov)

Pull request description:

  Could be tested as follows:
  ```
  % brew install boost@1.76
  % ./autogen.sh
  % ./configure --with-boost='/opt/homebrew/opt/boost@1.76'
  ```

ACKs for top commit:
  promag:
    Tested ACK on 1d4157a42b with boost 1.76 on macOS arm64. #24523 is required for boost 1.78.

Tree-SHA512: 7abd39a78e970ecc051e53b5923dfc31d3f0576cf4ff7fcfb9c8708c857c46a7a595ec36238def83f41158970eeee209980da4b8b70f0ff68f940a38ac9a0471
2022-03-11 10:24:12 +00:00
Jon Atack
5d7c69b887
rpc: rename getdeploymentinfo status-next to status_next 2022-03-11 10:21:48 +01:00
Martin Zumsande
5ce3057c8e test: set segwit height back to 0 on regtest
This was changed in #22818 from 0 to 1. Since it changes
BLOCK_OPT_WIT of the genesis block, older versions of bitcoin
core would not read regtest directories created with newer versions
without a reindex.
2022-03-10 20:24:11 +01:00
fanquake
339b4a51f6
build: don't install deprecated libevent headers
We don't use the deprecated headers now, and never should do in the
future, so there is no need for them to exist in depends.

The headers themselves are just full of includes for the newer headers.
2022-03-10 15:52:26 +00:00
Hennadii Stepanov
93feabcb30
Merge bitcoin-core/gui#563: qt: Remove network detection based on address in BIP21
b7dbc83f23 qt: Remove network detection based on address in BIP21 (laanwj)

Pull request description:

  This is removes some ugly and brittle code that switches the global network to testnet based on a provided address. I think in practice it's very unlikely for testnet BIP21 payment URIs to be used, and if so it's for testing so it's easy enough to manually copy it. Or to specify `-testnet` explicitly.

  There is already no such case for `-regtest` or `-signet`.

  After this change it will only accept addresses for the explicitly selected network. Others will result in a "wrong network" popup.

  There is also a possibility for refactor after this as the initialization order of `PaymentServer::ipcParseCommandLine` isn't important anymore (well, it still has to be before `PaymentServer::ipcSendCommandLine`, maybe even merged with it), but I have not done so here.

ACKs for top commit:
  jonatack:
    ACK  b7dbc83f23
  achow101:
    ACK b7dbc83f23

Tree-SHA512: ebc77c0e5c98f53fe254bcd0f94c9d1c06937b794346e95b14158860d5c607515e71d73b782d2726674dce86d6d4001085d473c6d1bc11c5e6c25ff3fb3cfa22
2022-03-10 15:57:03 +01:00
fanquake
8336a06dbd
doc: remove Boost LDFLAGS from netBSD build docs
We no-longer link against any Boost libs, so we shouldn't need to use
any Boost linker flags.
2022-03-10 14:30:09 +00:00
MarcoFalke
597ee30b5e
Merge bitcoin/bitcoin#24522: ci: remove compiled-but-unused BDB from MSAN job
3566353c5e ci: remove compiled-but-unused BDB from MSAN job (fanquake)

Pull request description:

  Self-compiled BDB was added to this job as opposed to using depends BDB [due to linking issues](https://github.com/bitcoin/bitcoin/pull/18288#discussion_r433189350), however the compiled BDB is not actually used. Remove it for now, given we don't actually lose any coverage (note that BDB is also not currently used in the naitve MSAN fuzz job or for [OSS Fuzz](https://github.com/google/oss-fuzz/blob/master/projects/bitcoin-core/build.sh#L32) builds).

  In future, we can use depends BDB, however introducing it now will cause false positives, which can be fixed by upgrading the versions of Clang / LLVM we use, however upgrading to those newer versions causes other issues, which appear in standard library code, and require more involved suppressing, which can be solved in a follow up or another PR i.e #23008.

Top commit has no ACKs.

Tree-SHA512: 9e8fdd95246cafa27cda7bcf0641b428d4573f6748ecdf07cc6205a64351db22ba383ec943e88a69df3694ccb9f125d994b64345a4e44fb6fea4a014504760d1
2022-03-10 15:22:07 +01:00
fanquake
6c37eae0ad
Merge bitcoin/bitcoin#24404: refactor: Remove confusing P1008R1 violation in ATMPArgs
faa1aec26b Remove confusing P1008R1 violation in ATMPArgs (MarcoFalke)

Pull request description:

  The `= delete` doesn't achieve the stated goal and it is also redundant, since it is not possible to default construct the `ATMPArgs` type.

  This can be tested with:

  ```diff
  diff --git a/src/validation.cpp b/src/validation.cpp
  index 2813b62462..1c939c0b8a 100644
  --- a/src/validation.cpp
  +++ b/src/validation.cpp
  @@ -519,6 +519,7 @@ public:
           /** Parameters for child-with-unconfirmed-parents package validation. */
           static ATMPArgs PackageChildWithParents(const CChainParams& chainparams, int64_t accept_time,
                                                   std::vector<COutPoint>& coins_to_uncache) {
  +            ATMPArgs{};
               return ATMPArgs{/* m_chainparams */ chainparams,
                               /* m_accept_time */ accept_time,
                               /* m_bypass_limits */ false,
  ```

  Which fails on current master *and* this pull with the following error:

  ```
  validation.cpp:525:22: error: reference member of type 'const CChainParams &' uninitialized
              ATMPArgs{};
                      ~^
  validation.cpp:470:29: note: uninitialized reference member is here
          const CChainParams& m_chainparams;
                              ^
  1 error generated.
  ```

  Further reading (optional):
  * http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1008r1.pdf

ACKs for top commit:
  achow101:
    ACK faa1aec26b
  glozow:
    code review ACK faa1aec26b

Tree-SHA512: 16db2c9959a1996eafbfa533dc4d1483761b9d28295aed5a82b86abd7268da37c51c59ddc67c205165ecb415dbe637b12a0e1b3234d50ab0b3b79de66d7bd73e
2022-03-10 13:57:36 +00:00
fanquake
3566353c5e
ci: remove compiled-but-unused BDB from MSAN job
Self-compiled BDB was added to this job as opposed to using depends BDB
due to linking issues, however the compiled BDB is not actually used.
Remove it for now, given we don't actually lose any coverage (note that
BDB is also no used the MSAN fuzz job), and in future, we can use
depends BDB.
2022-03-10 12:48:21 +00:00
fanquake
4f5d3ce5a0
Merge bitcoin/bitcoin#24486: wallet: refactor: dedup sqlite blob binding
8ea6167099 wallet: refactor: dedup sqlite blob binding (Sebastian Falbesoner)

Pull request description:

  This refactoring PR deduplicates repeated SQLite blob binding to a statement with a newly introduced helper function `BindBlobToStatement`, abstracting away the calls to `sqlite3_bind_blob(...)`.
  This should be more readable and less error-prone, e.g. in case that the error handling has to be adapted. As a slight drawback, the function where the binding happens is not printed anymore (`__func__`), i.e. one could argue this is not strictly a refactoring, but IMHO the advantages of deduplication outweigh this; binding errors are purely internal logic errors (wrong use of the sqlite API) rather than something that is dependend on external data like DB content.

ACKs for top commit:
  laanwj:
    Code review ACK 8ea6167099
  achow101:
    ACK 8ea6167099
  klementtan:
    ACK 8ea6167099

Tree-SHA512: 1de0d214f836bc405a01e98a3a2d71f2deaddc7d23c31cad80219d1614bec92619c06d9a4a091dd563d3e95ffb879649c29745d8f89669b2a5330552c212af3f
2022-03-10 12:40:20 +00:00
Andrew Chow
61152183ab wallet: Add a deprecation warning for newly created legacy wallets 2022-03-10 07:32:02 -05:00
Hennadii Stepanov
1d4157a42b
build: Fix Boost.Process detection on macOS arm64
Could be tested as follows:
```
% brew install boost@1.76
% ./autogen.sh
% ./configure --with-boost='/opt/homebrew/opt/boost@1.76'
```
2022-03-10 13:07:42 +01:00
laanwj
b7dbc83f23 qt: Remove network detection based on address in BIP21
This is some very ugly and brittle code that switches the global network
based on a provided address, remove it. I think in practice it's very
unlikely for testnet BIP21 payment URIs to be used, and if so it's for
testing so it's easy enough to manually copy it. Or to specify
`-testnet` explicitly.

There is already no case for `-regtest` or `-signet`.
2022-03-10 12:56:19 +01:00
MarcoFalke
76d44e832f
Merge bitcoin/bitcoin#24469: test: Correctly decode UTF-8 literal string paths
2f5fd3cf92 test: Correctly decode UTF-8 literal string paths (Ryan Ofsky)

Pull request description:

  Call `fs::u8path()` to convert some UTF-8 string literals to paths, instead of relying on the implicit conversion. Fake Macro pointed out in https://github.com/bitcoin/bitcoin/pull/24306#discussion_r818566106 that `fs_tests` are incorrectly decoding some literal UTF-8 paths using the current windows codepage, instead of treating them as UTF-8. This could cause test failures depending what environment windows tests are run under.

  The `fs::path` class exists to avoid problems like this, but because it is lenient with `const char*` conversions, under assumption that they are ["safe as long as the literals are ASCII"](727b0cb592/src/fs.h (L39)), bugs like this are still possible.

  If we think this is a concern, followup options to try to prevent this bug in the future are:

  0. Do nothing
  1. Improve the "safe as long as the literals are ASCII" comment. Make it clear that non-ASCII strings are invalid.
  2. Drop the implicit `const char*` conversion functions. This would be nice because it would simplifify the `fs::path` class a little, while making it safer. Drawback is that it would require some more verbosity from callers. For example, instead of `GetDataDirNet() / "mempool.dat"` they would have to write `GetDataDirNet() / fs::u8path("mempool.dat")`
  3. Keep the implicit `const char*` conversion functions, but make them call `fs::u8path()` internally. Change the "safe as long as the literals are *ASCII*" comment to "safe as long as the literals are *UTF-8*".

  I'd be happy with 0, 1, or 2. I'd be a little resistant to 3 even though it was would add more safety, because it would slightly increase complexity, and because I think it would encourage representing paths as strings, when I think there are so many footguns associated with paths as strings, that it's best to convert strings to paths at the earliest point possible, and convert paths to strings at the latest point possible.

ACKs for top commit:
  laanwj:
    Code review ACK 2f5fd3cf92
  w0xlt:
    crACK 2f5fd3c

Tree-SHA512: 9c56714744592094d873b79843b526d20f31ed05eff957d698368d66025764eae8bfd5305d5f7b6cc38803f0d85fa5552003e5c6cacf1e076ea6d313bcbc960c
2022-03-10 12:49:50 +01:00
Andrew Chow
d1a940f729
Merge bitcoin/bitcoin#24520: guix: only check for the macOS SDK once
e8023100be guix: only check for the macOS SDK once (fanquake)

Pull request description:

  If we are building for both macOS HOSTS, there's no need to check and
  print that the SDK exists two times.

  Currently a Guix build for both HOSTS will print:
  ```bash
  ./contrib/guix/guix-build
  Found macOS SDK at '/SDKs/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers', using...
  Found macOS SDK at '/SDKs/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers', using...
  Checking that we can connect to the guix-daemon...
  ```

ACKs for top commit:
  laanwj:
    Code review ACK e8023100be
  achow101:
    ACK e8023100be

Tree-SHA512: 7e9ee7793c5dc1eb485806ca3d613742397d2cc62525203a168cad1ec96aabfd4e63dc3f2e8d205bdb2f3c2079f731d75c5d162d55ff0d42a7e6f3d01d3a7db1
2022-03-10 06:30:58 -05:00
fanquake
e8023100be
guix: only check for the macOS SDK once
If we are building for both macOS HOSTS, there's no need to check and
print that the SDK exists two times.
2022-03-10 11:14:26 +00:00
MarcoFalke
05957a888d
Merge bitcoin/bitcoin#24516: build, ci: Fix MSVC builds and other improvements
c3296b21e4 build: Drop `double-conversion` from MSVC dependencies (Hennadii Stepanov)
7ff43e5372 ci: Invalidate vcpkg binary cache if dependencies changed (Hennadii Stepanov)
20b6c87117 build: Specify `zeromq` port explicitly for MSVC builds (Hennadii Stepanov)

Pull request description:

  The current MSVC builds are broken due to the bug in the `zeromq` [port](https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320). From [IRC](https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2022-03-08#787145):

  > \<sipsorcery> Looks like it's a problem downloading the zeromq dependency from https://patch-diff.githubusercontent.com/raw/zeromq/libzmq/pull/4311.diff
  > \<dhruv> sipsorcery: I'm definitely misunderstanding, i actually have no clue which file the CI is failing to download. I'll DM you more details.
  > \<sipsorcery> It's saying the hash of the patch file has changed.
  > \<dhruv> so we'd need to verify that the change is not malicious and then commit the new hash?
  > \<sipsorcery> No that dependency is managed by the vcpkg repo. Seems they might be working on it https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320
  > \<dhruv> ok, thanks

  This PR fixes this issue with specifying the previous port version [explicitly](https://github.com/microsoft/vcpkg/blob/master/docs/users/versioning.md).

  The current CI task does not fail due to the cached binaries.

  ---

  The second commit makes vcpkg binary cache invalid if dependencies changed.

  The third commit drops `double-conversion` from dependencies as Qt is configured as follows:
  ```
  Configure summary:

  Build type: win32-msvc (x86_64, CPU features: sse sse2)
  Compiler: msvc 193131104
  Configuration: sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c largefile msvc_mp precompile_header rdrnd rdseed shani silent x86SimdAlways release c++11 c++14 c++17 c++1z concurrent no-pkg-config static static_runtime stl
  Build options:
  ...
  Qt Core:
    DoubleConversion ....................... yes
      Using system DoubleConversion ........ no
  ...
  ```

ACKs for top commit:
  sipsorcery:
    tACK c3296b21e4.

Tree-SHA512: 4d694a7d0930889a53eb6ee7a09929f6ffa3f078122b34abe6d75430769bb87c353f7c11146da53c3804e51d4bbfcbb7bc8453f525bcc432928d98eeb66ee35e
2022-03-10 11:19:44 +01:00
MarcoFalke
5e33620ad8
Merge bitcoin/bitcoin#24371: util: Fix ReadBinaryFile reading beyond maxsize
a84650ebd5 util: Fix ReadBinaryFile reading beyond maxsize (klementtan)

Pull request description:

  Currently `ReadBinaryFile` will read beyond `maxsize` if `maxsize` is not a multiple of `128` (size of buffer)

  This is due to `fread` being called with `count = 128` instead of `count = min(128, maxsize - retval.size()` at every iteration

  The following unit test will fail:
  ```cpp
  BOOST_AUTO_TEST_CASE(util_ReadWriteFile)
  {
    fs::path tmpfolder = m_args.GetDataDirBase();
    fs::path tmpfile = tmpfolder / "read_binary.dat";
    std::string expected_text(300,'c');
    {
        std::ofstream file{tmpfile};
        file << expected_text;
    }
    {
        // read half the contents in file
        auto [valid, text] = ReadBinaryFile(tmpfile, expected_text.size() / 2);
        BOOST_CHECK_EQUAL(text.size(), 150);
    }
  }
  ```
  Error:
  ```
  test/util_tests.cpp:2593: error: in "util_tests/util_ReadWriteFile": check text.size() == 150 has failed [256 != 150]
  ```

ACKs for top commit:
  laanwj:
    Code review ACK a84650ebd5
  theStack:
    Code-review ACK a84650ebd5

Tree-SHA512: 752eebe58bc2102dec199b6775f8c3304d899f0ce36d6a022a58e27b076ba945ccd572858b19137b769effd8c6de73a9277f641be24dfb17657fb7173ea0eda0
2022-03-10 10:24:05 +01:00
Hennadii Stepanov
c3296b21e4
build: Drop double-conversion from MSVC dependencies
Qt uses its own `double-conversion`.
2022-03-10 08:36:13 +01:00
Hennadii Stepanov
7ff43e5372
ci: Invalidate vcpkg binary cache if dependencies changed 2022-03-10 08:36:13 +01:00
Hennadii Stepanov
20b6c87117
build: Specify zeromq port explicitly for MSVC builds
Current port 4 is broken:
- https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320
2022-03-10 08:36:05 +01:00
fanquake
430acb7d2a
Merge bitcoin/bitcoin#24506: build, mac: Include arch in codesignature tarball
0189df1d31 build, mac: Include arch in codesignature tarball (Andrew Chow)
6e9308c6d4 guix: use latest signapple (Andrew Chow)

Pull request description:

  Since we have two architectures for Mac binaries, having the architecture in the code signature tarball generated by `detached-sig-create.sh` allows us to avoid accidentally overwriting an existing code signature tarball during the code signing process.

ACKs for top commit:
  fanquake:
    ACK 0189df1d31

Tree-SHA512: 7e0d282e4ced1094f36f1d26ff6e18d53449561ab3a1a95ac69eb5ff3d7b33ee4bd8fad004884806064a29541c47f9e5879c2a1fd0f54453413245bdcf53c4c7
2022-03-09 17:57:08 +00:00
Andrew Chow
47bbd3ff4f
Merge bitcoin/bitcoin#24498: qt: Avoid crash on startup if int specified in settings.json
5b1aae12ca qt: Avoid crash on startup if int specified in settings.json (Ryan Ofsky)
84b0973e35 test: Add tests for GetArg methods / settings.json type coercion (Ryan Ofsky)

Pull request description:

  Should probably add this change to 23.x as suggested by Luke https://github.com/bitcoin/bitcoin/issues/24457#issuecomment-1059825678. If settings like `prune` are added to `settings.json` in the future, it would be preferable for 23.x releases to respect the setting instead of crash.

  ---

  Fix GUI startup crash reported by Rspigler in https://github.com/bitcoin/bitcoin/issues/24457 that happens if `settings.json` contains an integer value for any of the configuration options which GUI settings can currently clash with (-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy, -proxy, -onion, -onion, -lang, and -prune).

  The fix is a one-line change in `ArgsManager::GetArg`. The rest of the PR just adds a regression test for the GUI and unit tests for ArgsManager::GetArg methods.

ACKs for top commit:
  laanwj:
    Code review ACK 5b1aae12ca
  achow101:
    ACK 5b1aae12ca
  jonatack:
    Code review ACK 5b1aae12ca

Tree-SHA512: 958991b4bead9b82a3879fdca0f8d6405e2a212b7c46cf356f078843a4f156e27fd75fc46e2013aa5159582ead06d343c1ed248d678b3e5bbd312f247e37894c
2022-03-09 10:54:48 -05:00
Andrew Chow
0189df1d31 build, mac: Include arch in codesignature tarball 2022-03-09 10:38:24 -05:00
Andrew Chow
6e9308c6d4 guix: use latest signapple 2022-03-09 10:38:24 -05:00
Sebastian Falbesoner
7573789925 test: check for importprunedfunds RPC errors 2022-03-09 16:16:07 +01:00
MarcoFalke
7003b6ab24
Merge bitcoin/bitcoin#24138: index: Commit MuHash and best block together for coinstatsindex
691d45fdc8 Add coinstatsindex_unclean_shutdown test (Ryan Ofsky)
eb6cc05da3 index: Commit DB_MUHASH and DB_BEST_BLOCK to disk together (Martin Zumsande)

Pull request description:

  Fixes #24076

  Coinstatsindex currently writes the MuHash (`DB_MUHASH`) to disk in `CoinStatsIndex::WriteBlock()` and `CoinStatsIndex::ReverseBlock()`, but the best synced block is written in `BaseIndex::Commit()`. These are called at different points in time, both during the ThreadSync phase, and also after the initial sync is finished and validation callbacks (`BlockConnected()` vs `ChainStateFlushed()`) perform the syncing.

  As a result, the index DB is temporarily in an inconsistent state, and if bitcoind is terminated uncleanly (so that there is no time to call `Commit()` by receiving an interrupt or by flushing the chainstate) this leads to problems:
  On the next startup, `Init()` will read the best block and a MuHash that corresponds to a different (higher) block. Indexing will  be picked up at the the best block processing some blocks again, but since MuHash is a rolling hash, it will process some utxos twice and the muhashes for all future blocks will be wrong, as was observed in #24076.

  Fix this by always committing `DB_MUHASH` together with `DB_BEST_BLOCK`.

  Note that the block data for the index is still written at different times, but this does not corrupt the index - at worst, these entries will be processed another time and overwritten after an unclean shutdown and restart.

ACKs for top commit:
  ryanofsky:
    Code review ACK 691d45fdc8. Only change since last review is adding test
  fjahr:
    ACK 691d45fdc8

Tree-SHA512: e1c3b5f06fa4baacd1b070abb0f8111fe2ea4a001ca8b8bf892e96597cf8b5d5ea10fa8fb837cfbf46648f052c742d912add4ce26d4406294fc5fc20809a0e1b
2022-03-09 11:43:13 +01:00
Hennadii Stepanov
f1f994a122
doc: Add guix prefix for changes to reproducible builds 2022-03-09 11:35:17 +01:00
MarcoFalke
aa83bbb1fe
Merge bitcoin/bitcoin#24490: tests: Ensure sorted/multi_a descriptors always generate different addrs
db27ac9354 tests: Ensure sorted/multi_a descriptors always generate different addrs (Andrew Chow)

Pull request description:

  Sometimes the multi_a and sortedmulti_a descriptors will produce some of the same addresses in the tests. This causes the wallets to start generating addresses at a different index as they detect that one of the addresses is used. This subsequently causes a test failure.

  To avoid this problem, use descriptors that will produce unique addresses by putting one of the multi_a in a different branch.

ACKs for top commit:
  ajtowns:
    ACK db27ac9354
  theStack:
    Tested ACK db27ac9354

Tree-SHA512: 0f57822bf4c7c79da304f092d7d43d6118e78a087cbeb0766fbbf634dc27911ae723d5d41350884d3b63a24d3b3817944f7e5fa534afb849161dd008a1e4a62f
2022-03-09 11:33:03 +01:00
fanquake
fe5fdbd687
Merge bitcoin/bitcoin#24495: guix: only use native GCC 7 toolchain for Linux builds
bb12870bac guix: only use native GCC 7 toolchain for Linux builds (fanquake)

Pull request description:

  The macOS and Windows builds do not require a GCC 7 toolchain, and this
  is actually causing build issues, i.e #24211. So switch to using a GCC
  10 native toolchain for both. We can't switch to using a GCC 7+ native
  toolchain for Linux without patching around glibc build issues (something
  to look at for a future change).

  Fixes #24211.

  Guix Builds (on x86_64):
  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  6fece1c8ed69bd724c76dfd768f03b1d43c9dfb1767f0fad743fb3e068ce8f7f  guix-build-bb12870bac23/output/aarch64-linux-gnu/SHA256SUMS.part
  555c1245581eff3013a2b56a3c7acb2923de9117dd5d108d4b7954e22f386dd1  guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu-debug.tar.gz
  e8f10a3791a4245566dab8253b76dcac3354bdfad9b9575743e937b52e364494  guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu.tar.gz
  c4339db89259e5a8e5666fc807c198a49162d500c2143f8a1dc86e6e7ca32bbc  guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part
  6123682411cbb16bfa41d31cb4a9673744ad8c09b6f8586a4dfda08bc5f7a682  guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz
  3dcd70f65dd3dfd7385ac6715244fb6c696257e622220310abae7279cbd2a3a4  guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz
  47c5235cce1e3e2e88a461e48e54a29dffb7ac0d8b57955f4e6977273af113f3  guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part
  3584eec693b82b1b4e81094132a9a5e3ebf4a72a3c3cfe9914f24da62c2e2014  guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz
  4a6e561abfc3f69e57a05fc278d75b6f58f82dec50b9b3acbf9745706be91d60  guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
  36a88bc090927493ed31635e1412dc01a81fb034d612c21ebb8b8602b7529ad2  guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
  d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9  guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz
  b676ae5d37fdac267c82bcc57d76e25694f2ee2292f4d012648a0e496104f48d  guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part
  00cad11e137030b1165437a91d4e9f2827b1abe54b5ff14709abeab0a33711b8  guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz
  e715686469924452e1d35b93a64aa1fe1a85f5592757e8c24feda03db821fc48  guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz
  20547e405ab88d84a228563ec7aaa965515b2714f65cc16f3288f8c885fe39db  guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part
  707d2f14a7b73cc73710297d4d8f1773864c27a5e44ef45a97c0437ce4b291e0  guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz
  6930ddbb6d5aebfd901ec30ad68749338265d43b73ad11015a320af37620d6e9  guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz
  2af7a3a50622ed1b2b271b655b8319f1b34f605f97381a66ee4625c1864cc3e2  guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part
  0e9e0878e446af7cd33782cf6d8a0cfb163b1ade7c87d5a6c6d7c315436bbb31  guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz
  6c8994f11fadbfda8fc9c57deeaf67568b8368084c7959a56aabde89c99033d1  guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz
  5214d7276030ea9721b2f8ed715308d2e3bf46158ddc030c7aa6f40098e3bc9b  guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part
  5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2  guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
  3a26d5e127fd2a723601fe14855b49cdb39c6fe6f407ca0d84a833eac6e4f47d  guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
  92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e  guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz
  056a78e9f0aaed10aa7d734746d3adb27bb8ea0856829e7fedd2cb02f1234c62  guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part
  77a493b1e5409d422b2006d46bf9de1e151485fc65680e4d4dd07c28a0264c51  guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz
  ccef5699e8a6153dbf35deb35f9d63439a5ef19234b9923840fe23780d41a983  guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz
  0d64b0f1797f2b25eb7be65045f25b0297409250e8cc298a711a790b69534066  guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part
  471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz
  be7af6c54a52b58f696a9cabda21ec9c9748150b5874b21d4377199db7d70b7b  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip
  d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe
  43a038525f2383fdb9ed7f0d0d709d7f353933f3bf066779bc27503282acc0c5  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip
  ```

  Guix Builds (on arm64 [skipping aarch64 HOST](https://github.com/bitcoin/bitcoin/issues/22458)):
  ```bash
  root@3b26b9608b88:/bitcoin# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  9da540efe1e32ea74c1da5b9d17436d4de75f5d2b370d09cfdb06b044b3c816a  guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part
  ade319778d571de3727600d2bbbccbdb35cdaa138f2a941e0be58d94899b2ce5  guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz
  1bd1790c002a40b6db1378f5344e7e34df0cd0fd7f29dbe98db5397b52b9dde9  guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz
  e457b5f6a30d713faa521969d2f8b56e3176f63c3e116c4d149b63f9fa0de80f  guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part
  13f1b769c6af61ee4ef057f36715d63390c42ae29fae301f6cf65bdf644c6adf  guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz
  278c0c1134aed42e575d8af2c328a26e88765f0b0686e06cea1c884bd821cd28  guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
  6b5602fe63b9fb546ba0897bf5563714fad83e4c3a0cb285ed4961ec1a5e488d  guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
  d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9  guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz
  0292906278db266a67f5c780af12a2c91ec62007c6a72e6c8b37463701d838cb  guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part
  83362d3d84b00674359df9300729e1a2b3cf14cf2b9b71b9bb46fe9610ab0e6d  guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz
  3d5a538d28ccb97a239da358d1390add1d20e4c4d89e873a29aed3f92728e532  guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz
  8eb7194b2019b5ddb12f88fee8a76d8923bd0883de817c3bf396ea16e5b0543e  guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part
  3ec4a6cff3c974a1603276e5d75bc398522d543b6f9770a74c9a7acf6dc79c82  guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz
  5b5eeb539362d6664a007d4856b5779a55ab714a96134749b5cfe870a4b5a7f9  guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz
  3201f796777a9fc029dddc085489afcf14b68cf77b0511d3b52cc336fb58baad  guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part
  a46286b4d94de7189c93682d37c8bd3910f5ca2f612fc939b6e8ff3e56a4feff  guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz
  e88fd7b312879fd7dc254674532535a05efaeb7167145541440289d45ec9ba17  guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz
  31659aa39146ad25631cc2030b415bec6892fa9cffebfd8c6da2d9b0c552773b  guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part
  5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2  guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
  7a75daff1427fa8839f35ce84fda19c95a6c82365937dc67f988bc8853fc1948  guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
  92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e  guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz
  bbc0c2fc3b142191ea5403095b9da1691073375b178e06eea68736c3a4b8477f  guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part
  121fc43297b045af7fbe3904a1df94ff55e4908344eb97d48e50091216ecfdc2  guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz
  b2fbab5153a52f82390c67e6a14187eb791a3f052cedca0183b81e939932618f  guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz
  4ffca23b6d93ed888b7ac5a54eb1c06bd04f304f336361655033796f3117d145  guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part
  471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz
  b226fe0f139bc2c4773e67784fc928874cba2ec0322d5da9a60fe5e6fd440f95  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip
  d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe
  a435f9e1637281a8c6b174ec5dbc729ae35cca64928a42e435d57fb3292b9f3f  guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip
  ```

ACKs for top commit:
  dongcarl:
    Code Review ACK bb12870bac
  hebasto:
    ACK bb12870bac, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: 304d1e76b5e74e4f5a946ae29208d695f558891eca6e711c0cb528133896ceca2147f1cdc4c39e5155ef90652555c1e6de52efcb93f1124bf2dde8d9201b630d
2022-03-09 10:24:53 +00:00
laanwj
05e5af5a6c
Merge bitcoin/bitcoin#24507: fix CI: bitcoin-chainstate: Lock cs_main to UnloadBlockIndex
7a68fe4831 bitcoin-chainstate: Lock cs_main to UnloadBlockIndex (Carl Dong)

Pull request description:

  This was introduced because of a silent merge conflict.

ACKs for top commit:
  promag:
    ACK 7a68fe4831
  jonatack:
    ACK  7a68fe4831

Tree-SHA512: 4c135efd68604452485a129e731675ff5917c157a70c77dd702211d9902c21b3b29380a881723f43ecba4762bc864b036881bb502b3b792e581565dcaa7a7ed4
2022-03-09 11:16:50 +01:00
fanquake
0cc5a19205
Merge bitcoin/bitcoin#24503: guix: use the latest version of signapple
40894f6771 guix: use latest upstream signapple (fanquake)
cbc3f63f41 guix: use latest upstream python-certvalidator (fanquake)

Pull request description:

  Update our signapple and python-certvalidator dependencies to the latest available versions. The latest signapple includes [improvements for signing M1 binaries](bf4d906220) and [better error output](9f42f3c829) when applying signatures (i.e applying the wrong signature type to a binary).

  Guix Build (x86_64):
  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  53d4207c9aaa3fd1a596796566d88e9d77bbf4bc85a1772e2f6cc5c5ebd9eca8  guix-build-40894f677168/output/aarch64-linux-gnu/SHA256SUMS.part
  4a472d63838e6b27317cb3d2bea72a9b4e5c6ee70b4b0e5191b343e3daad73cf  guix-build-40894f677168/output/aarch64-linux-gnu/bitcoin-40894f677168-aarch64-linux-gnu-debug.tar.gz
  45307531316cc4b7915cff2764af1e713711f0ac1dbce55f5a5c9434a080a29d  guix-build-40894f677168/output/aarch64-linux-gnu/bitcoin-40894f677168-aarch64-linux-gnu.tar.gz
  57fbc2a5ccb4ac77ce6bfba073d0bc4d561cdbe552abd0d322dbd52bce7f9392  guix-build-40894f677168/output/arm-linux-gnueabihf/SHA256SUMS.part
  d30b9a815a87af37814a7b8ccb39551fafe9f9d587182a154e14597393417e41  guix-build-40894f677168/output/arm-linux-gnueabihf/bitcoin-40894f677168-arm-linux-gnueabihf-debug.tar.gz
  7b103a83aa181374941785427a96a15063ae757f15913b7a7b1401d70da781a3  guix-build-40894f677168/output/arm-linux-gnueabihf/bitcoin-40894f677168-arm-linux-gnueabihf.tar.gz
  b5c9eed6a1b9e728217c1e9d96af6d11332f4d6b74f5482d972fccb2e6c35a2b  guix-build-40894f677168/output/arm64-apple-darwin/SHA256SUMS.part
  81915be1d32a6fb81b45f0f128ecc68e0bba75c5c719d5bf3d5e4f512f436631  guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-arm64-apple-darwin.tar.gz
  185643a4bdf915c3968c1265c3aedb3f8865904cddaaee1bf02c8ce08cb7d8cc  guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-osx-unsigned.dmg
  d9de7d15ebca380ec65e39f362a051994d515944665e535929fead0c1b6d6b56  guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-osx-unsigned.tar.gz
  ca94146ac95f623ba5b63d52dfc8b5909fd9a1a406fff447cad83b059b191a49  guix-build-40894f677168/output/dist-archive/bitcoin-40894f677168.tar.gz
  e1637718b3d605896c9cfb8c309207acc8ac406acb2d9a3b6d8c83edba196c7c  guix-build-40894f677168/output/powerpc64-linux-gnu/SHA256SUMS.part
  559f5376dd7a5c59b620f2e64290c265ef1a70c0cdc94c5d7468e3d51b418c12  guix-build-40894f677168/output/powerpc64-linux-gnu/bitcoin-40894f677168-powerpc64-linux-gnu-debug.tar.gz
  44f34dfc2fddeabfbb75b301d7cd9282283aa4c1b1f60815536eaa40c8faf136  guix-build-40894f677168/output/powerpc64-linux-gnu/bitcoin-40894f677168-powerpc64-linux-gnu.tar.gz
  d4904f60f22656abaf1b1e933cf321207dbf1902149f68a4857909c38b0d861c  guix-build-40894f677168/output/powerpc64le-linux-gnu/SHA256SUMS.part
  76e76b99721cec1d382a190d3fd5315e8b70e07686681f30ace13f7f252ac2b7  guix-build-40894f677168/output/powerpc64le-linux-gnu/bitcoin-40894f677168-powerpc64le-linux-gnu-debug.tar.gz
  4c3e5d1f62c21fe2dc47ceba3fa067ef7d3c1fa1914a6d37a8ba1262a82c54f1  guix-build-40894f677168/output/powerpc64le-linux-gnu/bitcoin-40894f677168-powerpc64le-linux-gnu.tar.gz
  816f2d6b0705ec5e07a408ed3a97a07066189b9a89489e7ce67b4cb73a503bb9  guix-build-40894f677168/output/riscv64-linux-gnu/SHA256SUMS.part
  42a9b52da8829a77cde4bae92b81f914c1da81cc39c6312b17dcdc13b2ea5273  guix-build-40894f677168/output/riscv64-linux-gnu/bitcoin-40894f677168-riscv64-linux-gnu-debug.tar.gz
  b8e1ee469c77860998d4eb71166f22d83ad2487573b4b59600f42f25926431ed  guix-build-40894f677168/output/riscv64-linux-gnu/bitcoin-40894f677168-riscv64-linux-gnu.tar.gz
  bd5b059d432b7f387f47feff4feaf6730d13cfed68298cdcf7282fb1a4e5a9e7  guix-build-40894f677168/output/x86_64-apple-darwin/SHA256SUMS.part
  ff7a2b16ea40cf60c9ddb88eef60c36354b72f3ea1e9cac2609d876ad3d85149  guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx-unsigned.dmg
  71416640e454374a2165992c4e9caf11ffc2129ef1e7fa15c26bf8d712e4c20c  guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx-unsigned.tar.gz
  82755c00fd33f1c5afa40ef3148e3d802c387b4b64593215f54362167d43eb95  guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx64.tar.gz
  824c65decc1169c94d68eaf2c91fec9d76a14521daffcf0ef4cf952c0ca2f27e  guix-build-40894f677168/output/x86_64-linux-gnu/SHA256SUMS.part
  dbff4685658ab2e26bb90ed3a454559a41bb579730f13012335f52fd8e7f664c  guix-build-40894f677168/output/x86_64-linux-gnu/bitcoin-40894f677168-x86_64-linux-gnu-debug.tar.gz
  32e9f8988b7e6f663d38f84160e00580adeb1915367afefed0a44c76ffcc4ab8  guix-build-40894f677168/output/x86_64-linux-gnu/bitcoin-40894f677168-x86_64-linux-gnu.tar.gz
  e3d09fa9e5054f4801ec1ebb530f0990b9675a3e99ffee6bb36b524f37acca13  guix-build-40894f677168/output/x86_64-w64-mingw32/SHA256SUMS.part
  3ed8d3f5d9d935d015429962d305781cefcc7bd2616fda105f4f14a088f5e9a4  guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win-unsigned.tar.gz
  bf55846641b6877c5d8415ecbd172a061c7dc822b119247a0f6594d4bd1a8d90  guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64-debug.zip
  70a10d7d0843bb4b2dde80a0d0d1543e26d9eb7a38185adf3b51001e107f414e  guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64-setup-unsigned.exe
  264a12164944ec803e330248365704b7ca47b9ed81882f73c3c6ec71a65806e0  guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64.zip
  ```

ACKs for top commit:
  achow101:
    ACK 40894f6771

Tree-SHA512: 0d2e49829bb70fba0abd96288a922c945474ef071eefc7c35c2713046016ca95e154a2f9fb9ba73a49a9cc7ef42d74e94aad111164103fa65e464a8cbeadac73
2022-03-09 09:06:39 +00:00