Commit graph

34963 commits

Author SHA1 Message Date
Sebastian Falbesoner
76b3c37fcb refactor: wallet: return util::Result from GetReservedDestination methods 2022-08-05 17:19:09 +02:00
MacroFake
006740b6f6
Merge bitcoin/bitcoin#25721: refactor: Replace BResult with util::Result
a23cca56c0 refactor: Replace BResult with util::Result (Ryan Ofsky)

Pull request description:

  Rename `BResult` class to `util::Result` and update the class interface to be more compatible with `std::optional` and with a full-featured result class implemented in https://github.com/bitcoin/bitcoin/pull/25665. Motivation for this change is to update existing `BResult` usages now so they don't have to change later when more features are added in https://github.com/bitcoin/bitcoin/pull/25665.

  This change makes the following improvements originally implemented in https://github.com/bitcoin/bitcoin/pull/25665:

  - More explicit API. Drops potentially misleading `BResult` constructor that treats any bilingual string argument as an error. Adds `util::Error` constructor so it is never ambiguous when a result is being assigned an error or non-error value.

  - Better type compatibility. Supports `util::Result<bilingual_str>` return values to hold translated messages which are not errors.

  - More standard and consistent API. `util::Result` supports most of the same operators and methods as `std::optional`. `BResult` had a less familiar interface with `HasRes`/`GetObj`/`ReleaseObj` methods. The Result/Res/Obj naming was also not internally consistent.

  - Better code organization. Puts `src/util/` code in the `util::` namespace so naming reflects code organization and it is obvious where the class is coming from. Drops "B" from name because it is undocumented what it stands for (bilingual?)

  - Has unit tests.

ACKs for top commit:
  MarcoFalke:
    ACK a23cca56c0 🏵
  jonatack:
    ACK a23cca56c0

Tree-SHA512: 2769791e08cd62f21d850aa13fa7afce4fb6875a9cedc39ad5025150dbc611c2ecfd7b3aba8b980a79fde7fbda13babdfa37340633c69b501b6e89727bad5b31
2022-08-05 15:33:45 +02:00
fanquake
92f6461cfd
Merge bitcoin/bitcoin#25779: guix: ignore additional failing certvalidator test
4cf3b7d763 guix: ignore additional failing certvalidator test (fanquake)

Pull request description:

  Any Guix build that needs to build the python-certvalidator code will currently fail due to expired certs. So once again ignore the failing tests. Similar to 8588591965.

  ```bash
  ERROR: test_revocation_mode_soft (tests.test_validate.ValidateTests)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "/tmp/guix-build-python-certvalidator-0.1-1.a145bf2.drv-0/source/tests/test_validate.py", line 85, in test_revocation_mode_soft
      validate_path(context, path)
    File "/tmp/guix-build-python-certvalidator-0.1-1.a145bf2.drv-0/source/tests/../certvalidator/validate.py", line 50, in validate_path
      return _validate_path(validation_context, path)
    File "/tmp/guix-build-python-certvalidator-0.1-1.a145bf2.drv-0/source/tests/../certvalidator/validate.py", line 358, in _validate_path
      raise PathValidationError(pretty_message(
  certvalidator.errors.PathValidationError: The path could not be validated because the end-entity certificate expired 2022-07-27 12:00:00Z
  ```

  Guix Build (arm64):
  ```bash
  b843f87a61eb2a44d085ab99793ff095290436102b19cd6d6d703c281eba539f  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/SHA256SUMS.part
  280c19bd0a6899dd6100e1d6f632ba9e845500f58f59ed7d6703d818ae2780f0  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/bitcoin-4cf3b7d763b0-arm64-apple-darwin-unsigned.dmg
  9b80cc44e3eeeadb2a17bdcf10fcae7cca4bceceec8fb47c2c757a43753a03c6  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/bitcoin-4cf3b7d763b0-arm64-apple-darwin-unsigned.tar.gz
  43d781b61817a8e0c6168d6611ccb9a4242cf7289b4cc4b5ac77484f34d01738  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/bitcoin-4cf3b7d763b0-arm64-apple-darwin.tar.gz
  38d261b70baf018f8a1ee980fb139451b085dc484516562af4b5ae86a0b71869  guix-build-4cf3b7d763b0/output/dist-archive/bitcoin-4cf3b7d763b0.tar.gz
  e5d08f055f73a1abf5eef0ea4e55098a53e859d0ea7ff29d21a78e30204e8b5c  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/SHA256SUMS.part
  2388708d670068515bec06219792f34494ab7ac939999572dc4b5d92430e0890  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/bitcoin-4cf3b7d763b0-x86_64-apple-darwin-unsigned.dmg
  cb43edd02b8eb11c3e9d8bf6baf65b5656577a2f7a2b21374f90c08a196aa608  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/bitcoin-4cf3b7d763b0-x86_64-apple-darwin-unsigned.tar.gz
  6f443713f2e23da705defddc09c8c66743691841e01d0debe29dad442454e5c8  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/bitcoin-4cf3b7d763b0-x86_64-apple-darwin.tar.gz
  ```

  Guix Build (x86_64):
  ```bash
  7e18af2409e9811ea2bb2aa41a19dcc0b4ac626bb5effe30909ef21942bfb611  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/SHA256SUMS.part
  b6ec0c9ca967e1e3301894bb2ac92d1fab663cfd620004c8044a3685deb7c9e5  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/bitcoin-4cf3b7d763b0-arm64-apple-darwin-unsigned.dmg
  9f8de6d555d0922fd1fc970628bd2a9a9d3e6779b458038e18bd9d5dd9633a1b  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/bitcoin-4cf3b7d763b0-arm64-apple-darwin-unsigned.tar.gz
  534b83732ff90bca57e748b25465f8d3d52d653e7ca52cf4ce2226e5bed814fc  guix-build-4cf3b7d763b0/output/arm64-apple-darwin/bitcoin-4cf3b7d763b0-arm64-apple-darwin.tar.gz
  38d261b70baf018f8a1ee980fb139451b085dc484516562af4b5ae86a0b71869  guix-build-4cf3b7d763b0/output/dist-archive/bitcoin-4cf3b7d763b0.tar.gz
  e5d08f055f73a1abf5eef0ea4e55098a53e859d0ea7ff29d21a78e30204e8b5c  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/SHA256SUMS.part
  2388708d670068515bec06219792f34494ab7ac939999572dc4b5d92430e0890  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/bitcoin-4cf3b7d763b0-x86_64-apple-darwin-unsigned.dmg
  cb43edd02b8eb11c3e9d8bf6baf65b5656577a2f7a2b21374f90c08a196aa608  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/bitcoin-4cf3b7d763b0-x86_64-apple-darwin-unsigned.tar.gz
  6f443713f2e23da705defddc09c8c66743691841e01d0debe29dad442454e5c8  guix-build-4cf3b7d763b0/output/x86_64-apple-darwin/bitcoin-4cf3b7d763b0-x86_64-apple-darwin.tar.gz
  ```

ACKs for top commit:
  achow101:
    ACK 4cf3b7d763
  jarolrod:
    ACK 4cf3b7d763

Tree-SHA512: fd83e05f5d772cdcd5a92862bd65a85f128492972be0cb441770bcee7764f889f13b1d109988d360bb9b294942c5b14e46258442b1b3fa1b2902ce958015a897
2022-08-05 09:58:22 +01:00
MacroFake
7d82f86341
Merge bitcoin/bitcoin#25650: script: default to necessary tags in test/get_previous_releases.py
21a9e94dbb ci: remove hardcoded tag list from ci scripts (josibake)
d530ba390e doc: update test/README.md (josibake)
614d4682ba script: default to necessary tags in get_previous_releases.py (josibake)

Pull request description:

  Almost every time I need to use this script, I forget the tag list is needed and that a specific set of tags is needed for the backwards compatibility tests to work. I end up wasting time reading through the script and googling to find the tag list before remembering it is in `test/README.md`

  I assume (hope) I'm not the only one this happens to, so I figured it would make more sense to have the script default to downloading/building the necessary tags. This has the added benefit of making the script the source of truth: the script already needs to be updated with the SHA256_SUM of the binary for every new tag that is added, so it makes sense to use `SHA256_SUMS` list as the necessary tag list. This means there is less risk of the README and the script drifting (i.e updating the readme with a new tag and forgetting to update the script, or updating the script and forgetting to update the README). Now all that needs to happen is to update the `SHA256_SUMS` list in the script and everything Just Works (TM)

ACKs for top commit:
  Sjors:
    re-tACK 21a9e94dbb

Tree-SHA512: 97b488227a89a6827584edd251820a7074fad75dfd7f26f1aa5f858e2521d2e02effd0f11e6dc4676e1155d3d5aba6ff94a4b58ffef80dc201376afd5927deb9
2022-08-05 10:51:06 +02:00
fanquake
e038605585
Merge bitcoin/bitcoin#24662: addrman: Use system time instead of adjusted network time
fadd8b2676 addrman: Use system time instead of adjusted network time (MarcoFalke)

