Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Btc upstream changes 2024-01-22 #123

Merged
merged 2,533 commits into from
Feb 22, 2024
Merged

Btc upstream changes 2024-01-22 #123

merged 2,533 commits into from
Feb 22, 2024

Conversation

mxaddict
Copy link
Collaborator

No description provided.

@mxaddict mxaddict changed the title Btc upstream changes 05/28/2023 [WIP] Btc upstream changes 05/28/2023 May 28, 2023
@mxaddict mxaddict changed the title [WIP] Btc upstream changes 05/28/2023 [WIP] Btc upstream changes 06/11/2023 Jul 10, 2023
@mxaddict mxaddict force-pushed the btc-master branch 9 times, most recently from 40e4eef to 4592b29 Compare July 15, 2023 01:14
ismaelsadeeq and others added 17 commits December 19, 2023 17:12
When there is a wallet loading error, it could be a noncritical one so
it is not necessary to make wallet_instance a nullptr. The wallet can
still go on with normal operation in that case, as we do for loading in
bitcoind and bitcoin-qt.
It's not necessary to set up an entire CWallet just so we can get access
to the WalletDatabase and read the records. Instead we can go one level
lower and make just a WalletDatabase.
1757452 test: Add tests for CFeeRate multiplication operator (Kashif Smith)
1553c80 Add multiplication operator to CFeeRate (Murch)

Pull request description:

  Allows us to use
  `coin_selection_params.m_long_term_feerate * 3`
  or
  `3 * coin_selection_params.m_long_term_feerate`
  instead of
  `CFeeRate{coin_selection_params.m_long_term_feerate.GetFee(3000)}`

  inspired by bitcoin#27877 (comment)

ACKs for top commit:
  kevkevinpal:
    reACK [1757452](bitcoin@1757452)
  achow101:
    ACK 1757452
  ajtowns:
    ACK 1757452 ; lgtm
  ismaelsadeeq:
    ACK 1757452

Tree-SHA512: a86faac1efd1b7688630cd811246533d184d56b62064a7fd9007de95dbf81fa668aa2252253d102fba67517b6a4ca2dc367c5388b8ab936215734d7d370740cf
These provide simple and clear ways to write the most common logging
operations:

    LogInfo("msg");
    LogDebug(BCLog::LogFlags::NET, "msg");

    LogError("msg");
    LogWarning("msg");
    LogTrace(BCLog::LogFlags::NET, "msg");