Pull request description:

  This changes addrman to use system time for address relay instead of the network adjusted time.

  This is an improvement, because network time has multiple issues:

  * It is non-monotonic, even if the system time is monotonic.
  * It may be wrong, even if the system time is correct.
  * It may be wrong, if the system time is wrong. For example, when the node has limited number of connections (`4`), or the system time is wrong by too much (more than +-70 minutes), or the system time only got wrong after timedata collected more than half of the entries while the time was correct, ...)

  This may slightly degrade addr relay for nodes where timedata successfully adjusted the time. Addr relay can already deal with minor offsets of up to 10 minutes. Offsets larger than this should still allow addr relay and not result in a DoS.

ACKs for top commit:
  dergoegge:
    Code review ACK fadd8b2676

Tree-SHA512: b6c178fa01161544e5bc76c4cb23e11bcc30391f7b7a64accce864923766647bcfce2e8ae21d36fb1ffc1afa07bc46415aca612405bd8d4cc1f319c92a08498f
2022-08-05 09:03:33 +01:00
MacroFake
2c3115d4f5
Merge bitcoin/bitcoin#25773: test: Target exact weight in MiniWallet _bulk_tx
fa2537cf0a test: Target exact weight in MiniWallet _bulk_tx (MacroFake)

Pull request description:

  Seems better to target the exact weight than a weight that is up to more than 2000 WU larger.

  Also, replace a broad `-acceptnonstdtxn=1` with `-datacarriersize=100000` to document the test assumptions better.

ACKs for top commit:
  theStack:
    Code-review ACK fa2537cf0a

Tree-SHA512: cf02c3082a13195b8aa730866aeaf2575ce01974ae2b0244739d8cfc12e60c66312729ed703bb3214651744166a3b560bfaa8dc302ef46ed79fc4d1fe7fcc214
2022-08-04 19:21:48 +02:00
fanquake
e09ad284c7
Merge bitcoin/bitcoin#24675: util: Use ArgsManager::GetPathArg more widely
b01f336708 util, refactor: Drop explicit conversion to fs::path (Hennadii Stepanov)
138c668e2b util, refactor: Use GetPathArg to read "-rpccookiefile" value (Hennadii Stepanov)
1276090705 util, refactor: Use GetPathArg to read "-conf" value (Hennadii Stepanov)

Pull request description:

  This PR is a continuation of bitcoin/bitcoin#24265 and bitcoin/bitcoin#24306.

  Now the following command-line arguments / configure options been read with the `GetPathArg` method:
  - `-conf`, also `includeconf` values been normalized
  - `-rpccookiefile`

ACKs for top commit:
  jarolrod:
    Code Review ACK b01f336708
  ryanofsky:
    Code review ACK b01f336708. Changes since last review: just dropping first commit (NormalizedPathFromString) as suggested

Tree-SHA512: 2d26d50b73542acdbcc63a32068977b2a49a017d31ca337471a0446f964eb0a6e3e4e3bb1ebe6771566a260f2cae3bc2ebe93b4b523183cea0d51768daab85c9
2022-08-04 16:58:01 +01:00
fanquake
36c83b40bd
Merge bitcoin/bitcoin#25023: Remove unused SetTip(nullptr) code
faab8dceb3 Remove unused SetTip(nullptr) code (MacroFake)

Pull request description:

  Now that this path is no longer used after commit b51e60f914, we can remove it.

  Future code should reset `CChain` by simply discarding it and constructing a fresh one.

ACKs for top commit:
  ryanofsky:
    Code review ACK faab8dceb3. Just moved an assert statement since last review

Tree-SHA512: 7dc273b11133d85d32ca2a69c0c7c07b39cdd338141ef5b51496e7de334a809864d5459eb95535497866c8b1e468aae84ed8f91b543041e6ee20130d5622874e
2022-08-04 16:48:14 +01:00
glozow
7312effe6a
Merge bitcoin/bitcoin#25527: [kernel 3c/n] Decouple validation cache initialization from ArgsManager
0f3a2532c3 validationcaches: Use size_t for sizes (Carl Dong)
41c5201a90 validationcaches: Add and use ValidationCacheSizes (Carl Dong)
82d3058539 cuckoocache: Check for uint32 overflow in setup_bytes (Carl Dong)
b370164b31 validationcaches: Abolish arbitrary limit (Carl Dong)
08dbc6ef72 cuckoocache: Return approximate memory size (Carl Dong)
0dbce4b103 tests: Reduce calls to InitS*Cache() (Carl Dong)

Pull request description:

  This is part of the `libbitcoinkernel` project: #24303, https://github.com/bitcoin/bitcoin/projects/18

  This PR is **_NOT_** dependent on any other PRs.

  -----

  a.k.a. "Stop calling `gArgs.GetIntArg("-maxsigcachesize")` from validation code"

  This PR introduces the `ValidationCacheSizes` struct and its corresponding `ApplyArgsManOptions` function, removing the need to call `gArgs` from `Init{Signature,ScriptExecution}Cache()`. This serves to further decouple `ArgsManager` from `libbitcoinkernel` code.

  More context can be gleaned from the commit messages.

ACKs for top commit:
  glozow:
    re ACK 0f3a2532c3
  theStack:
    Code-review ACK 0f3a2532c3
  ryanofsky:
    Code review ACK 0f3a2532c3. Rebase and comment tweak since last

Tree-SHA512: a492ca608466979807cac25ae3d8ef75d2f1345de52a156aa0d222c5a940f79f1b65db40090de69183cccdb12297ec060f6c64e57a26a155a94fec80e07ea0f7
2022-08-04 16:43:29 +01:00
fanquake
4cf3b7d763
guix: ignore additional failing certvalidator test
Similar to 8588591965.

```bash
ERROR: test_revocation_mode_soft (tests.test_validate.ValidateTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/guix-build-python-certvalidator-0.1-1.a145bf2.drv-0/source/tests/test_validate.py", line 85, in test_revocation_mode_soft
    validate_path(context, path)
  File "/tmp/guix-build-python-certvalidator-0.1-1.a145bf2.drv-0/source/tests/../certvalidator/validate.py", line 50, in validate_path
    return _validate_path(validation_context, path)
  File "/tmp/guix-build-python-certvalidator-0.1-1.a145bf2.drv-0/source/tests/../certvalidator/validate.py", line 358, in _validate_path
    raise PathValidationError(pretty_message(
certvalidator.errors.PathValidationError: The path could not be validated because the end-entity certificate expired 2022-07-27 12:00:00Z
```
2022-08-04 13:29:20 +01:00
fanquake
f765d4e232
Merge bitcoin/bitcoin#25770: build: Fix help string for --enable-external-signer configure option
8df063e537 build: Fix help string for `--enable-external-signer` configure option (Hennadii Stepanov)

Pull request description:

  This PR is a follow up of bitcoin/bitcoin#24065 and fixes the help string according to the actual default value 816ca01650/configure.ac (L324-L327)

ACKs for top commit:
  kristapsk:
    cr utACK 8df063e537
  jarolrod:
    ACK 8df063e537

Tree-SHA512: ad3f457a53c9238ddd8ded9efd1224e564e6cb9da8b7ff7733a11e32a7daad5c0f6c6223509218f44944a874470cb0d2447897662eaf4e78c763b30785717c50
2022-08-04 09:07:09 +01:00
fanquake
08085c764d
Merge bitcoin/bitcoin#25633: depends: don't restrict --enable-lto to non-guix cctools
7f73f422a4 depends: don't restrict --enable-lto to non-guix cctools (fanquake)
9b60690b94 cctools: fixup building with LTO (fanquake)

Pull request description:

  This wasn't actually disabling LTO support anyways, because it's enabled
  by default.

  Guix Build (x86_64):
  ```bash
  af6e0b5fd494f714a84716161352aee415700c1f50f1f08665a474dc2ed56bad  guix-build-7f73f422a49f/output/aarch64-linux-gnu/SHA256SUMS.part
  1ecdbf2b579204cf2086001df3887da2ba50cd3f7b8f735113cce8f1b634fdb2  guix-build-7f73f422a49f/output/aarch64-linux-gnu/bitcoin-7f73f422a49f-aarch64-linux-gnu-debug.tar.gz
  878ea08855dc559e62fd1932f8a54d53fc63e0ce7d587345c7326892622feee9  guix-build-7f73f422a49f/output/aarch64-linux-gnu/bitcoin-7f73f422a49f-aarch64-linux-gnu.tar.gz
  4d1d35bd329935bc74b82a78a7fb8dd39c3268d4bbb33ecd877079e49de97a88  guix-build-7f73f422a49f/output/arm-linux-gnueabihf/SHA256SUMS.part
  c0c5418dc270d716b354d2190fddde3d25794758dee45c9068e9f5aac20e5617  guix-build-7f73f422a49f/output/arm-linux-gnueabihf/bitcoin-7f73f422a49f-arm-linux-gnueabihf-debug.tar.gz
  5e13ac8cacf1042746eef7e85695469c50d6afc06dfdb5da53039175e5185b52  guix-build-7f73f422a49f/output/arm-linux-gnueabihf/bitcoin-7f73f422a49f-arm-linux-gnueabihf.tar.gz
  218b2463a07503e77711fcf0245bc642eb9ed76e4a3e8b61d66a5c76bdc25c62  guix-build-7f73f422a49f/output/arm64-apple-darwin/SHA256SUMS.part
  dd15af2b7a333f3c4b3f75abd307e1789a1629728a0ae33d8a509478ace91134  guix-build-7f73f422a49f/output/arm64-apple-darwin/bitcoin-7f73f422a49f-arm64-apple-darwin-unsigned.dmg
  5cdfd9fc347007890991c68746b1bb36e0cced57fee685337b3d079d498f687d  guix-build-7f73f422a49f/output/arm64-apple-darwin/bitcoin-7f73f422a49f-arm64-apple-darwin-unsigned.tar.gz
  80f957e78177927ace323ea90d4bad2e8d2b846b199a0dcb085c3ceae8516631  guix-build-7f73f422a49f/output/arm64-apple-darwin/bitcoin-7f73f422a49f-arm64-apple-darwin.tar.gz
  3cb9cb04db3ebf328bfabfda874fce09764f3840c98bd850d85f71892617fb99  guix-build-7f73f422a49f/output/dist-archive/bitcoin-7f73f422a49f.tar.gz
  e4e7c9d5366b658fc420c1fd3cf12bfb9863b8061c83b06fe2492e934bb75ae9  guix-build-7f73f422a49f/output/powerpc64-linux-gnu/SHA256SUMS.part
  da4ea7dd9a131901ff2f7fcd6eba573fe946ea671ae6ada418a4ceebcc4bd3b6  guix-build-7f73f422a49f/output/powerpc64-linux-gnu/bitcoin-7f73f422a49f-powerpc64-linux-gnu-debug.tar.gz
  221f6e1d5193207eed400c186c8f83747fbf90c3244cd044b36acadbed0c83a6  guix-build-7f73f422a49f/output/powerpc64-linux-gnu/bitcoin-7f73f422a49f-powerpc64-linux-gnu.tar.gz
  12d36079b330ec75209219ce58ca580ca5a5eeac64fb7ae424c64e7f3d466ee5  guix-build-7f73f422a49f/output/powerpc64le-linux-gnu/SHA256SUMS.part
  3cef0194569d6fa968e92be1d2189be4f1337272dc213c25b8d4afe6b174310c  guix-build-7f73f422a49f/output/powerpc64le-linux-gnu/bitcoin-7f73f422a49f-powerpc64le-linux-gnu-debug.tar.gz
  a8ff109153926b3240f830c3501977046b6c470b67380a01c55aea2401a1a833  guix-build-7f73f422a49f/output/powerpc64le-linux-gnu/bitcoin-7f73f422a49f-powerpc64le-linux-gnu.tar.gz
  70b3a841bb232fefe27f857ee826ea6a84f59bc781acda608bd6d9385a1ef149  guix-build-7f73f422a49f/output/riscv64-linux-gnu/SHA256SUMS.part
  841a276263877027f256c3b7ad1c5bc3ae3ad4d6a7157690daa947f6809776e2  guix-build-7f73f422a49f/output/riscv64-linux-gnu/bitcoin-7f73f422a49f-riscv64-linux-gnu-debug.tar.gz
  6cce2c36c2a53035d7ee5d285c8b4b99256772c7a9dca1739f0639ecc0bed71d  guix-build-7f73f422a49f/output/riscv64-linux-gnu/bitcoin-7f73f422a49f-riscv64-linux-gnu.tar.gz
  e910b32efebca682cf8bc3994d2c7513b16cdeb6f94cef906efb6629ec53268d  guix-build-7f73f422a49f/output/x86_64-apple-darwin/SHA256SUMS.part
  3a4bc1573d9c576184d69b953ea6a85650d4e15b71503b909ccd4fb8a69ca383  guix-build-7f73f422a49f/output/x86_64-apple-darwin/bitcoin-7f73f422a49f-x86_64-apple-darwin-unsigned.dmg
  60a114ece1d9a274d9f3d80a9633eb22d589213ba53a956f3b1138d7c8f55560  guix-build-7f73f422a49f/output/x86_64-apple-darwin/bitcoin-7f73f422a49f-x86_64-apple-darwin-unsigned.tar.gz
  b6c6eca3e81bfadfed3ddcb7830857c954c8a7b0ff458f14050f4952240ebf27  guix-build-7f73f422a49f/output/x86_64-apple-darwin/bitcoin-7f73f422a49f-x86_64-apple-darwin.tar.gz
  aab972c6f051c379a20eb694128a4df4e3737758fbca3902d28d72cd93e6d33a  guix-build-7f73f422a49f/output/x86_64-linux-gnu/SHA256SUMS.part
  b8e643eeb72cf04664462f815497cbef1443f2e113de14bc93b058d83836c7df  guix-build-7f73f422a49f/output/x86_64-linux-gnu/bitcoin-7f73f422a49f-x86_64-linux-gnu-debug.tar.gz
  3b40fb5f1341cc3b49c9eccc68fc75e1cc7e7d2c6a5664fa2f8f095290e3733a  guix-build-7f73f422a49f/output/x86_64-linux-gnu/bitcoin-7f73f422a49f-x86_64-linux-gnu.tar.gz
  96138d5f591a8ba8589eb81d2c79ee269556996ae93c6a3fc77746e101b60cab  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/SHA256SUMS.part
  6ef2d9436caa550bec7defda1d769bffc2e0fe8f7acf99e2fbcefd2e9b920a64  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64-debug.zip
  91c8c3f0aec623f4183c4ebc141816dddb4482509e99812d32298f3e83da920f  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64-setup-unsigned.exe
  1de7cd32d74990cfcd4e00428c53a35742b7a480f18ae1bd60dbf91b60400947  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64-unsigned.tar.gz
  e4d4ba33bbdd8d9181c8422af31ad6127f3627c327a93cbe8245d7154b5a936c  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  4d1d35bd329935bc74b82a78a7fb8dd39c3268d4bbb33ecd877079e49de97a88  guix-build-7f73f422a49f/output/arm-linux-gnueabihf/SHA256SUMS.part
  c0c5418dc270d716b354d2190fddde3d25794758dee45c9068e9f5aac20e5617  guix-build-7f73f422a49f/output/arm-linux-gnueabihf/bitcoin-7f73f422a49f-arm-linux-gnueabihf-debug.tar.gz
  5e13ac8cacf1042746eef7e85695469c50d6afc06dfdb5da53039175e5185b52  guix-build-7f73f422a49f/output/arm-linux-gnueabihf/bitcoin-7f73f422a49f-arm-linux-gnueabihf.tar.gz
  5768bc05947954f8d0caa1869edbba7a9102339d43c47a43cbc5eabdabebfd16  guix-build-7f73f422a49f/output/arm64-apple-darwin/SHA256SUMS.part
  e506d3a635364751eaeccf553bd8c8847e5a2ab4a28bb03108052ae697b49e7e  guix-build-7f73f422a49f/output/arm64-apple-darwin/bitcoin-7f73f422a49f-arm64-apple-darwin-unsigned.dmg
  76fd8b6954ead8bbbba56fbf747459019dcd2def22ab6615ce817f2fff7adcb8  guix-build-7f73f422a49f/output/arm64-apple-darwin/bitcoin-7f73f422a49f-arm64-apple-darwin-unsigned.tar.gz
  f369a59d44cd31a505faf1eefd84b9ecde91f4cb036e79d38188c9ed0f9c094c  guix-build-7f73f422a49f/output/arm64-apple-darwin/bitcoin-7f73f422a49f-arm64-apple-darwin.tar.gz
  3cb9cb04db3ebf328bfabfda874fce09764f3840c98bd850d85f71892617fb99  guix-build-7f73f422a49f/output/dist-archive/bitcoin-7f73f422a49f.tar.gz
  e4e7c9d5366b658fc420c1fd3cf12bfb9863b8061c83b06fe2492e934bb75ae9  guix-build-7f73f422a49f/output/powerpc64-linux-gnu/SHA256SUMS.part
  da4ea7dd9a131901ff2f7fcd6eba573fe946ea671ae6ada418a4ceebcc4bd3b6  guix-build-7f73f422a49f/output/powerpc64-linux-gnu/bitcoin-7f73f422a49f-powerpc64-linux-gnu-debug.tar.gz
  221f6e1d5193207eed400c186c8f83747fbf90c3244cd044b36acadbed0c83a6  guix-build-7f73f422a49f/output/powerpc64-linux-gnu/bitcoin-7f73f422a49f-powerpc64-linux-gnu.tar.gz
  12d36079b330ec75209219ce58ca580ca5a5eeac64fb7ae424c64e7f3d466ee5  guix-build-7f73f422a49f/output/powerpc64le-linux-gnu/SHA256SUMS.part
  3cef0194569d6fa968e92be1d2189be4f1337272dc213c25b8d4afe6b174310c  guix-build-7f73f422a49f/output/powerpc64le-linux-gnu/bitcoin-7f73f422a49f-powerpc64le-linux-gnu-debug.tar.gz
  a8ff109153926b3240f830c3501977046b6c470b67380a01c55aea2401a1a833  guix-build-7f73f422a49f/output/powerpc64le-linux-gnu/bitcoin-7f73f422a49f-powerpc64le-linux-gnu.tar.gz
  70b3a841bb232fefe27f857ee826ea6a84f59bc781acda608bd6d9385a1ef149  guix-build-7f73f422a49f/output/riscv64-linux-gnu/SHA256SUMS.part
  841a276263877027f256c3b7ad1c5bc3ae3ad4d6a7157690daa947f6809776e2  guix-build-7f73f422a49f/output/riscv64-linux-gnu/bitcoin-7f73f422a49f-riscv64-linux-gnu-debug.tar.gz
  6cce2c36c2a53035d7ee5d285c8b4b99256772c7a9dca1739f0639ecc0bed71d  guix-build-7f73f422a49f/output/riscv64-linux-gnu/bitcoin-7f73f422a49f-riscv64-linux-gnu.tar.gz
  e910b32efebca682cf8bc3994d2c7513b16cdeb6f94cef906efb6629ec53268d  guix-build-7f73f422a49f/output/x86_64-apple-darwin/SHA256SUMS.part
  3a4bc1573d9c576184d69b953ea6a85650d4e15b71503b909ccd4fb8a69ca383  guix-build-7f73f422a49f/output/x86_64-apple-darwin/bitcoin-7f73f422a49f-x86_64-apple-darwin-unsigned.dmg
  60a114ece1d9a274d9f3d80a9633eb22d589213ba53a956f3b1138d7c8f55560  guix-build-7f73f422a49f/output/x86_64-apple-darwin/bitcoin-7f73f422a49f-x86_64-apple-darwin-unsigned.tar.gz
  b6c6eca3e81bfadfed3ddcb7830857c954c8a7b0ff458f14050f4952240ebf27  guix-build-7f73f422a49f/output/x86_64-apple-darwin/bitcoin-7f73f422a49f-x86_64-apple-darwin.tar.gz
  aab972c6f051c379a20eb694128a4df4e3737758fbca3902d28d72cd93e6d33a  guix-build-7f73f422a49f/output/x86_64-linux-gnu/SHA256SUMS.part
  b8e643eeb72cf04664462f815497cbef1443f2e113de14bc93b058d83836c7df  guix-build-7f73f422a49f/output/x86_64-linux-gnu/bitcoin-7f73f422a49f-x86_64-linux-gnu-debug.tar.gz
  3b40fb5f1341cc3b49c9eccc68fc75e1cc7e7d2c6a5664fa2f8f095290e3733a  guix-build-7f73f422a49f/output/x86_64-linux-gnu/bitcoin-7f73f422a49f-x86_64-linux-gnu.tar.gz
  96138d5f591a8ba8589eb81d2c79ee269556996ae93c6a3fc77746e101b60cab  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/SHA256SUMS.part
  6ef2d9436caa550bec7defda1d769bffc2e0fe8f7acf99e2fbcefd2e9b920a64  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64-debug.zip
  91c8c3f0aec623f4183c4ebc141816dddb4482509e99812d32298f3e83da920f  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64-setup-unsigned.exe
  1de7cd32d74990cfcd4e00428c53a35742b7a480f18ae1bd60dbf91b60400947  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64-unsigned.tar.gz
  e4d4ba33bbdd8d9181c8422af31ad6127f3627c327a93cbe8245d7154b5a936c  guix-build-7f73f422a49f/output/x86_64-w64-mingw32/bitcoin-7f73f422a49f-win64.zip
  ```