For cases where the level cannot be hardcoded, LogPrintLevel(category,
level, ...) remains available.
Replace LogPrintfCategory with alternative unconditional log statements.
…kPackageLimits` returns

19bb65b [doc]: add doxygen return comment for CheckPackageLimits (ismaelsadeeq)

Pull request description:

  This PR adds a  doxygen comment on `CheckPackageLimits` describing what the method returns.

  Fixes bitcoin#28863 (comment)

ACKs for top commit:
  Sjors:
    utACK 19bb65b
  Zero-1729:
    utACK 19bb65b

Tree-SHA512: ccf1cc00a44d3fff60f28ad6766019a9f61b349729eab3cb02bc76b13c2e55441348a1602d806e60e4b2eabeb1f5d1ddacddf86c0bcdb78b078bb3a863b650c2
The Apple notary service requires submitted app bundles to be configured to use the hardened runtime libraries.  This is configured at signing time, and supported by the signapple tool Bitcoin Core uses for reproduceable signed binaries.  We simply need to pass "--hardened-runtime" when the signature is created.  Once attached to the bundle, the resulting codesigned binary can be successfully submitted to the Apple binary notarization service by any Apple Developer.
…/`change_output_size`

cd81007 fuzz: coinselection, improve `min_viable_change`/`change_output_size` (brunoerg)

Pull request description:

  Instead of "randomly" fuzzing `min_viable_change` and `change_output_size`, and since they're correlated, this PR changes the approach to fuzz them according to the logic in `CreateTransactionInternal`.

ACKs for top commit:
  murchandamus:
    ACK cd81007
  achow101:
    ACK cd81007
  furszy:
    Code ACK cd81007

Tree-SHA512: 4539b469f00cdf666078d80c07ed062726f804e390400348148cd3092db9cdc178c6d00ead39aef19acf97badfb6576ce23546d8967387e81c5398d52d7f4404
This is more correct, as this is downloading LLVM, and already unpacking
and using more than just clang.
…ressions

e1281f1 wallet: fix key parsing check for miniscript expressions in `ParseScript` (brunoerg)

Pull request description:

  In `ParseScript`, when processing miniscript expressions, the way we check for key parsing error is wrong, the actual code is unreachable because we're checking it into `if (node)` (successful parsing) statement.

ACKs for top commit:
  sipa:
    utACK e1281f1
  RandyMcMillan:
    utACK bitcoin@e1281f1
  achow101:
    ACK e1281f1

Tree-SHA512: c4b3765d32673928a1f6d84ecbaa311870da9a9625753ed15ea57c802a9f16ddafa48c1dc66c0e4be284c5862e7821ed94135498ed9b9f3d7342a080035da289
… messages

fae5263 Allow std::byte C-style array serialization (MarcoFalke)
fa898e6 refactor: Print verbose serialize compiler error messages (MarcoFalke)

Pull request description:

  Currently, trying to serialize an object that can't be serialized will fail with a short error message. For example, the diff and the error message:

  ```diff
  diff --git a/src/test/serialize_tests.cpp b/src/test/serialize_tests.cpp
  index d75eb499b4..773f49845b 100644
  --- a/src/test/serialize_tests.cpp
  +++ b/src/test/serialize_tests.cpp
  @@ -62,6 +62,8 @@ public:

   BOOST_AUTO_TEST_CASE(sizes)
   {
  +    int b[4];
  +    DataStream{} << b << Span{b};
       BOOST_CHECK_EQUAL(sizeof(unsigned char), GetSerializeSize((unsigned char)0));
       BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0)));
       BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0)));
  ```

  ```
  ./serialize.h:765:6: error: member reference base type 'const int[4]' is not a structure or union
    765 |     a.Serialize(os);
        |     ~^~~~~~~~~~
  ```
  ```
  ./serialize.h:277:109: error: no matching function for call to 'UCharCast'
    277 | template <typename Stream, typename B> void Serialize(Stream& s, Span<B> span) { (void)/* force byte-type */UCharCast(span.data()); s.write(AsBytes(span)); }
        |                                                                                                             ^~~~~~~~~
  ```

  This is fine. However, it would be more helpful for developers and more accurate by the compiler to explain why each function is not selected.

  Fix this by using C++20 concepts where appropriate.

ACKs for top commit:
  ajtowns:
    reACK fae5263
  achow101:
    ACK fae5263
  TheCharlatan:
    Re-ACK fae5263

Tree-SHA512: e03a684ccfcc5fbcad7f8a4899945a05989b555175fdcaebdb113aff46b52b4ee7b467192748edf99c5c348a620f8e52ab98bed3f3fca88280a64dbca458fe8a
b335710 depends: patch around non-determinism in qt (fanquake)
e8ecec4 build: rename native_clang to native_llvm (fanquake)
b0c2903 Revert "build: Patch Qt to handle minimum macOS version properly" (fanquake)
558250d guix: use clang-toolchain-17 for macOS build (fanquake)
5ddd7c6 build: Bump `native_clang` up to 17.0.6 (Hennadii Stepanov)

Pull request description:

  This is the last step before bitcoin#21778. We need LLVM 17.x so that lld has `-fixup_chains`.

ACKs for top commit:
  theuni:
    ACK b335710.
  TheCharlatan:
    ACK b335710

Tree-SHA512: 8142956196a481178f360258c2e4d924178d552966b713323f29f2deba7e5ec73a3da1c9d79d97c9e7f6aa18ed7429cd6660826aa633e6dde1ac56000b9ad57f
build_msvc/.gitignore Outdated Show resolved Hide resolved
@mxaddict mxaddict changed the title [WIP] Btc upstream changes 2024-01-22 Btc upstream changes 2024-01-22 Feb 19, 2024
@aguycalled aguycalled merged commit c78c67d into nav-io:master Feb 22, 2024
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.