ACKs for top commit:
  hebasto:
    ACK 7f73f422a4

Tree-SHA512: 8e49bed15b9f92e9905a004c01134ebcef9d7e006c96a8bab1606b1af8a20d495e3aa9846344bac5169fee86fa611dc660cf0bd04dd07f393e5e3f1b12ad4a01
2022-08-04 08:28:13 +01:00
Carl Dong
0f3a2532c3 validationcaches: Use size_t for sizes
...also move the 0-clamping logic to ApplyArgsManOptions, where it
   belongs.
2022-08-03 12:03:28 -04:00
Carl Dong
41c5201a90 validationcaches: Add and use ValidationCacheSizes
Also:

- Make DEFAULT_MAX_SIG_CACHE_SIZE into constexpr
  DEFAULT_MAX_SIG_CACHE_BYTES to utilize the compile-time integer
  arithmetic overflow checking available to constexpr.
- Fix comment (MiB instead of MB) for DEFAULT_MAX_SIG_CACHE_BYTES.
- Pass in max_size_bytes parameter to InitS*Cache(), modify log line to
  no longer allude to maxsigcachesize being split evenly between the two
  validation caches.
- Fix possible integer truncation and add a comment.

[META] I've kept the integer types as int64_t in order to not introduce
       unintended behaviour changes, in the next commit we will make
       them size_t.
2022-08-03 12:03:27 -04:00
Carl Dong
82d3058539 cuckoocache: Check for uint32 overflow in setup_bytes
This fixes an potential overflow which existed prior to this patchset.

If CuckooCache::cache<Element, Hash>::setup_bytes is called with a
`size_t bytes` which, when divided by sizeof(Element), does not fit into
an uint32_t, the implicit conversion to uint32_t in the call to setup
will result in an overflow.

At least on x86_64, this overflow is possible:

static_assert(std::numeric_limits<size_t>::max() / 32 <= std::numeric_limits<uint32_t>::max());
static_assert(std::numeric_limits<size_t>::max() / 4 <= std::numeric_limits<uint32_t>::max());

This commit detects such cases and signals to callers that the `size_t
bytes` input is too large.
2022-08-03 12:02:32 -04:00
Carl Dong
b370164b31 validationcaches: Abolish arbitrary limit
1. -maxsigcachesize is a DEBUG_ONLY option

2. Almost 7 years has passed since its semantics change in
   830e3f3d02 from "number of entries" to
   "number of mebibytes"

3. A std::new_handler was added to the codebase after the original PR
   which introduced this limit, which will terminate immediately instead
   of causing trouble by being caught somewhere unexpected.
2022-08-03 12:02:31 -04:00
Carl Dong
08dbc6ef72 cuckoocache: Return approximate memory size
Returning the approximate total size eliminates the need for
InitS*Cache() to do nElems*sizeof(uint256). The cuckoocache has a better
idea of this information.
2022-08-03 12:02:31 -04:00
Carl Dong
0dbce4b103 tests: Reduce calls to InitS*Cache()
In src/test/fuzz/script_sigcache.cpp, we should really be setting up a
full working BasicTestingSetup. The initialize_ function is only run
once anyway.

In src/test/txvalidationcache_tests.cpp, the Dersig100Setup inherits
from BasicTestingSetup, which should have already set up a global script
execution cache without the need to explicitly call
InitScriptExecutionCache.
2022-08-03 12:02:31 -04:00
Ryan Ofsky
a23cca56c0 refactor: Replace BResult with util::Result
Rename `BResult` class to `util::Result` and update the class interface to be
more compatible with `std::optional` and with a full-featured result class
implemented in https://github.com/bitcoin/bitcoin/pull/25665. Motivation for
this change is to update existing `BResult` usages now so they don't have to
change later when more features are added in #25665.

This change makes the following improvements originally implemented in #25665:

- More explicit API. Drops potentially misleading `BResult` constructor that
  treats any bilingual string argument as an error. Adds `util::Error`
  constructor so it is never ambiguous when a result is being assigned an error
  or non-error value.

- Better type compatibility. Supports `util::Result<bilingual_str>` return
  values to hold translated messages which are not errors.

- More standard and consistent API. `util::Result` supports most of the same
  operators and methods as `std::optional`. `BResult` had a less familiar
  interface with `HasRes`/`GetObj`/`ReleaseObj` methods. The Result/Res/Obj
  naming was also not internally consistent.

- Better code organization. Puts `src/util/` code in the `util::` namespace so
  naming reflects code organization and it is obvious where the class is coming
  from. Drops "B" from name because it is undocumented what it stands for
  (bilingual?)

- Has unit tests.
2022-08-03 07:33:01 -04:00
fanquake
4a4289e2c9
Merge bitcoin/bitcoin#25772: test: Add missing static to IsStandardTx helper
fad5bc432b test: Add missing static to IsStandardTx helper (MacroFake)

Pull request description:

  Requested in https://github.com/bitcoin/bitcoin/pull/25648#discussion_r935985961

  Also remove line break from the other two helpers.

ACKs for top commit:
  glozow:
    utACK fad5bc432b
  aureleoules:
    ACK fad5bc432b.
  theStack:
    ACK fad5bc432b

Tree-SHA512: 771411e1fb5939a58491ecf719e1929ab0150b0faae2078ac72bd13117f1d4dcffdeed5027bfae53e4336af25a4f1db47d564abc06a5a2c9ec006a9f67bae104
2022-08-03 12:33:01 +01:00
MacroFake
fa2537cf0a
test: Target exact weight in MiniWallet _bulk_tx
Also, replace broad -acceptnonstdtxn=1 with -datacarriersize=100000
2022-08-03 12:02:20 +02:00
MacroFake
fad5bc432b
test: Add missing static to IsStandardTx helper 2022-08-03 11:19:53 +02:00
MacroFake
9155f9b7af
Merge bitcoin/bitcoin#25379: test: use MiniWallet to simplify mempool_package_limits.py tests
f2f6068b69 test: MiniWallet: add `send_self_transfer_chain` to create chain of txns (Andreas Kouloumos)
1d6b438ef0 test: use MiniWallet to simplify mempool_package_limits.py tests (Andreas Kouloumos)

Pull request description:

  While `wallet.py` includes the MiniWallet class and some helper methods, it also includes some methods that have been moved there without having any direct relation with the MiniWallet class. Specifically `make_chain`, `create_child_with_parents` and `create_raw_chain` methods that were extracted from `rpc_packages.py` at f8253d69d6 in order to be used on both `mempool_package_limits.py` and `rpc_packages.py`.

  Since that change, due to the introduction of additional methods in MiniWallet, the functionality of those methods can now be replicated with the existing MiniWallet methods and simultaneously simplify those tests by using the MiniWallet.

  This PR's goals are

  -  to simplify the `mempool_package_limits.py` functional tests with usage of the MiniWallet.
  -  to make progress towards the removal of the `make_chain`, `create_child_with_parents` and `create_raw_chain` methods of `wallet.py`.

  For the purpose of the aforementioned goals, a helper method `MiniWallet.send_self_transfer_chain` is introduced and method `bulk_transaction` has been integrated in `create_self_transfer*` methods using an optional `target_weight` option.

ACKs for top commit:
  MarcoFalke:
    ACK f2f6068b69 👜

Tree-SHA512: 3ddfa0046168cbf7904ec6b1ca233b3fdd4f30db6aefae108b6d7fb69f34ef6fb2cf4fa7cef9473ce1434a0cc8149d236441a685352fef35359a2b7ba0d951eb
2022-08-03 11:12:05 +02:00
glozow
f6fdedf850
Merge bitcoin/bitcoin#25648: refactor: Remove all policy globals
ddddd6913b sort after scripted-diff (MacroFake)
fac812ca83 scripted-diff: Move mempool_args to src/node (MacroFake)
66664384a6 Remove ::g_max_datacarrier_bytes global (MacroFake)
fad0b4fab8 Pass datacarrier setting into IsStandard (MacroFake)
fa2a6b8516 Combine datacarrier globals into one (MacroFake)
fa477d32ee Remove ::GetVirtualTransactionSize() alias (MacroFake)
fa2f6c1a61 Remove ::fIsBareMultisigStd global (MacroFake)
fadc14e4f5 Remove ::dustRelayFee (MacroFake)
fa8a7f01fe Remove ::IsStandardTx(tx, reason) alias (MacroFake)
fa7a9114e5 test: Remove unused cs_main (MacroFake)
fa9cba7afb Remove ::incrementalRelayFee and ::minRelayTxFee globals (MacroFake)
fa148602e6 Remove ::fRequireStandard global (MacroFake)
fa468bdfb6 Return optional error from ApplyArgsManOptions (MacroFake)

Pull request description:

  This change is good because:

  * It moves module-specific init-logic out of the bloated init.cpp
  * It removes a global from validation.cpp and places it into the data structure that needs it (mempool)

ACKs for top commit:
  glozow:
    re ACK ddddd69
  ryanofsky:
    Code review ACK ddddd6913b
  ariard:
    Light Code Review ACK ddddd69

Tree-SHA512: 9de2ce601cfcaa4dfd7d1c92270568895ce8702ccdffb59829fbe9618eab0fd88d738afef33ed66988c66861115e0340e881056bfb71e2aed4af2440bd37eb1e
2022-08-03 09:47:01 +01:00
MacroFake
faab8dceb3
Remove unused SetTip(nullptr) code 2022-08-03 09:21:53 +02:00
Andrew Chow
de3c46c938
Merge bitcoin/bitcoin#25272: wallet: guard and alert about a wallet invalid state during chain sync
9e04cfaa76 test: add coverage for wallet inconsistent state during sync (furszy)
77de5c693f wallet: guard and alert about a wallet invalid state during chain sync (furszy)

Pull request description:

  Follow-up work to my comment in #25239.

  Guarding and alerting the user about a wallet invalid state during chain synchronization.

  #### Explanation
  if the `AddToWallet` tx write fails, the method returns a wtx `nullptr` without removing the recently added transaction from the wallet's map.

  Which makes that `AddToWalletIfInvolvingMe` return false (even when the tx is on the wallet's map already), --> which makes `SyncTransaction` skip the `MarkInputsDirty` call --> which leads to a wallet invalid state where the inputs of this new transaction are not marked dirty, while the transaction that spends them still exist on the in-memory wallet tx map.

  Plus, as we only store the arriving transaction inside `AddToWalletIfInvolvingMe` when we synchronize/scan block/s from the chain and nowhere else, it makes sense to treat the transaction db write error as a runtime error to notify the user about the problem. Otherwise, the user will lose all the not stored transactions after a wallet shutdown (without be able to recover them automatically on the next startup because the chain sync would be above the block where the txs arrived).

  Note:
  On purpose, the first commit adds test coverage for it. Showing how the wallet can end up in an invalid state. The second commit corrects it with the proposed solution.

ACKs for top commit:
  achow101:
    re-ACK 9e04cfaa76
  jonatack:
    ACK 9e04cfaa76

Tree-SHA512: 81f765eca40547d7764833d8ccfae686b67c7728c84271bc00dc51272de643dafc270014079dcc9727b47577ba67b340aeb5f981588b54e69a06abea6958aa96
2022-08-02 14:06:03 -04:00
MacroFake
ddddd6913b
sort after scripted-diff 2022-08-02 15:31:05 +02:00
MacroFake
fac812ca83
scripted-diff: Move mempool_args to src/node
It is part of the node library. Also, it won't be moved to the kernel
lib, as it will be pruned of ArgsManager.

-BEGIN VERIFY SCRIPT-
 # Move module
 git mv src/mempool_args.cpp src/node/
 git mv src/mempool_args.h   src/node/
 # Replacements
 sed -i 's:mempool_args\.h:node/mempool_args.h:g'     $(git grep -l mempool_args)
 sed -i 's:mempool_args\.cpp:node/mempool_args.cpp:g' $(git grep -l mempool_args)
 sed -i 's:MEMPOOL_ARGS_H:NODE_MEMPOOL_ARGS_H:g'      $(git grep -l MEMPOOL_ARGS_H)
-END VERIFY SCRIPT-
2022-08-02 15:31:01 +02:00
MacroFake
66664384a6
Remove ::g_max_datacarrier_bytes global 2022-08-02 15:29:16 +02:00
MacroFake
fad0b4fab8
Pass datacarrier setting into IsStandard 2022-08-02 15:28:30 +02:00
MacroFake
fa2a6b8516
Combine datacarrier globals into one 2022-08-02 15:28:10 +02:00
MacroFake
fa477d32ee
Remove ::GetVirtualTransactionSize() alias
Each alias is only used in one place.
2022-08-02 15:27:20 +02:00
MacroFake
fa2f6c1a61
Remove ::fIsBareMultisigStd global 2022-08-02 15:27:19 +02:00
MacroFake
fadc14e4f5
Remove ::dustRelayFee 2022-08-02 15:26:49 +02:00
MacroFake
fa8a7f01fe
Remove ::IsStandardTx(tx, reason) alias
Apart from tests, it is only used in one place, so there is no need for
an alias.
2022-08-02 15:26:24 +02:00
MacroFake
fa7a9114e5
test: Remove unused cs_main 2022-08-02 15:25:10 +02:00
MacroFake
fa9cba7afb
Remove ::incrementalRelayFee and ::minRelayTxFee globals 2022-08-02 15:23:36 +02:00
MacroFake
fa148602e6
Remove ::fRequireStandard global 2022-08-02 15:23:24 +02:00
MacroFake
fa468bdfb6
Return optional error from ApplyArgsManOptions
Also pass in a (for now unused) reference to the params.

Both changes are needed for the next commit.
2022-08-02 15:21:50 +02:00
fanquake
0043ec4e13
Merge bitcoin/bitcoin#25687: build: Do not export PKG_CONFIG_{PATH|LIBDIR} variables
b9f06bf05b build: Do not export `PKG_CONFIG_{PATH|LIBDIR}` variables (Hennadii Stepanov)

Pull request description:

  This is an alternative to bitcoin/bitcoin#25660 with no [drawbacks](https://github.com/bitcoin/bitcoin/pull/25660#issuecomment-1191281587).

  Guix builds on `x86_64`:
  ```
  8ac4c1164512d8aa1c4c3e379b5e12d7e91f196dc32decea422ab1edcb51461f  guix-build-b9f06bf05b67/output/aarch64-linux-gnu/SHA256SUMS.part
  0e91431387030b7d2a6aba9368fab7fcf15931477b17c06350101bcb32a49217  guix-build-b9f06bf05b67/output/aarch64-linux-gnu/bitcoin-b9f06bf05b67-aarch64-linux-gnu-debug.tar.gz
  d36ef4c9230d73d73760bf1533535aa8fd325584b11adb9101cff2097f548b88  guix-build-b9f06bf05b67/output/aarch64-linux-gnu/bitcoin-b9f06bf05b67-aarch64-linux-gnu.tar.gz
  280d3c31e755b0e8e58cdcf184435fa6b7b69cf3446651ebfe76f9a632827094  guix-build-b9f06bf05b67/output/arm-linux-gnueabihf/SHA256SUMS.part
  c6e7869ca390a8693c0d569ec89ffdcb128692e0e7cae89332adc0bd0663d0f3  guix-build-b9f06bf05b67/output/arm-linux-gnueabihf/bitcoin-b9f06bf05b67-arm-linux-gnueabihf-debug.tar.gz
  2b0046e12d675c64a157265e16d014bd476be1c6f487f239cbdb151543790eb9  guix-build-b9f06bf05b67/output/arm-linux-gnueabihf/bitcoin-b9f06bf05b67-arm-linux-gnueabihf.tar.gz
  92abf22c6c7e6a72d3018a836a2d3e16d2051af14a0c6add749eca268ddad470  guix-build-b9f06bf05b67/output/arm64-apple-darwin/SHA256SUMS.part
  4cb47c5b5a302f0156ff0e998d0cb8103418f5e0f85b8d47d395771187cd8fda  guix-build-b9f06bf05b67/output/arm64-apple-darwin/bitcoin-b9f06bf05b67-arm64-apple-darwin-unsigned.dmg
  660dab4a573b60a034f06f95a48563e9ea7d96632818140e578cd3ae972eb640  guix-build-b9f06bf05b67/output/arm64-apple-darwin/bitcoin-b9f06bf05b67-arm64-apple-darwin-unsigned.tar.gz
  39ac1ecdce5a848aaca91f9f9dcc2a4436c1d257b27608191af45d4d29054990  guix-build-b9f06bf05b67/output/arm64-apple-darwin/bitcoin-b9f06bf05b67-arm64-apple-darwin.tar.gz
  5afa45e1c9c2e31d97148e868415f6bbaf51def45aeaa32bb13b8a092284139e  guix-build-b9f06bf05b67/output/dist-archive/bitcoin-b9f06bf05b67.tar.gz
  2aff14d389202d87266b93e1c17aa0ebbd9cde787349127f1a891dfddc41b675  guix-build-b9f06bf05b67/output/powerpc64-linux-gnu/SHA256SUMS.part
  650c555c9d3d5b2ae18353d621b51cbdfbe5f2ebce31e7add47887adfd9b0283  guix-build-b9f06bf05b67/output/powerpc64-linux-gnu/bitcoin-b9f06bf05b67-powerpc64-linux-gnu-debug.tar.gz
  38b33f13f2ac03ea2d864a02d5088b34441567bb6af04df9dc0c3aa4a9068cb2  guix-build-b9f06bf05b67/output/powerpc64-linux-gnu/bitcoin-b9f06bf05b67-powerpc64-linux-gnu.tar.gz
  3b435cd35afe0990a6badb3d4f2a5e120c89644b566581db882241e82d5b94ca  guix-build-b9f06bf05b67/output/powerpc64le-linux-gnu/SHA256SUMS.part
  3a3259a8c489e522a1763e4178f4d8b6b49cff927d5ebe9918c853f4d04547b7  guix-build-b9f06bf05b67/output/powerpc64le-linux-gnu/bitcoin-b9f06bf05b67-powerpc64le-linux-gnu-debug.tar.gz
  006df723180d8260112e26089062f2a1ca4742099bf2d9455acd6be1b5395939  guix-build-b9f06bf05b67/output/powerpc64le-linux-gnu/bitcoin-b9f06bf05b67-powerpc64le-linux-gnu.tar.gz
  d13f9c8e9396c46496e06cf6bfbaffae3980e6305024a1e447f73346e66e48a5  guix-build-b9f06bf05b67/output/riscv64-linux-gnu/SHA256SUMS.part
  9b18dfafd51a6d249ed74d884c4a8d1b2cf320133cea8008742bc93583cff19e  guix-build-b9f06bf05b67/output/riscv64-linux-gnu/bitcoin-b9f06bf05b67-riscv64-linux-gnu-debug.tar.gz
  76d29d553f06c7098c67e8fc95f83c45619860988668567f37946efd63668cef  guix-build-b9f06bf05b67/output/riscv64-linux-gnu/bitcoin-b9f06bf05b67-riscv64-linux-gnu.tar.gz
  6661426b6180c8bb908b05f1ea4e8fe81acc02a443784e0ca042feebb1c8770c  guix-build-b9f06bf05b67/output/x86_64-apple-darwin/SHA256SUMS.part
  8310942fddcbf991d3162f94b9e0f2f9f413f10089b6ac31d5c3a73039c3e987  guix-build-b9f06bf05b67/output/x86_64-apple-darwin/bitcoin-b9f06bf05b67-x86_64-apple-darwin-unsigned.dmg
  cdcbb08d7596a3f9a0b3816b113e7e4afd435fa82ae20d2d6750e30ccb13d820  guix-build-b9f06bf05b67/output/x86_64-apple-darwin/bitcoin-b9f06bf05b67-x86_64-apple-darwin-unsigned.tar.gz
  ac02894454dcee5c822304ab83165e500a882f7b5dd4d5f3645ac526652eb707  guix-build-b9f06bf05b67/output/x86_64-apple-darwin/bitcoin-b9f06bf05b67-x86_64-apple-darwin.tar.gz
  fa55686ae7c977ee9ec0213cad8f4021e81153a6de60a5b9f74fb840f173fdfa  guix-build-b9f06bf05b67/output/x86_64-linux-gnu/SHA256SUMS.part
  cf40ec54ea736876a0fa5060ecad41d9215762b6d9b89fb2716cf073729097b9  guix-build-b9f06bf05b67/output/x86_64-linux-gnu/bitcoin-b9f06bf05b67-x86_64-linux-gnu-debug.tar.gz
  4479fe5dc29925d7b51ed20faa44a87b68aa40b1fef979f1061240325892373f  guix-build-b9f06bf05b67/output/x86_64-linux-gnu/bitcoin-b9f06bf05b67-x86_64-linux-gnu.tar.gz
  bef988880e6dbb7be90c4b2b56d5d9a68b91dceb64b2fa38e4d67e8c8cc5a78a  guix-build-b9f06bf05b67/output/x86_64-w64-mingw32/SHA256SUMS.part
  0040f79968d8ebb507358ee86797880a019f9730b92576af125b778bcf5ee233  guix-build-b9f06bf05b67/output/x86_64-w64-mingw32/bitcoin-b9f06bf05b67-win64-debug.zip
  ac63bf2dbf78361133043db7fa24be51c25fc5ddbbe19ea4a1c78e0843054757  guix-build-b9f06bf05b67/output/x86_64-w64-mingw32/bitcoin-b9f06bf05b67-win64-setup-unsigned.exe
  0d9e317a95a613eb2e9216c4c9f5b0046ff52e3b11af80b8de9ac89209f33ab7  guix-build-b9f06bf05b67/output/x86_64-w64-mingw32/bitcoin-b9f06bf05b67-win64-unsigned.tar.gz
  1a47e56d06207f3c86310c6eaec66f2c7693ca810de27ab2f97e67086239d396  guix-build-b9f06bf05b67/output/x86_64-w64-mingw32/bitcoin-b9f06bf05b67-win64.zip
  ```

ACKs for top commit:
  real-or-random:
    utACK b9f06bf05b

Tree-SHA512: b7dc4aa6edd4d3291034b5a00dcf205d56e4a1133058cdc32faafb95eb050377937fa9336820b5ad0fe8550431fcd5f1ed3c7f3da27486bd022a36140c5499ba
2022-08-02 12:20:30 +01:00
fanquake
eb72f6323d
Merge bitcoin/bitcoin#25763: bdb: disable Werror for format-security
b46c6ec52e bdb: disable Werror for format-security (fanquake)

Pull request description:

  This is causing build failures in some build environments, like NixOS.
  I don't think we are going to patch bdb at this point, and this warning
  has existed for as long as we've used bdb.

  Fixes #25211.

  Tested (in Docker) with:
  ```bash
  docker run -it nixos/nix
  nix-shell -p gitMinimal gcc12 libtool pkg-config curl gnumake patch autoconf automake
  git clone https://github.com/bitcoin/bitcoin
  make -C bitcoin/depends bdb
  ```

  Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

  Guix Build (x86_64):
  ```bash
  25981417fe09fa9e6f7b30875dac709a1de1146d77ec3c04bbf18eace16932b7  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/SHA256SUMS.part
  9edc248dad9508ff7ec1ddc121caa606a2da27f5b36f664cb54b17bcdcfa407e  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/bitcoin-b46c6ec52e15-aarch64-linux-gnu-debug.tar.gz
  e3bac816e7b1ef69927a818e6d882af0bf2dae69930181d4a144bfe309078391  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/bitcoin-b46c6ec52e15-aarch64-linux-gnu.tar.gz
  d15461bb5fb5abafb3a515fa37e2f6b49a352e22b22d5d93aa4ecf7705781e72  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/SHA256SUMS.part
  f3d215bcee1e695a83092841544f00f34cbe65d6d5374673ef3b9a686caaaf85  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf-debug.tar.gz
  e9eb5bca37dfeac5207ec427bbe590528841cb9fb7d4a1e28646ebb00386a72d  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf.tar.gz
  d2b13313b5e638d54c77026c8e383c93e32c677fe9b48c457b16d872bf034219  guix-build-b46c6ec52e15/output/arm64-apple-darwin/SHA256SUMS.part
  21dc8ac4f0a1535c9459e9be43d65151e4affd7cdd0a65d2e95f6f8fb0960a71  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.dmg
  2dfb444497b71a546e56e0dbc1dc560860006489edfe0cf2e418378ac36c5780  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.tar.gz
  22ebb15f5bec1f5d610dc4706ebbb0977ed013209d73077a3c601e27db6bc37c  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin.tar.gz
  320d12f518f899fa1b31ca89553362f8e2855a4ae50e9756e8c12cdfbc4c5392  guix-build-b46c6ec52e15/output/dist-archive/bitcoin-b46c6ec52e15.tar.gz
  0c6773c8960746c837e2bd929057dab08f0d2963ef42f0ac071bfcb0fbc57e44  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/SHA256SUMS.part
  2c77c8213fa52bb0395a57d128b179e5615c463e4a4a582b111bf13bb907c293  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu-debug.tar.gz
  74023867ae64c3b32fccead48b3dcb81c55299a61bd921d22bc3a7c937c253fb  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu.tar.gz
  f3fff570610cf13ab77e8ce9b97700b82cf9d3f2ab61662ca49b2c99be824ae2  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a638b18d3281253ad20d54e1dfd83157d6d38c6bd90a30f724de1d29d416aff5  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu-debug.tar.gz
  340f56a514437cf25e75c14d3c90084f67b7c9cd0b304739033db17c9978c754  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu.tar.gz
  35c06a9e06fded9bdaff53c2f142c03e5dc255c3fdfa8bad0af068a29b488471  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/SHA256SUMS.part
  049d06931661ab0f1cbcb37217083c35b809187a6bc51d7173c54c237ee1160d  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu-debug.tar.gz
  a128abdd8898a7fb75f1b293141ec64ef70129576f61415025187d3cb9f2ecc6  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu.tar.gz
  184be693f9633b0642bd75065d7bdf964cec9485af167504eea32d2d8aff8075  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/SHA256SUMS.part
  53ab2fb050533dc9a0f7b301b53d47ca65484f4e4eeea3b1259c353dd2cde4f2  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.dmg
  5d92fcb539b41fb3b41bd1878025ecbb958521caf7eae8c3ae796aa4f235a982  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.tar.gz
  be71b8da7fa0ac39a3f8191293326b300b93b8fe4efba732a78366aebbb971b9  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin.tar.gz
  07c195ad1ad1b00f5062d405913169367b73363a0418330c6add394c9df6e30b  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/SHA256SUMS.part
  4c11ba2d5a38921511b0fc88b1aca0e30f939291176d2c1f93b211d63b04fd45  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu-debug.tar.gz
  694d21edd3f462163ecf5821dae74b39c9ee4fc4f5697fe5865a71a7e3dc24dc  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu.tar.gz
  9b66a629a38e37b2746f237289bf4287184605876583ce24a073e42136e840af  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/SHA256SUMS.part
  7a8d633ac6f2c4a4955fb6dcc64b7560d96bfa74516ab2799ea7fc1b90c58b2f  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-debug.zip
  81169a19c0a954949293fee2c8825a86bfb36a3a34c4c0271d926982cad626e2  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-setup-unsigned.exe
  58be54d27b308f07609447ae6fca8a91e76630d7753adb54e200c576fee8e6c0  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-unsigned.tar.gz
  f13243cb6527bf7e9182673d32ccee32cb160d404271a0057e092a1cb571cc29  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  d15461bb5fb5abafb3a515fa37e2f6b49a352e22b22d5d93aa4ecf7705781e72  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/SHA256SUMS.part
  f3d215bcee1e695a83092841544f00f34cbe65d6d5374673ef3b9a686caaaf85  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf-debug.tar.gz
  e9eb5bca37dfeac5207ec427bbe590528841cb9fb7d4a1e28646ebb00386a72d  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf.tar.gz
  f699f38a59bc888d5b728c934d1bf2a30dc46e6e0dfe4f6109c90c1e557b6334  guix-build-b46c6ec52e15/output/arm64-apple-darwin/SHA256SUMS.part
  e60d6ea30c18bfc948e146f6e8a6d9d53c84500c2117472999bc60e1bfa2dc4a  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.dmg
  8f5693a12671ea789e885b40dfeefdf076dd6f9856bfa867f33b7e1005779dd4  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.tar.gz
  a56b01ad6bf161f4cd7e3f89faea5b464460093131400df8f89c3b78839a72a9  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin.tar.gz
  320d12f518f899fa1b31ca89553362f8e2855a4ae50e9756e8c12cdfbc4c5392  guix-build-b46c6ec52e15/output/dist-archive/bitcoin-b46c6ec52e15.tar.gz
  0c6773c8960746c837e2bd929057dab08f0d2963ef42f0ac071bfcb0fbc57e44  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/SHA256SUMS.part
  2c77c8213fa52bb0395a57d128b179e5615c463e4a4a582b111bf13bb907c293  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu-debug.tar.gz
  74023867ae64c3b32fccead48b3dcb81c55299a61bd921d22bc3a7c937c253fb  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu.tar.gz
  f3fff570610cf13ab77e8ce9b97700b82cf9d3f2ab61662ca49b2c99be824ae2  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a638b18d3281253ad20d54e1dfd83157d6d38c6bd90a30f724de1d29d416aff5  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu-debug.tar.gz
  340f56a514437cf25e75c14d3c90084f67b7c9cd0b304739033db17c9978c754  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu.tar.gz
  35c06a9e06fded9bdaff53c2f142c03e5dc255c3fdfa8bad0af068a29b488471  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/SHA256SUMS.part
  049d06931661ab0f1cbcb37217083c35b809187a6bc51d7173c54c237ee1160d  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu-debug.tar.gz
  a128abdd8898a7fb75f1b293141ec64ef70129576f61415025187d3cb9f2ecc6  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu.tar.gz
  184be693f9633b0642bd75065d7bdf964cec9485af167504eea32d2d8aff8075  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/SHA256SUMS.part
  53ab2fb050533dc9a0f7b301b53d47ca65484f4e4eeea3b1259c353dd2cde4f2  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.dmg
  5d92fcb539b41fb3b41bd1878025ecbb958521caf7eae8c3ae796aa4f235a982  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.tar.gz
  be71b8da7fa0ac39a3f8191293326b300b93b8fe4efba732a78366aebbb971b9  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin.tar.gz
  07c195ad1ad1b00f5062d405913169367b73363a0418330c6add394c9df6e30b  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/SHA256SUMS.part
  4c11ba2d5a38921511b0fc88b1aca0e30f939291176d2c1f93b211d63b04fd45  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu-debug.tar.gz
  694d21edd3f462163ecf5821dae74b39c9ee4fc4f5697fe5865a71a7e3dc24dc  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu.tar.gz
  9b66a629a38e37b2746f237289bf4287184605876583ce24a073e42136e840af  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/SHA256SUMS.part
  7a8d633ac6f2c4a4955fb6dcc64b7560d96bfa74516ab2799ea7fc1b90c58b2f  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-debug.zip
  81169a19c0a954949293fee2c8825a86bfb36a3a34c4c0271d926982cad626e2  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-setup-unsigned.exe
  58be54d27b308f07609447ae6fca8a91e76630d7753adb54e200c576fee8e6c0  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-unsigned.tar.gz
  f13243cb6527bf7e9182673d32ccee32cb160d404271a0057e092a1cb571cc29  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64.zip
  ```

ACKs for top commit:
  ryanofsky:
    Code review ACK b46c6ec52e. Thanks for addressing build issue. Probably there is no real security issue, but could look into that
  jarolrod:
    Code Review ACK b46c6ec52e

Tree-SHA512: 4b6b98e225e9b98fe1426a6402dae28e30327c932268d9bec31bf84aee12ec609ce97bd89a592a1f2cfd4d031ba520130bfef95006f7e09c0692af233f9614bb
2022-08-02 11:52:33 +01:00
Hennadii Stepanov
8df063e537
build: Fix help string for --enable-external-signer configure option 2022-08-02 11:34:41 +01:00
MacroFake
816ca01650
Merge bitcoin/bitcoin#25736: univalue: Remove unused and confusing set*() return value
fa7bef2e80 univalue: Remove unused and confusing set*() return value (MacroFake)

Pull request description:

  The value is:

  * currently unused, and useless without `[[nodiscard]]`
  * confusing, because it is always `true`, unless a num-string is set

  Instead of adding `[[nodiscard]]`, throw when setting is not possible.

ACKs for top commit:
  shaavan:
    ACK fa7bef2e80
  aureleoules:
    ACK fa7bef2e80.

Tree-SHA512: 0d74f96f34cb93b66019ab75e12334c964630cc83434f22e58cc7a4fff2ee96a5767e42ab37f08acb67aeacba6811b09c75f1edc68d5e903ccfc59b1c82de891
2022-08-02 12:30:49 +02:00
Andreas Kouloumos
f2f6068b69 test: MiniWallet: add send_self_transfer_chain to create chain of txns
With this new method, a chain of transactions can be created. This
method is introduced to further simplify the mempool_package_limits.py
tests.
2022-08-01 19:11:36 +03:00
Andreas Kouloumos
1d6b438ef0 test: use MiniWallet to simplify mempool_package_limits.py tests
Moved `bulk_transaction` into MiniWallet class as `_bulk_tx` private
helper method to be used when the newly added `target_weight` option is
passed to `create_self_transfer*`
2022-08-01 19:11:35 +03:00
fanquake
b46c6ec52e
bdb: disable Werror for format-security
This is causing build failures in some build environments, like NixOS.
I don't think we are going to patch bdb at this point, and this warning
has existed for as long as we've used bdb.

Fixes #25211.

Tested (in Docker) with:
```bash
docker run -it nixos/nix
nix-shell -p gitMinimal gcc12 libtool pkg-config curl gnumake patch autoconf automake
git clone https://github.com/bitcoin/bitcoin
make -C bitcoin/depends bdb
```

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
2022-08-01 12:10:00 +01:00
MacroFake
ce3b75690d
Merge bitcoin/bitcoin#25613: doc: empty REVIEWERS file
4d06fc4bed doc: empty REVIEWERS file (fanquake)

Pull request description:

  It seems that it's time for our experiment with this file to come to an
  end.

  See discussion here:
  https://github.com/bitcoin/bitcoin/pull/25560/files#r915491743.

ACKs for top commit:
  MarcoFalke:
    ACK 4d06fc4bed seems best to have devs opt-in to this explicitly by themselves

Tree-SHA512: c9d4f85e6401807d5eb4478c523c56d37baf0a11edfd3c04713f21b4217e168876761b3ed26fe2b3477e06dbaf3c4bb8393ce4274ad4a66258f4c170f628b612
2022-08-01 12:05:20 +02:00
MacroFake
2bca32b7c3
Merge bitcoin/bitcoin#24799: Add test case mimicking issue 24765
395767e9f1 Add test case mimicking issue 24765 (Pieter Wuille)

Pull request description:

  This adds a functional test for the concern brought up in #24765. It turned out to be a non-issue, but since I wrote it anyway, it can't hurt to add it.

Top commit has no ACKs.

Tree-SHA512: fc8d57129d8c68f6d9a41b94b5ff676c87b31f53bc958195d4fe312530ec3e038ebd0bc5e8b9d56be77b7b63fd94574685901901404a4ab8726a5e09d89e86c8
2022-08-01 11:58:57 +02:00
MacroFake
eeb5a94e27
Merge bitcoin/bitcoin#25528: ci: run USDT interface tests in the CI
cc7335edc8 ci: run USDT interface test in a VM (0xb10c)
dba6f82342 test: adopt USDT utxocache interface tests (0xb10c)
220a5a2841 test: hook into PID in tracing tests (0xb10c)

Pull request description:

  Changes a CI task that runs test the previously not run `test/functional/interface_usdt_*.py` functional tests (added in https://github.com/bitcoin/bitcoin/pull/24358).

  This task is run as CirussCI `compute_engine_instance` VM as hooking into the tracepoints is not possible in CirrusCI docker containers (https://github.com/bitcoin/bitcoin/issues/23296#issuecomment-1024920845). We use an unoffical PPA and untrusted  `bpfcc-tools` package in the CI as the Ubuntu jammy and Debian bullseye packages are outdated. We hope use an official package when new Ubuntu/Debian releases are available for the use with Google Compute Engine.

  We make sure to hook into `bitcoind` binaries in USDT interface tests via their PID, instead of their path. This makes sure multiple functional tests running in parallel don't interfere with each other.

  The utxocache USDT interface tests is adopted to a change of the functional test framework that wasn't detected as the tests weren't run in the CI. As the tracepoints expose internals, it can happen that we need to adopt the interface test when internals change. This is a bit awkward, and if it happens to frequently, we should consider generalizing the tests a bit more. For now it's fine, I think.

  See the individual commit messages for more details on the changes.

  Fixes https://github.com/bitcoin/bitcoin/issues/24782
  Fixes https://github.com/bitcoin/bitcoin/issues/23296

  I'd like to hear from reviewers:
  - Are we OK with using the [`hadret/bpfcc`](https://launchpad.net/~hadret/+archive/ubuntu/bpfcc) PPA for now? There is a clear plan when to drop it and as is currently, it could only impact the newly added VM task.
  - ~~Adding a new task increases CI runtime and costs. Should an existing `container` CI task be ported to a VM and reused instead?~~ Yes, see https://github.com/bitcoin/bitcoin/pull/25528#issuecomment-1179509525

ACKs for top commit:
  MarcoFalke:
    cr ACK cc7335edc8

Tree-SHA512: b7fddccc0a77d82371229d048abe0bf2c4ccaa45906497ef3040cf99e7f05561890aef4c253c40e4afc96bb838c9787fae81c8454c6fd9db583276e005a4ccb3
2022-08-01 11:27:29 +02:00
MacroFake
da23320998
Merge bitcoin/bitcoin#25651: refactor: make all NodeImpl/ChainImpl/ExternalSignerImpl members public, rm temporaries, simplify
4bedfd702a refactor: remove unneeded temporaries in node/interfaces, simplify code (Jon Atack)
b27ba169eb refactor: make all NodeImpl/ChainImpl/ExternalSignerImpl members public (Jon Atack)

Pull request description:

  - Make all `NodeImpl`, `ChainImpl` and `ExternalSignerImpl` class members `public` (and document why), to be consistent in all the `*Impl` classes in `src/node/interfaces.cpp` and `src/wallet/interfaces.cpp` and to help future reviewers and contributors.

  - Remove unneeded temporaries in `NodeImpl` and `ChainImpl` methods in `src/node/interfaces.cpp` and simplify, to make the code easier to read and understand and to improve performance by avoiding unnecessary move operations.

ACKs for top commit:
  ryanofsky:
    Code review ACK 4bedfd702a. Changes since last review, applying suggested style & simplifiying first commit. Also avoiding another lock in second commit.

Tree-SHA512: 112f7cad5e2838c94c5b79d61328f42fe75fdb97f401ab49eccf696fc2c6a8a0c0ee55ec974c0602acf7423f78bb82e90eb8a0cc531e1d3347f73b7c83685504
2022-08-01 11:19:55 +02:00