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

backport: #5768

Closed
wants to merge 202 commits into from
Closed

backport: #5768

wants to merge 202 commits into from

Commits on Nov 14, 2023

  1. chore: bump version to v20.1.0 non-release (dashpay#5696)

    ## Issue being fixed or feature implemented
    Bump develop version to v20.1.0; v21 features should not yet be merged
    into develop; when the time is come to begin merging v21 features into
    develop, we can then bump version again.
    
    ## What was done?
    Bump version
    
    ## How Has This Been Tested?
    
    
    ## Breaking Changes
    
    
    ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that
    apply._
    - [ ] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    PastaPastaPasta authored Nov 14, 2023
    Configuration menu
    Copy the full SHA
    4dff2e0 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2023

  1. Configuration menu
    Copy the full SHA
    3d5ab37 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2023

  1. Merge pull request dashpay#5704 from UdjinM6/merge_master_20.0.0

    chore: Merge master v20.0.0 back into develop
    PastaPastaPasta authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    4c0c3cc View commit details
    Browse the repository at this point in the history
  2. docs: update dmg format (dashpay#5703)

    ## Issue being fixed or feature implemented
    Docs was slightly incorrect after moving to guix
    
    ## What was done?
    fixed docs
    
    ## How Has This Been Tested?
    Did notarization :)
    
    ## Breaking Changes
    
    
    ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that
    apply._
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    PastaPastaPasta authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    25e5ce6 View commit details
    Browse the repository at this point in the history
  3. fix: add missing log categories (dashpay#5707)

    ## Issue being fixed or feature implemented
    `creditpool` and `ehf` categories are missing in `logging`/`debug` RPCs
    😞
    
    ## What was done?
    
    
    ## How Has This Been Tested?
    run `debug` and `logging` RPCs and make sure these categories are listed
    now
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    0833974 View commit details
    Browse the repository at this point in the history
  4. build: let additional configure params to be passed into guix (dashpa…

    …y#5705)
    
    ## Issue being fixed or feature implemented
    Make it possible to pass additional configure params into Guix. This
    could be used to setup various sets of nightly/debug builds which could
    then be deployed automagically to catch potential issues early.
    
    ## What was done?
    
    
    ## How Has This Been Tested?
    `CONFIGFLAGS="--enable-debug" HOSTS="x86_64-linux-gnu"
    ./contrib/guix/guix-build`
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    74f4221 View commit details
    Browse the repository at this point in the history
  5. chore: inacuracies in release notes for v20 and v19 (dashpay#5709)

    ## What was done?
    Fixes some inaccuracies for release notes for v20.0.0, for v19.2.0.
    
    
    ## How Has This Been Tested?
    n/a
    
    ## Breaking Changes
    n/a
    
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone
    knst authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    9efabdb View commit details
    Browse the repository at this point in the history
  6. fix: should not notify about mnlist changes while ConnectBlock isn't …

    …done yet (dashpay#5711)
    
    ## Issue being fixed or feature implemented
    `ConnectBlock` can fail after `ProcessSpecialTxsInBlock`, we shouldn't
    be notifying too early. Same for `DisconnectBlock` but that's less of an
    issue imo.
    
    ## What was done?
    Move notifications to the end of `ConnectBlock`/`DisconnectBlock`. There
    is no `connman` in `CChainState` and I don't want to pass it in updates
    struct so I changed `NotifyMasternodeListChanged` and used `connman`
    from `CDSNotificationInterface` instead.
    
    ## How Has This Been Tested?
    run unit test, run testnet qt wallet
    
    ## Breaking Changes
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    b5d8283 View commit details
    Browse the repository at this point in the history
  7. build(guix): add debug symbols for osx (dashpay#5708)

    ## Issue being fixed or feature implemented
    Add debug symbols for Darwin
    
    ## What was done?
    Added Darwin debug symbols and combine them as output
    
    ## How Has This Been Tested?
    guix build
    
    ## Breaking Changes
      _Please describe any breaking changes your code introduces_
    
    
    ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that
    apply._
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    
    ---------
    
    Co-authored-by: UdjinM6 <[email protected]>
    PastaPastaPasta and UdjinM6 authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    a81310a View commit details
    Browse the repository at this point in the history
  8. fix: make CONFIGFLAGS optional (dashpay#5713)

    ## Issue being fixed or feature implemented
    make it possible to run `./contrib/guix/guix-build` without specifying
    `CONFIGFLAGS`
    
    ## What was done?
    
    ## How Has This Been Tested?
    run `./contrib/guix/guix-build` w/ and w/out this patch
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 16, 2023
    Configuration menu
    Copy the full SHA
    7fc8a04 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2023

  1. refactor: re-order headers and forward declarations to improve compil…

    …e time (dashpay#5693)
    
    ## Issue being fixed or feature implemented
    Some headers include other heavy headers, such as `logging.h`,
    `tinyformat.h`, `iostream`. These headers are heavy and increase
    compilation time on scale of whole project drastically because can be
    used in many other headers.
    
    ## What was done?
    Moved many heavy includes from headers to cpp files to optimize
    compilation time.
    In some places  added forward declarations if it is reasonable.
    
    As side effect removed 2 circular dependencies:
    ```
    "llmq/debug -> llmq/dkgsessionhandler -> llmq/debug"
    "llmq/debug -> llmq/dkgsessionhandler -> llmq/dkgsession -> llmq/debug"
    ```
    
    
    ## How Has This Been Tested?
    Run build 2 times before refactoring and after refactoring: `make clean
    && sleep 10s; time make -j18`
    
    Before refactoring:
    ```
    real    5m37,826s
    user    77m12,075s
    sys     6m20,547s
    
    real    5m32,626s
    user    76m51,143s
    sys     6m24,511s
    ```
    
    After refactoring:
    ```
    real    5m18,509s
    user    73m32,133s
    sys     6m21,590s
    
    real    5m14,466s
    user    73m20,942s
    sys     6m17,868s
    ```
    
    ~5% of improvement for compilation time. That's not huge, but that's
    worth to get merged
    
    There're several more refactorings TODO but better to do them later by
    backports:
     - bitcoin#27636
     - bitcoin#26286
     - bitcoin#27238
     - and maybe this one: bitcoin#28200
    
    
    ## Breaking Changes
    N/A
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone
    knst authored Nov 17, 2023
    Configuration menu
    Copy the full SHA
    ba97f49 View commit details
    Browse the repository at this point in the history
  2. cleanup: remove out-dated TODO

    TODO itself is removed in bitcoin#10618 (DNM)
    But actually fixed in [merged] Merge bitcoin#18021: Convert undo.h to new serialization framework
    knst committed Nov 17, 2023
    Configuration menu
    Copy the full SHA
    89f10e7 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#23878: doc: Remove TODO comment in tx_verify

    fa50d8b doc: Remove TODO comment in tx_verify (MarcoFalke)
    
    Pull request description:
    
      The comment has no clear motivation, so it seems better to remove it and fix it when there is a reason.
    
      An alternative (if a fix isn't possible when there is a clear motivation) would be to create an issue thread for easier discussion.
    
    ACKs for top commit:
      fanquake:
        ACK fa50d8b
    
    Tree-SHA512: e9c25bab46a73b7c2db288c62ed9838a5e794b3b72db494173f4502da60b58dec4383064964c0842932cd30e4251fc01ad0c28681e2ef6cb442482eea2bad595
    fanquake authored and knst committed Nov 17, 2023
    Configuration menu
    Copy the full SHA
    0beae40 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7f15dcf View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cfe9efe View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d82b0ec View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e6391b6 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    3372810 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    3f90238 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a620a6b View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2023

  1. Merge pull request dashpay#5698 from knst/v20-fix-todo-2

    fix: TODO related fixes for post-v20 release
    PastaPastaPasta authored Nov 19, 2023
    Configuration menu
    Copy the full SHA
    105acfd View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#24946: Unroll the ChaCha20 inner loop for performance

    81c09ee Unroll the ChaCha20 inner loop for performance (Pieter Wuille)
    
    Pull request description:
    
      Unrolling the inner ChaCha20 loop gives a ~15% speedup for me in the CHACHA20_* benchmarks. It's a simple change, this performance helps with RNG generation, and will matter more for BIP324.
    
    ACKs for top commit:
      martinus:
        tested ACK  81c09ee with clang++ 13.0.1, test `CHACHA20_1MB`:
      MarcoFalke:
        ACK 81c09ee 🍟
    
    Tree-SHA512: 108bd0ba573bb08de92d611e7be7c09a2c2700f9655f44129b87f9b71f7e101dfc6bd345783e7b4b9b40f0b003913cf59187f422da8cdb5b20887f7855b2611a
    MacroFake authored and PastaPastaPasta committed Nov 19, 2023
    Configuration menu
    Copy the full SHA
    e98e5dc View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#22649: fuzz: Avoid OOM in system fuzz target

    fa77183 fuzz: Avoid OOM in system fuzz target (MarcoFalke)
    
    Pull request description:
    
      If the inputs size is unlimited, the target may consume unlimited memory, because the argsmanager stores the argument names. Limiting the size should fix this issue.
    
      Should fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36906
    
    ACKs for top commit:
      practicalswift:
        cr ACK fa77183
    
    Tree-SHA512: 6edfcf324ee9d94e511038ee01340f02db50bcb233af3f1a1717c3602164c88528d9d987e971ec32f1a4593b868019bea0102c53c9b02bfefec3dfde959483cf
    MarcoFalke authored and PastaPastaPasta committed Nov 19, 2023
    Configuration menu
    Copy the full SHA
    47828bd View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#22704: fuzz: Differential fuzzing to compare Bitcoin Co…

    …re's and D. J. Bernstein's implementation of ChaCha20
    
    4d0ac72 [fuzz] Add fuzzing harness to compare both implementations of ChaCha20 (stratospher)
    65ef932 [fuzz] Add D. J. Bernstein's implementation of ChaCha20 (stratospher)
    
    Pull request description:
    
      This PR compares Bitcoin Core's implementation of ChaCha20 with D. J. Bernstein's in order to find implementation discrepancies if any.
    
    ACKs for top commit:
      laanwj:
        Code review ACK 4d0ac72
    
    Tree-SHA512: f826144b4db61b9cbdd7efaaca8fa9cbb899953065bc8a26820a566303b2ab6a17431e7c114635789f0a63fbe3b65cb0bf2ab85baf882803a5ee172af4881544
    laanwj authored and PastaPastaPasta committed Nov 19, 2023
    Configuration menu
    Copy the full SHA
    c8650ec View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#23806: fuzz: follow up for bitcoin#22704

    8f79831 Refactor the chacha20 differential fuzz test (stratospher)
    
    Pull request description:
    
      This PR addresses [comments from bitcoin#22704](https://github.com/bitcoin/bitcoin/pull/22704/files#discussion_r771510963)  to make the following changes in `src/test/fuzz/crypto_diff_fuzz_chacha20.cpp`:
    
      - replace `memcmp()` with ==
      - add a missing assert statement to compare the encrypted bytes
    
    Top commit has no ACKs.
    
    Tree-SHA512: 02338460fb3a89e732558bf00f3aebf8f04daba194e03ae0e3339bb2ff6ba35d06841452585b739047a29f8ec64f36b1b4ce2dfa39a08f6ad44a6a937e7b3acb
    MarcoFalke authored and PastaPastaPasta committed Nov 19, 2023
    Configuration menu
    Copy the full SHA
    1915914 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#26153: Reduce wasted pseudorandom bytes in ChaCha20 + v…

    …arious improvements
    
    511aa4f Add unit test for ChaCha20's new caching (Pieter Wuille)
    fb243d2 Improve test vectors for ChaCha20 (Pieter Wuille)
    93aee8b Inline ChaCha20 32-byte specific constants (Pieter Wuille)
    62ec713 Only support 32-byte keys in ChaCha20{,Aligned} (Pieter Wuille)
    f21994a Use ChaCha20Aligned in MuHash3072 code (Pieter Wuille)
    5d16f75 Use ChaCha20 caching in FastRandomContext (Pieter Wuille)
    38eaece Add fuzz test for testing that ChaCha20 works as a stream (Pieter Wuille)
    5f05b27 Add xoroshiro128++ PRNG (Martin Leitner-Ankerl)
    12ff724 Make unrestricted ChaCha20 cipher not waste keystream bytes (Pieter Wuille)
    6babf40 Rename ChaCha20::Seek -> Seek64 to clarify multiple of 64 (Pieter Wuille)
    e37bcaa Split ChaCha20 into aligned/unaligned variants (Pieter Wuille)
    
    Pull request description:
    
      This is an alternative to bitcoin#25354 (by my benchmarking, somewhat faster), subsumes bitcoin#25712, and adds additional test vectors.
    
      It separates the multiple-of-64-bytes-only "core" logic (which becomes simpler) from a layer around which performs caching/slicing to support arbitrary byte amounts. Both have their uses (in particular, the MuHash3072 code can benefit from multiple-of-64-bytes assumptions), plus the separation results in more readable code. Also, since FastRandomContext effectively had its own (more naive) caching on top of ChaCha20, that can be dropped in favor of ChaCha20's new built-in caching.
    
      I thought about rebasing bitcoin#25712 on top of this, but the changes before are fairly extensive, so redid it instead.
    
    ACKs for top commit:
      ajtowns:
        ut reACK 511aa4f
      dhruv:
        tACK crACK 511aa4f
    
    Tree-SHA512: 3aa80971322a93e780c75a8d35bd39da3a9ea570fbae4491eaf0c45242f5f670a24a592c50ad870d5fd09b9f88ec06e274e8aa3cefd9561d623c63f7198cf2c7
    fanquake authored and PastaPastaPasta committed Nov 19, 2023
    Configuration menu
    Copy the full SHA
    5a4406e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    722d14c View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2023

  1. fix: avoid crashes on "corrupted db" reindex attempts (dashpay#5717)

    ## Issue being fixed or feature implemented
    Should fix crashes like
    ```
    : Corrupted block database detected.
    Please restart with -reindex or -reindex-chainstate to recover.
    Assertion failure:
      assertion: globalInstance == nullptr
      file: mnhftx.cpp, line: 43
      function: CMNHFManager
       0#: (0x105ADA27C) stacktraces.cpp:629  - __assert_rtn
       1#: (0x104945794) mnhftx.cpp:43        - CMNHFManager::CMNHFManager(CEvoDB&)
       2#: (0x10499DA90) compressed_pair.h:40 - std::__1::__unique_if<CMNHFManager>::__unique_single std::__1::make_unique[abi:v15006]<CMNHFManager, CEvoDB&>(CEvoDB&)
       3#: (0x10499753C) init.cpp:1915        - AppInitMain(std::__1::variant<std::__1::nullopt_t, std::__1::reference_wrapper<NodeContext>, std::__1::reference_wrapper<WalletContext>, std::__1::reference_wrapper<CTxMemPool>, std::__1::reference_wrapper<ChainstateManager>, std::__1::reference_wrapper<CBlockPolicyEstimator>, std::__1::reference_wrapper<LLMQContext>> const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)
    ```
    
    ## What was done?
    
    
    ## How Has This Been Tested?
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 20, 2023
    Configuration menu
    Copy the full SHA
    531dcad View commit details
    Browse the repository at this point in the history
  2. refactor: deprecate non-deterministic IS support (dashpay#5553)

    ## Issue being fixed or feature implemented
    Non-deterministic IS locks aren't used anymore since v18 dip24.
    We should drop that support to make code simpler.
    
    ## What was done?
    Dropped non-deterministic IS code, `evo_instantsend_tests` and
    `feature_llmq_is_migration.py` (don't need it anymore), adjusted func
    tests.
    
    ## How Has This Been Tested?
    all tests, synced Testnet
    
    ## Breaking Changes
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [x] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    
    ---------
    
    Co-authored-by: UdjinM6 <[email protected]>
    Co-authored-by: Konstantin Akimov <[email protected]>
    3 people authored Nov 20, 2023
    Configuration menu
    Copy the full SHA
    1125649 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    64e6256 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2023

  1. ci: change Dockerfile.GitHubActions.Release to use local repo and not…

    … always dashpay/dash (dashpay#5716)
    
    ## Issue being fixed or feature implemented
    In order to provide nightly builds over at dash-dev-branches we need to
    be able to run this automation with other REPOs
    
    ## What was done?
    Make it repo specific.
    
    ## How Has This Been Tested?
    Hasn't yet
    
    ## Breaking Changes
    None
    
    ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that
    apply._
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    PastaPastaPasta authored Nov 21, 2023
    Configuration menu
    Copy the full SHA
    1908f51 View commit details
    Browse the repository at this point in the history
  2. fix: should avoid implicit conversions in pushKV params (dashpay#5719)

    ## Issue being fixed or feature implemented
    Should fix compilation errors like
    ```
    masternode/meta.cpp:43:9: error: call to member function 'pushKV' is ambiguous
        ret.pushKV("lastOutboundAttemptElapsed", now - lastOutboundAttempt);
        ^~
    masternode/meta.cpp:45:9: error: call to member function 'pushKV' is ambiguous
        ret.pushKV("lastOutboundSuccessElapsed", now - lastOutboundSuccess);
        ^~
    ```
    on FreeBSD + clang-15
    
    kudos to @MrDefacto for finding the issue and testing the fix
    
    
    ## What was done?
    Specify `now` variable type explicitly instead of relying on `auto`
    
    
    ## How Has This Been Tested?
    MrDefacto confirmed it compiles with no issues on FreeBSD now
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 21, 2023
    Configuration menu
    Copy the full SHA
    9861bc7 View commit details
    Browse the repository at this point in the history
  3. partial bitcoin#22934: Add verification to Sign, SignCompact and Sign…

    …Schnorr
    
    notes:
    - excludes changes done to `SignSchnorr`
    kwvg authored and PastaPastaPasta committed Nov 21, 2023
    Configuration menu
    Copy the full SHA
    a3e6aed View commit details
    Browse the repository at this point in the history
  4. build: add --enable-module-schnorrsig --enable-experimental cfg flags

    taken from changes made to `configure.ac` in 0664f5f (bitcoin#19953)
    kwvg authored and PastaPastaPasta committed Nov 21, 2023
    Configuration menu
    Copy the full SHA
    fecccbf View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7e6213b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ac140f0 View commit details
    Browse the repository at this point in the history
  7. merge bitcoin#25251: Consolidate Windows ASLR workarounds for upstrea…

    …m secp256k1 changes
    kwvg authored and PastaPastaPasta committed Nov 21, 2023
    Configuration menu
    Copy the full SHA
    e2f576b View commit details
    Browse the repository at this point in the history
  8. partial bitcoin#26691: Update secp256k1 subtree to libsecp256k1 versi…

    …on 0.2.0
    
    notes:
    - excludes changes made to `SignSchnorr`, `XOnlyPubKey`, kernel context and absent {fuzz,bench} tests
    kwvg authored and PastaPastaPasta committed Nov 21, 2023
    Configuration menu
    Copy the full SHA
    a3f2998 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    2458280 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    4ac2531 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    ccc9be4 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    78a9f1e View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    00b3dd6 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    39ce20c View commit details
    Browse the repository at this point in the history
  15. Merge pull request dashpay#5721 from UdjinM6/merge_master_20.0.1

    chore: Merge master 20.0.1 back into develop
    PastaPastaPasta authored Nov 21, 2023
    Configuration menu
    Copy the full SHA
    6db3c13 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2023

  1. fix: pass GITHUB_REPOSITORY into Dockerfile.GitHubActions.Release (

    …dashpay#5724)
    
    ## Issue being fixed or feature implemented
    Should hopefully fix
    https://github.com/dashpay/dash-dev-branches/actions/runs/6939402277/job/18876687119
    
    dashpay#5716 follow-up
    
    ## What was done?
    `$GITHUB_REPOSITORY` is not available inside docker, pass it inside
    
    ## How Has This Been Tested?
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 24, 2023
    Configuration menu
    Copy the full SHA
    1d9991f View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#25817: build: fix cross-arch macOS M1 build reproducibi…

    …lity
    
    08bd338 build: optimise arm64 darwin qt build using -O1 (fanquake)
    
    Pull request description:
    
      Building the macOS M1 bitcoin-qt binary at a optimisation level higher than `-O1` causes reproducibility issues when building on different architectures.
    
      Proposing somewhat of a hammer.
    
      This would fix 1 of the 2 remaining HOSTS in bitcoin#21194.
    
      Guix Build (x86_64):
      ```bash
      1b58b5109b32dca2509499c93347148e6bab5dca835081f8cbd3123bed72cce1  guix-build-08bd3382777b/output/arm64-apple-darwin/SHA256SUMS.part
      0e0d063d3832fad7c5116dabb2ac33c919f40bda04759aad4523c6247295bc9e  guix-build-08bd3382777b/output/arm64-apple-darwin/bitcoin-08bd3382777b-arm64-apple-darwin-unsigned.dmg
      1feb301245f2c664edcfd9ac528fe1543fc7b183b3b42637db77d57658bc2b5e  guix-build-08bd3382777b/output/arm64-apple-darwin/bitcoin-08bd3382777b-arm64-apple-darwin-unsigned.tar.gz
      641eb100d0a281203f9d6e36e45dc0ffc772c680d6aec462434f106b4c44e295  guix-build-08bd3382777b/output/arm64-apple-darwin/bitcoin-08bd3382777b-arm64-apple-darwin.tar.gz
      9d89920626e35939aa6cf506fc85861179f3c0e18d4ef1954750cf81336a851a  guix-build-08bd3382777b/output/dist-archive/bitcoin-08bd3382777b.tar.gz
      e7697d30084270d0b5843b3baf0d752e240c2f708f728bc2f6896f153276ca6b  guix-build-08bd3382777b/output/x86_64-apple-darwin/SHA256SUMS.part
      dd77acee082dbfd3cdad2c564bbd3bdace8df9bf32f92cf4a2debd5a996ace49  guix-build-08bd3382777b/output/x86_64-apple-darwin/bitcoin-08bd3382777b-x86_64-apple-darwin-unsigned.dmg
      85e63fccb7af12468a04a678034c42dcd775d243b2d194a52e1086a6ffbdbe84  guix-build-08bd3382777b/output/x86_64-apple-darwin/bitcoin-08bd3382777b-x86_64-apple-darwin-unsigned.tar.gz
      ff2629957608898d76a42025985e3ec4bf5dc8572794e32b4182ba6f8babb828  guix-build-08bd3382777b/output/x86_64-apple-darwin/bitcoin-08bd3382777b-x86_64-apple-darwin.tar.gz
      ```
    
      Guix Build (arm64):
      ```bash
      1b58b5109b32dca2509499c93347148e6bab5dca835081f8cbd3123bed72cce1  guix-build-08bd3382777b/output/arm64-apple-darwin/SHA256SUMS.part
      0e0d063d3832fad7c5116dabb2ac33c919f40bda04759aad4523c6247295bc9e  guix-build-08bd3382777b/output/arm64-apple-darwin/bitcoin-08bd3382777b-arm64-apple-darwin-unsigned.dmg
      1feb301245f2c664edcfd9ac528fe1543fc7b183b3b42637db77d57658bc2b5e  guix-build-08bd3382777b/output/arm64-apple-darwin/bitcoin-08bd3382777b-arm64-apple-darwin-unsigned.tar.gz
      641eb100d0a281203f9d6e36e45dc0ffc772c680d6aec462434f106b4c44e295  guix-build-08bd3382777b/output/arm64-apple-darwin/bitcoin-08bd3382777b-arm64-apple-darwin.tar.gz
      9d89920626e35939aa6cf506fc85861179f3c0e18d4ef1954750cf81336a851a  guix-build-08bd3382777b/output/dist-archive/bitcoin-08bd3382777b.tar.gz
      e7697d30084270d0b5843b3baf0d752e240c2f708f728bc2f6896f153276ca6b  guix-build-08bd3382777b/output/x86_64-apple-darwin/SHA256SUMS.part
      dd77acee082dbfd3cdad2c564bbd3bdace8df9bf32f92cf4a2debd5a996ace49  guix-build-08bd3382777b/output/x86_64-apple-darwin/bitcoin-08bd3382777b-x86_64-apple-darwin-unsigned.dmg
      85e63fccb7af12468a04a678034c42dcd775d243b2d194a52e1086a6ffbdbe84  guix-build-08bd3382777b/output/x86_64-apple-darwin/bitcoin-08bd3382777b-x86_64-apple-darwin-unsigned.tar.gz
      ff2629957608898d76a42025985e3ec4bf5dc8572794e32b4182ba6f8babb828  guix-build-08bd3382777b/output/x86_64-apple-darwin/bitcoin-08bd3382777b-x86_64-apple-darwin.tar.gz
      ```
    
    ACKs for top commit:
      hebasto:
        ACK 08bd338
      jarolrod:
        ACK 08bd338
    
    Tree-SHA512: 48da4acb1799c3153cdaf674f287c81c3da230a3476183616b74f318baa595af45b313136eb228ba13c63e0b8206a78064734f9fd0488e1e839c9e4e1d92ba25
    fanquake authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    ed8da92 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#22199: macdeploy: minor fixups and simplifications

    0a5723b macdeploy: cleanup .temp.dmg if present (fanquake)
    ecffe86 macdeploy: remove qt4 related code (fanquake)
    639f064 macdeploy: select the plugins we need, rather than excluding those we don't (fanquake)
    3d26b6b macdeploy: fix framework printing when passing -verbose (fanquake)
    dca6c90 macdeploy: remove unused plistlib import (fanquake)
    
    Pull request description:
    
      This includes [one followup](bitcoin#20422 (comment)) and [one bug fix](bitcoin@3d26b6b) from bitcoin#20422, as well as some simplifications to the `macdeployqtplus` code.
    
    ACKs for top commit:
      hebasto:
        ACK 0a5723b, tested on macOS Big Sur 11.4 (20F71, x86_64) + Homebrew's Qt 5.15.2.
    
    Tree-SHA512: cfad9505eacd32fe3a9d06eb13b2de0b6d2cad7b17778e90b503501cbf922e53d4e7f7f74952d1aed58410bdae9b0bb3248098583ef5b85689cb27d4dc06c029
    fanquake authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    736b7a4 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#22546: build, qt: Fix make deploy on M1-based macOS w…

    …ith system frameworks
    
    1513727 build, qt: (Re-)sign package (Hennadii Stepanov)
    c26a0a5 build, qt: Align frameworks with macOS codesign tool requirements (Hennadii Stepanov)
    
    Pull request description:
    
      Fixes bitcoin#22403
    
      This PR follows Apple [docs](https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11_0_1-universal-apps-release-notes):
      >  - New in macOS 11 on Macs with Apple silicon, and starting in macOS Big Sur 11 beta 6, the operating system enforces that any executable must be signed before it’s allowed to run. There isn’t a specific identity requirement for this signature: a simple ad-hoc signature is sufficient...
      >  - ... If you use a custom workflow involving tools that modify a binary after linking (e.g. `strip` or `install_name_tool`) you might need to manually call `codesign` as an additional build phase to properly ad-hoc sign your binary. These new signatures are not bound to the specific machine that was used to build the executable, they can be verified on any other system and will be sufficient to comply with the new default code signing requirement on Macs with Apple silicon...
    
      When building with system Qt frameworks (i.e., without depends), a new string has been added to the `make deploy` log on M1-based macOS:
      ```
      % make deploy
      ...
      + Generating .DS_Store +
      dist/Bitcoin-Qt.app: replacing existing signature
      + Preparing .dmg disk image +
      ...
      ```
    
      This PR does not change build system behavior:
      - when building with depends
      - on Intel-based macOS
    
    ACKs for top commit:
      jarolrod:
        ACK 1513727
      fanquake:
        ACK 1513727 - although didn't test on M1 hardware. Given the forced signing is scoped to only occur when running the deploy script on macOS, this doesn't interfere with our release signing.
    
    Tree-SHA512: 3aa778fdd6ddb54f029f632f2fe52c2ae3bb197ba564cb776493aa5c3a655bd51d10ccbe6c007372d717e9b01fc4193dd5c29ea0bc7e069dcae7e991ae259f0c
    fanquake authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    23adfb7 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#24669: build: further consolidate macOS deployment

    3d41521 build: perform /Applications symlink generation in macdeployqtplus (fanquake)
    dac6936 build: perform all .tiff copying in macdeployqtplus (fanquake)
    
    Pull request description:
    
      Rather than maintaining 2 different versions of the same code (`.tiff` copying and symlink generation), consolidate to just the Python code, and use it on macOS and Linux. Previously Linux would  perform the 2 actions in the makefile, and then would still be running the `macdeployqtplus` script, so it makes sense to further consolidate deployment operations into the script.
    
      Guix Build (on x86_64):
      ```bash
      23343f04c426c7ff078afae4e600a7028970d4d86eed8b7834696d9e4d684151  guix-build-3d415215699e/output/arm64-apple-darwin/SHA256SUMS.part
      c28b2a2e4888bf84369aa25804e2576347d5ab09416354ec8b95c76a9d38ff96  guix-build-3d415215699e/output/arm64-apple-darwin/bitcoin-3d415215699e-arm64-apple-darwin-unsigned.dmg
      9a57077b2bd722a7d85d26b66cbce5abdb791985fe9d9d37e884c79ba8751e24  guix-build-3d415215699e/output/arm64-apple-darwin/bitcoin-3d415215699e-arm64-apple-darwin-unsigned.tar.gz
      d2b06dc5b86541798ace41dab569849f7403e7ff9ec329bda671ec84e6fad549  guix-build-3d415215699e/output/arm64-apple-darwin/bitcoin-3d415215699e-arm64-apple-darwin.tar.gz
      608e7d51a44ab9c5b28eb3703a0f4fe98b4adff22c77a5502786b84bd96cc188  guix-build-3d415215699e/output/dist-archive/bitcoin-3d415215699e.tar.gz
      3e483705b1f9f1fb8f6afedc8ad0214a6cb00e77f766c0b03c42d56f410d4362  guix-build-3d415215699e/output/x86_64-apple-darwin/SHA256SUMS.part
      9370e3e3b7d47b5a44e64554cf3b6d7e0671b072c08cd251eacc7ec72ce2b53f  guix-build-3d415215699e/output/x86_64-apple-darwin/bitcoin-3d415215699e-x86_64-apple-darwin-unsigned.dmg
      ad0f68682d78c311497669fc3d627138be37510215d259b5f0b686d93e7d83b7  guix-build-3d415215699e/output/x86_64-apple-darwin/bitcoin-3d415215699e-x86_64-apple-darwin-unsigned.tar.gz
      e09dce4ff692ef66d1f4818083c1880bcf3a79c53112561d9e929bb6e5ffc011  guix-build-3d415215699e/output/x86_64-apple-darwin/bitcoin-3d415215699e-x86_64-apple-darwin.tar.gz
      ```
    
    ACKs for top commit:
      laanwj:
        Re-ACK 3d41521
    
    Tree-SHA512: 80dd66a6e94c5b3e8823ccb57dcb08a8851a1e70a154b62385443f8d2d5ed5af900a0ac5003143959863586f1c7b90002fe6bff3ca5e37697253e051f69d7629
    laanwj authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    8b61966 View commit details
    Browse the repository at this point in the history
  6. partial Merge bitcoin#25063: test: previous releases: add v23.0

    dba1231 test: previous releases: add v23.0 (Sjors Provoost)
    
    Pull request description:
    
      Follows the same pattern as d8b705f (v22.0) and 8a57a06 (v0.21.0).
    
      Starting from v23.0 there is a separate macOS release for x86_64 and aarch64.
    
    ACKs for top commit:
      prusnak:
        Approach ACK dba1231
    
    Tree-SHA512: 249aeddd5e80e163578581e5c8e9b6579f3694abc3d1fb68dddb7b42d75021ad85266688ec4a365a6631d82a65a19873aff7ba61c0ea59d21f8adbe4b772dc16
    MacroFake authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    d5654db View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#26694: test: get_previous_releases.py: M1/M2 macs can…

    …'t run unsigned arm64 binaries; self-sign when needed
    
    dc12f2e test: improve error msg on previous release tarball extraction failure (kdmukai)
    7121fd8 test: self-sign previous release binaries for arm64 macOS (kdmukai)
    
    Pull request description:
    
      ## The Problem
      If you run `test/get_previous_releases.py -b` on an M1 or M2 mac, you'll get an unsigned v23.0 binary in the arm64 tarball. macOS [sets stricter requirements on ARM binaries](https://news.ycombinator.com/item?id=26996578) so the unsigned arm64 binary is apparently completely unusable without being signed/notarized(?).
    
      This means that any test that depends on a previous release (e.g. `wallet_backwards_compatibility.py`) will fail because the v23.0 node cannot launch:
    
      ```
      TestFramework (ERROR): Assertion failed
      Traceback (most recent call last):
        File "/Users/kdmukai/dev/bitcoin-core/test/functional/test_framework/test_framework.py", line 563, in start_nodes
          node.wait_for_rpc_connection()
        File "/Users/kdmukai/dev/bitcoin-core/test/functional/test_framework/test_node.py", line 231, in wait_for_rpc_connection
          raise FailedToStartError(self._node_msg(
      test_framework.test_node.FailedToStartError: [node 2] bitcoind exited with status -9 during initialization
      ```
    
      This can also be confirmed by downloading bitcoin-23.0-arm64-apple-darwin.tar.gz (https://bitcoincore.org/bin/bitcoin-core-23.0/) and trying to run any of the binaries manually on an M1 or M2 mac.
    
      ## Solution in this PR
      (UPDATED) Per @ hebasto, we can self-sign the arm64 binaries. This PR checks each binary in the previous release's "bin/" and verifies if the arm64 binary is signed. If not, attempt to self-sign and confirm success.
    
      (note: an earlier version of this PR downloaded the x86_64 binary as a workaround but this approach has been discarded)
    
      ## Longer term solution
      If possible, produce signed arm64 binaries in a future v23.x tarball?
    
      Note that this same problem affects the new v24.0.1 arm64 tarball so perhaps a signed v24.x.x tarball would also be ideal?
    
      That being said, this PR will check all current and future arm64 binaries and self-sign as needed, so perhaps we need not worry about pre-signing the tarball binaries. And I did test a version of `get_previous_releases.py` that includes the new v24.0.1 binaries and it successfully self-signed both v23.0 and v24.0.1, as expected.
    
      ## Further info:
      Somewhat related to: bitcoin#15774 (comment)
    
      And @ fanquake noted on IRC that you can confirm which binaries are or are not signed via:
      ```
      $ codesign -v -d bitcoin-qt
      bitcoin-qt: code object is not signed at all
      ```
    
    ACKs for top commit:
      hebasto:
        ACK dc12f2e
    
    Tree-SHA512: 644895f8e97f5ffb3c4754c1db2c48abd77fa100c2058e3c896af04806596fc2b9c807a3f3a2add5be53301ad40ca2b8171585bd254e691f6eb38714d938396b
    MarcoFalke authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    d7bdf8e View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#24603: macdeploy: remove unused detached-sig-apply.sh

    979271a macdeploy: remove unused detached-sig-apply (fanquake)
    
    Pull request description:
    
      Signature application is now done with signapple.
    
      https://github.com/bitcoin/bitcoin/blob/8435d7f11a89bb3f93306646f62cc2179693e072/contrib/guix/libexec/codesign.sh#L84-L85
    
    ACKs for top commit:
      laanwj:
        ACK 979271a
      gruve-p:
        ACK bitcoin@979271a
      achow101:
        ACK 979271a
      hebasto:
        ACK 979271a, I have reviewed the code and it looks OK, I agree it can be merged.
    
    Tree-SHA512: ab51a609d00cead4f33bcfc5b5ff1008ee02363ab1f4c4bf9544631069c237bfa92eac4dfa231bff8a1d702bda6cc92b4151361f74f58e77b595e0cb82a8391a
    fanquake authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    007076d View commit details
    Browse the repository at this point in the history
  9. fix: follow-up partial bitcoin#25063 - actually load binaries with x8…

    …6_64-apple-darwin platform
    knst authored and PastaPastaPasta committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    fd2e985 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    23eb7a7 View commit details
    Browse the repository at this point in the history
  11. refactor: introduce CbTx version enum class, adjust version names (da…

    …shpay#5725)
    
    ## Issue being fixed or feature implemented
    - The name `CB_V19_VERSION` is confusing because CbTx v2 was introduced
    in v14, not v19
    https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md#dip0004---coinbase-payload-v2
    - There are magic numbers instead of constants in some places
    - `CheckCbTx` should check whatever the upper limit is, not
    `CB_V20_VERSION` specifically
    
    ## What was done?
    Turn CbTx versions into enum using self-describing names
    
    ## How Has This Been Tested?
    Run tests
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 24, 2023
    Configuration menu
    Copy the full SHA
    6e49e2f View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2023

  1. Merge bitcoin#18742: miner: Avoid stack-use-after-return in validatio…

    …ninterface
    
    7777f2a miner: Avoid stack-use-after-return in validationinterface (MarcoFalke)
    fa5ceb2 test: Remove UninterruptibleSleep from test and replace it by SyncWithValidationInterfaceQueue (MarcoFalke)
    fa770ce validationinterface: Rework documentation, Rename pwalletIn to callbacks (MarcoFalke)
    fab6d06 test: Add unregister_validation_interface_race test (MarcoFalke)
    
    Pull request description:
    
      When a validationinterface has itself unregistered in one thread, but is about to get executed in another thread [1], there is a race:
    
      * The validationinterface destructing itself
      * The validationinterface getting dereferenced for execution
    
      [1] https://github.com/bitcoin/bitcoin/blob/64139803f1225dab26197a20314109d37fa87d5f/src/validationinterface.cpp#L82-L83
    
      This happens in the miner. More generally it happens everywhere where at least one thread is generating notifications and another one is unregistering a validationinterface.
    
      This issue has been fixed in commit ab31b9d, but the fix has not been applied to the miner.
    
      Example where this happened in practice: https://travis-ci.org/github/bitcoin/bitcoin/jobs/675322230#L4414
    
    ACKs for top commit:
      promag:
        Code review ACK 7777f2a.
      laanwj:
        Code review ACK 7777f2a
    
    Tree-SHA512: 8087119243c71ba18a823a63515f3730d127162625d8729024278b447af29e2ff206f4840ee3d90bf84f93a2c5ab73b76c7e7044c83aa93b5b51047a166ec3d3
    fanquake authored and PastaPastaPasta committed Nov 26, 2023
    Configuration menu
    Copy the full SHA
    f0d8627 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#28150: test: Avoid intermittent issues due to async eve…

    …nts in validationinterface_tests
    
    faca9a3 test: Avoid intermittent issues due to async events in validationinterface_tests (MarcoFalke)
    
    Pull request description:
    
      Currently the tests have many issues:
    
      * They setup the genesis block, even though it is not needed
      * They queue an async `UpdatedBlockTip` even, which causes intermittent issues: bitcoin#28146 (comment)
    
      Fix all issues by trimming down the setup to just `ChainTestingSetup`.
    
    ACKs for top commit:
      Crypt-iQ:
        tACK faca9a3
    
    Tree-SHA512: 4449040330f89bbaf5ce5b2052417c160b451c373987fdf1069596c07834ed81f0aea1506d53c7d2cd21062b27332d30679285dae194b272fd0cb9ce5ded32cf
    fanquake authored and PastaPastaPasta committed Nov 26, 2023
    Configuration menu
    Copy the full SHA
    2d631df View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e6d6e8a View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2023

  1. fix: use correct interruption condition in StartCachePopulatorThread (

    dashpay#5732)
    
    ## Issue being fixed or feature implemented
    dashpay#4788 (comment)
    
    noticed while working on dashpay#5731
    
    ## What was done?
    
    ## How Has This Been Tested?
    run a node, check logs - there is a meaningful time span between `start`
    and `done` now and not just zeros all the time.
    
    ## Breaking Changes
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 27, 2023
    Configuration menu
    Copy the full SHA
    6c57cc2 View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2023

  1. fix: Improve quorum data caching and cleanup (dashpay#5731)

    ## Issue being fixed or feature implemented
    
    ## What was done?
    
    ## How Has This Been Tested?
    
    
    ## Breaking Changes
    
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [x] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    
    ---------
    
    Co-authored-by: PastaPastaPasta <[email protected]>
    UdjinM6 and PastaPastaPasta authored Nov 29, 2023
    Configuration menu
    Copy the full SHA
    00a076d View commit details
    Browse the repository at this point in the history
  2. docs: update release process document to follow-up v20 release (dashp…

    …ay#5710)
    
    ## Issue being fixed or feature implemented
    Our [Release Process document](doc/release-process.md) is not exactly
    matched with our [template
    issue](dashpay#5694) that created by
    copy-paste from previous release.
    
    For the next release just copy test from this document to new issue
    
    ## What was done?
    [Release Process document](doc/release-process.md) is updated to match
    with our real release process.
    This document has also detailed instructions for many steps (in compare
    to the issue that we use now which is more checklist) to make releasing
    process easier for all participant.
    
    ## How Has This Been Tested?
    Tested on air by 2 last released: v19, v20:
    dashpay#5694
    
    ## Breaking Changes
    N/A
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [x] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone
    
    ---------
    
    Co-authored-by: thephez <[email protected]>
    Co-authored-by: UdjinM6 <[email protected]>
    3 people authored Nov 29, 2023
    Configuration menu
    Copy the full SHA
    91f1584 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2023

  1. fix: avoid a crash on -reindex-chainstate (dashpay#5746)

    ## Issue being fixed or feature implemented
    Avoid a crash on -reindex-chainstate.
    
    ## What was done?
    `ResetBlockFailureFlags` is crashing when `m_chain.Tip()` is null. Call
    `ResetBlockFailureFlags` inside `if (!is_coinsview_empty(chainstate))
    {...}` block - we know `m_chain.Tip()` is not null there.
    
    ## How Has This Been Tested?
    Try running a node with `-reindex-chainstate` cmd-line param w/ and
    w/out this patch.
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Nov 30, 2023
    Configuration menu
    Copy the full SHA
    9e73e84 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2023

  1. Merge bitcoin#19438: Introduce deploymentstatus

    e48826a tests: remove ComputeBlockVersion shortcut from versionbits tests (Anthony Towns)
    c5f3672 [refactor] Move ComputeBlockVersion into VersionBitsCache (Anthony Towns)
    4a69b4d [move-only] Move ComputeBlockVersion from validation to versionbits (Anthony Towns)
    0cfd6c6 [refactor] versionbits: make VersionBitsCache a full class (Anthony Towns)
    8ee3e0b [refactor] rpc/blockchain.cpp: SoftForkPushBack (Anthony Towns)
    92f48f3 deploymentinfo: Add DeploymentName() (Anthony Towns)
    ea68b3a [move-only] Rename versionbitsinfo to deploymentinfo (Anthony Towns)
    c64b2c6 scripted-diff: rename versionbitscache (Anthony Towns)
    de55304 [refactor] Add versionbits deployments to deploymentstatus.h (Anthony Towns)
    2b0d291 [refactor] Add deploymentstatus.h (Anthony Towns)
    eccd736 versionbits: Use dedicated lock instead of cs_main (Anthony Towns)
    36a4ba0 versionbits: correct doxygen comments (Anthony Towns)
    
    Pull request description:
    
      Introduces helper functions to make it easy to bury future deployments, along the lines of the suggestion from [11398](bitcoin#11398 (comment)) "I would prefer it if a buried deployment wouldn't require all code paths that check the BIP9 status to require changing".
    
      This provides three functions: `DeploymentEnabled()` which tests if a deployment can ever be active, `DeploymentActiveAt()` which checks if a deployment should be enforced in the given block, and `DeploymentActiveAfter()` which checks if a deployment should be enforced in the block following the given block, and overloads all three to work both with buried deployments and versionbits deployments.
    
      This adds a dedicated lock for the versionbits cache, which is acquired internally by the versionbits functions, rather than relying on `cs_main`. It also moves moves versionbitscache into deploymentstatus to avoid a circular dependency with validation.
    
    ACKs for top commit:
      jnewbery:
        ACK e48826a
      gruve-p:
        ACK bitcoin@e48826a
      MarcoFalke:
        re-ACK e48826a 🥈
    
    Tree-SHA512: c846ba64436d36f8180046ad551d8b0d9e20509b9bc185aa2639055fc28803dd8ec2d6771ab337e80da0b40009ad959590d5772f84a0bf6199b65190d4155bed
    MarcoFalke authored and PastaPastaPasta committed Dec 1, 2023
    Configuration menu
    Copy the full SHA
    d70ba2c View commit details
    Browse the repository at this point in the history
  2. Merge pull request dashpay#5740 from knst/bp-versionbits

    backport: bitcoin#19438 Introduce deploymentstatus (versionbits improvements)
    PastaPastaPasta authored Dec 1, 2023
    Configuration menu
    Copy the full SHA
    185238b View commit details
    Browse the repository at this point in the history
  3. ci: Bump Guix build timeout and implement cacheing (dashpay#5727)

    ## Issue being fixed or feature implemented
    Hopefully fixes issues like
    >The job running on runner ubuntu-core-x64_i-05ed4263b8e049c7a has
    exceeded the maximum execution time of 360 minutes
    
    https://github.com/dashpay/dash/actions/runs/6932017275
    
    
    https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes
    
    https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes
    
    ## What was done?
    Bump timeouts for the job itself and for the corresponding step. Also,
    implemented caching for `.cache` and `depends` folders.
    
    ## How Has This Been Tested?
    dashpay#5729
    
    
    https://github.com/dashpay/dash/actions/runs/6996271543/job/19031968814?pr=5729
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Dec 1, 2023
    Configuration menu
    Copy the full SHA
    bc9af85 View commit details
    Browse the repository at this point in the history
  4. fix: assertion in CMNHFManager due to missing data in evoDB (dashpay#…

    …5736)
    
    Prior required changes: bitcoin#19438 from
    dashpay#5740
    
    ## Issue being fixed or feature implemented
    Assertion failure:
    ```
      assertion: ok
      file: evo/mnhftx.cpp, line: 287
      function: AbstractEHFManager::Signals CMNHFManager::GetFromCache(const CBlockIndex*)
    No debug information available for stacktrace. You should add debug information and then run: dash-qt -printcrashinfo=bvcgc43iinzgc43ijfxgm3ybaadwiyltnawxc5e3ifzxgzlsoruw63ramzqws3dvojstucraebqxg43foj2gs33ohiqg62ykeaqgm2lmmu5cazlwn4xw23timz2hqltdobycyidmnfxgkoragi4docraebthk3tdoruw63r2ebawe43uojqwg5cfjbde2ylomftwk4r2hjjwsz3omfwhgicdjvheqrsnmfxgcz3foi5dur3fordhe33ninqwg2dffbrw63ttoqqegqtmn5rwwslomrsxqkrjbyrelhyaaaaaaaedgkiaaaaaaaadsm4qaaaaaaaa7gpyqaaaaaaaa2njraaaaaaaadkl3caaaaaaaabhxznqaaaaaaadqa2eaaaaaaaax33twaaaaaaabwaihqaaaaaaac7yooqbaaaaaahba45qcaaaaaacwkz2aeaaaaaaeitgeaiaaaaaaaa=
    dash-qt: evo/mnhftx.cpp:287: AbstractEHFManager::Signals CMNHFManager::GetFromCache(const CBlockIndex*): Assertion `ok' failed.
    ```
    
    This can happen in case if Dash Core has been update from v19 (or
    earlier v20.alphaX) to v20.0.0 after v20 activation without re-indexing
    
    ## What was done?
    `CMNHFManager` is visiting missing blocks recursively until reach first
    v20 block or first block actually saved in evoDb.
    
    
    Without changes from bitcoin#19438 there's an other issue:
    ```
    2023-11-27T11:12:10Z POTENTIAL DEADLOCK DETECTED
    Previous lock order was:
     (2) 'cs_main' in llmq/instantsend.cpp:459 (in thread 'isman')
     (1) 'cs_llmq_vbc' in llmq/utils.cpp:711 (in thread 'isman')
    Current lock order is:
     'cs_dip3list' in qt/masternodelist.cpp:135 (TRY) (in thread 'main')
     (1) 'cs_llmq_vbc' in llmq/utils.cpp:719 (in thread 'main')
     (2) 'cs_main' in node/blockstorage.cpp:77 (in thread 'main')
    Assertion failed: detected inconsistent lock order for 'cs_main' in node/blockstorage.cpp:77 (in thread 'main'), details in debug log.
    2023-11-27T11:12:10Z Posix Signal: Aborted
    ```
    
    ## How Has This Been Tested?
    Run unit/functional test; run dash-qt on my local backup of problematic
    storage (succeed without error); reindex testnet.
    
    ## Breaking Changes
    N/A
    
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [x] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    knst authored Dec 1, 2023
    Configuration menu
    Copy the full SHA
    b43af81 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2023

  1. partial Merge bitcoin#18628: test: Add various low-level p2p tests

    Adds missing changes from p2p_invalid_tx.py but one assert is still disabled
    
    fa4c29b test: Add various low-level p2p tests (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      jonatack:
        ACK fa4c29b
    
    Tree-SHA512: 842821b97359d4747c763398f7013415858c18a300cd882887bc812d039b5cbb67b9aa6f68434575dbc3c52f7eb8c43d1b293a59555a7242c0ca615cf44dc0aa
    knst authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    b292c41 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#19304: test: Check that message sends successfully when…

    … header is split across two buffers
    
    80d4423 Test buffered valid message (Troy Giorshev)
    
    Pull request description:
    
      This PR is a tweak of bitcoin#19302.  This sends a valid message.
    
      Additionally, this test includes logging in the same vein as bitcoin#19272.
    
    ACKs for top commit:
      MarcoFalke:
        tested ACK 80d4423 (added an assert(false) to observe deterministic coverage) 🌦
      gzhao408:
        ACK bitcoin@80d4423 👊
    
    Tree-SHA512: 3b1aa5ec480a1661917354788923d64595e2886448c9697ec0606a81293e8b4a4642b2b3cc9afb2206ce6f74e5c6d687308c5ad19cb73c5b354d3071ad8496f8
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    738d6b1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5035a1c View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18962: net processing: Only send a getheaders for one b…

    …lock in an INV
    
    7467366 [net processing] Only send a getheaders for one block in an INV (John Newbery)
    
    Pull request description:
    
      Headers-first is the primary method of announcement on the network. If a node fell back sending blocks by inv, it's probably for a re-org. The final block hash provided should be the highest, so send a getheaders and then fetch the blocks we need to catch up.
    
      Sending many GETHEADERS messages to the peer would cause them to send a large number of potentially large HEADERS messages with redundant data, which is a waste of bandwidth.
    
    ACKs for top commit:
      sipa:
        utACK 7467366
      mzumsande:
        utACK 7467366 as per ajtowns' reasoning.
      naumenkogs:
        utACK 7467366
      ajtowns:
        ACK 7467366
      jonatack:
        ACK 7467366
    
    Tree-SHA512: 59e243b80d3f0873709dfacb2e4ffba34689aad7de31ec7f69a64e0e3a0756235a0150e4082ff5de823949ba4411ee1aed2344b4749b62e0eb1ea906e41f5ea9
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    ec11695 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#18931: net: use CMessageHeader::HEADER_SIZE, add missin…

    …g include
    
    83da576 net: use CMessageHeader::HEADER_SIZE, add missing include (Jon Atack)
    
    Pull request description:
    
      as suggested 16 months ago by Gleb Naumenko in bitcoin#15197 (comment).
    
      `static constexpr CMessageHeader::HEADER_SIZE` is already used in this file, `src/net.cpp`, in 2 instances. This commit replaces the remaining 2 integer values in the file with it and adds the explicit include header.
    
      Co-authored by: Gleb Naumenko <[email protected]>
    
    ACKs for top commit:
      naumenkogs:
        utACK 83da576
      practicalswift:
        ACK 83da576 -- patch looks correct
      theStack:
        ACK 83da576 -- verified that its just magic number elimination refactoring and additionally checked that all tests pass 👍
    
    Tree-SHA512: 5b915483bca4ea162c259865a1b615d73b88a1b1db3f82db05f770d10b8a42494d948f5b21badbcce2d9efa5915b8cbb6af83073867c23d2f152c0d35ac37b96
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    0ecae66 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#18861: Do not answer GETDATA for to-be-announced tx

    2896c41 Do not answer GETDATA for to-be-announced tx (Pieter Wuille)
    f2f32a3 Push down use of cs_main into FindTxForGetData (Pieter Wuille)
    c6131bf Abstract logic to determine whether to answer tx GETDATA (Pieter Wuille)
    
    Pull request description:
    
      This PR intends to improve transaction-origin privacy.
    
      In general, we should try to not leak information about what transactions we have (recently) learned about before deciding to announce them to our peers. There is a controlled transaction dissemination process that reveals our transactions to peers that has various safeguards for privacy (it's rate-limited, delayed & batched, deterministically sorted, ...), and ideally there is no way to test which transactions we have before that controlled process reveals them. The handling of the `mempool` BIP35 message has protections in this regard as well, as it would be an obvious way to bypass these protections (handled asynchronously after a delay, also deterministically sorted).
    
      However, currently, if we receive a GETDATA for a transaction that we have not yet announced to the requester, we will still respond to it if it was announced to *some* other peer already (because it needs to be in `mapRelay`, which only happens on the first announcement). This is a slight privacy leak.
    
      Thankfully, this seems easy to solve: `setInventontoryTxToSend` keeps track of the txids we have yet to announce to a peer - which almost(*) exactly corresponds to the transactions we know of that we haven't revealed to that peer. By checking whether a txid is in that set before responding to a GETDATA, we can filter these out.
    
      (*) Locally resubmitted or rebroadcasted transactions may end up in setInventoryTxToSend while the peer already knows we have them, which could result in us incorrectly claiming we don't have such transactions if coincidentally requested right after we schedule reannouncing them, but before they're actually INVed. This is made even harder by the fact that filterInventoryKnown will generally keep known reannouncements out of setInventoryTxToSend unless it overflows (which needs 50000 INVs in either direction before it happens).
    
      The condition for responding now becomes:
    
      ```
        (not in setInventoryTxToSend) AND
        (
          (in relay map) OR
          (
            (in mempool) AND
            (old enough that it could have expired from relay map) AND
            (older than our last getmempool response)
          )
        )
      ```
    
    ACKs for top commit:
      naumenkogs:
        utACK 2896c41
      ajtowns:
        ACK 2896c41
      amitiuttarwar:
        code review ACK 2896c41
      jonatack:
        ACK 2896c41 per `git diff 2b3f101 2896c41` only change since previous review is moving the recency check up to be verified first in `FindTxForGetData`, as it was originally in 353a391 (good catch), before looking up the transaction in the relay pool.
      jnewbery:
        code review ACK 2896c41
    
    Tree-SHA512: e7d5bc006e626f60a2c108a9334f3bbb67205ace04a7450a1e4d4db1d85922a7589e0524500b7b4953762cf70554c4a08eec62c7b38b486cbca3d86321600868
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    25eb5cb View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#26896: build: Remove port-forwarding runtime setting op…

    …tions from configure
    
    d51f0fa doc: add release notes for 26896 (fanquake)
    2b24879 build: remove --enable-upnp-default from configure (fanquake)
    02f5a5e build: remove --enable-natpmp-default from configure (fanquake)
    25a0e8b Remove configure-time setting of DEFAULT_UPNP (fanquake)
    06562e5 Remove configure-time setting of DEFAULT_NATPMP (fanquake)
    
    Pull request description:
    
      This PR removes the `--enable-upnp-default` and `--enable-natpmp-default` options from configure.
    
      It's odd to me that we maintain configure-time options for setting the default port-forwarding runtime state (but no other similar options), and I'm not sure what use-case it satisfies, that can't be achieved by multiple other means. I also doubt that we'll ever restart using these in release builds, or turning on any of this by default.
    
      I think the only scenario these options would be used is when you want to compile your own binaries (we don't use them in Guix), with port-forwarding on by default, but otherwise can't or don't want to use a `.conf` file, can't or don't want to pass command line options at runtime, and also don't want to modify the source code?
    
    ACKs for top commit:
      hebasto:
        ACK d51f0fa, rebased and comments have been addressed since my recent [review](bitcoin#26896 (review)).
      TheCharlatan:
        ACK d51f0fa
    
    Tree-SHA512: 481decd8bddd8b03b7319591e3acf189f7b6b96c9a9a8c5bc1a3f8ec00d0b8f9b52d2f5c28a298a2ec947cfe9611cfd184e393ccb2e4e21bfce86ca7d4de60d3
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    26211cc View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18759: bench: Start nodes with -nodebuglogfile

    fabe44e bench: Start nodes with -nodebuglogfile (MarcoFalke)
    
    Pull request description:
    
      For benchmarking we don't want to depend on the speed of the disk or the amount of debug logging
    
    ACKs for top commit:
      fanquake:
        ACK fabe44e - This makes some of these benchmarks significantly faster to run. MempoolEviction total runtime is down from ~46s to 11s on my machine:
    
    Tree-SHA512: d99700901650325896b9115d20b84a27042152f46266f595bf7ea1414528c0b346f4e707a12ee8b8ba99c35cf155e645e67971c1b2a679c4e609c400ff8b08ae
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    fa9e34c View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#18413: script: prevent UB when computing abs value for …

    …num opcode serialize
    
    2748e87 script: prevent UB when computing abs value for num opcode serialize (pierrenn)
    
    Pull request description:
    
      This was reported by practicalswift here bitcoin#18046
    
      It seems that the original author of the line used a reference to glibc `abs`: https://github.com/lattera/glibc/blob/master/stdlib/abs.c
    
      However depending on some implementation details this can be undefined behavior for unusual values.
    
      A detailed explanation of the UB is provided here : https://stackoverflow.com/questions/17313579/is-there-a-safe-way-to-get-the-unsigned-absolute-value-of-a-signed-integer-with (by [Billy O'Neal](https://twitter.com/malwareminigun))
    
      Simple relevant godbolt example :  https://godbolt.org/z/yRwtCG
    
      Thanks!
    
    ACKs for top commit:
      sipa:
        ACK 2748e87
      MarcoFalke:
        ACK 2748e87, only checked that the bitcoind binary does not change with clang -O2 🎓
      practicalswift:
        ACK 2748e87
    
    Tree-SHA512: 539a34c636c2674c66cb6e707d9d0dfdce63f59b5525610ed88da10c9a8d59d81466b111ad63b850660cef3750d732fc7755530c81a2d61f396be0707cd86dec
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    81f64f7 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#18855: tests: feature_backwards_compatibility.py test d…

    …owngrade after upgrade
    
    489ebfd tests: feature_backwards_compatibility.py test downgrade after upgrade (Andrew Chow)
    
    Pull request description:
    
      After upgrading the node, try to go back to the original version to make sure that using a newer node version does not prevent the wallet file from being downgraded again.
    
    ACKs for top commit:
      MarcoFalke:
        ACK 489ebfd
    
    Tree-SHA512: 86231de6514b3657912fd9d6621212166fd2b29b591fc97120092c548babcf1d6f50b5bd103b28cecde395a26809134f01c1a198725596c3626420de3fd1f017
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    f947086 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    63b9071 View commit details
    Browse the repository at this point in the history
  12. (partial) Merge bitcoin#21940: refactor: Mark CAddrMan::Select and Ge…

    …tAddr const
    
    fae108c Fix incorrect whitespace in addrman (MarcoFalke)
    fa32024 Add missing GUARDED_BY to CAddrMan::insecure_rand (MarcoFalke)
    fab755b fuzz: Actually use const addrman (MarcoFalke)
    fae0c79 refactor: Mark CAddrMan::GetAddr const (MarcoFalke)
    fa02934 refactor: Mark CAddrMan::Select const (MarcoFalke)
    
    Pull request description:
    
      To clarify that a call to this only changes the random state and nothing else.
    
    ACKs for top commit:
      jnewbery:
        Code review ACK fae108c
      theStack:
        re-ACK fae108c 🍦
    
    Tree-SHA512: 3ffb211d4715cc3daeb3bfcdb3fcc6b108ca96df5fa565510436fac0e8da86c93b30c9c4aad0563e27d84f615fcd729481072009a4e2360c8b3d40787ab6506a
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    f40cb71 View commit details
    Browse the repository at this point in the history
  13. (partial) Merge bitcoin#22232: refactor: Pass interpreter flags as ui…

    …nt32_t instead of signed int
    
    fa621ed refactor: Pass script verify flags as uint32_t (MarcoFalke)
    
    Pull request description:
    
      The flags are cast to unsigned in the interpreter anyway, so avoid the confusion (and fuzz crashes) by just passing them as unsigned from the beginning.
    
      Also, the flags are often inverted bit-wise with the `~` operator, which also works on signed integers, but might cause confusion as the sign bit is flipped.
    
      Fixes bitcoin#22233
    
    ACKs for top commit:
      theStack:
        Concept and code review ACK fa621ed
      kristapsk:
        ACK fa621ed
      jonatack:
        ACK fa621ed
    
    Tree-SHA512: ea0720f32f823fa7f075309978672aa39773c6019d12b6c1c9d611fc1983a76115b7fe2a28d50814673bb6415c311ccc05b99d6e871575fb6900faf75ed17769
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    c338cd6 View commit details
    Browse the repository at this point in the history
  14. Merge bitcoin#22505: addrman: Remove unused test_before_evict argumen…

    …t from Good()
    
    f036dfb [addrman] Remove unused test_before_evict argument from Good() (John Newbery)
    
    Pull request description:
    
      This has never been used in the public interface method since it was
      introduced in bitcoin#9037.
    
    ACKs for top commit:
      lsilva01:
        Tested ACK bitcoin@f036dfb on Ubuntu 20.04.
      theStack:
        Code-review ACK f036dfb
    
    Tree-SHA512: 98145d9596b4ae1f354cfa561be1a54c6b8057c920e0ac3d4c1d42c9326b2dad2d44320f4171bb701d97088b216760cca8017b84c8b5dcd2b1dc8f158f28066d
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    795fe6a View commit details
    Browse the repository at this point in the history
  15. Merge bitcoin#22407: rpc: Return block time in getblockchaininfo

    20edf4b rpc: Return block time in getblockchaininfo (João Barbosa)
    
    Pull request description:
    
      Return tip time in `getblockchaininfo`, for some use cases this can save a call to `getblock`.
    
    ACKs for top commit:
      naumenkogs:
        ACK 20edf4b
      theStack:
        re-ACK 20edf4b
      0xB10C:
        ACK 20edf4b
      kristapsk:
        ACK 20edf4b
      Zero-1729:
        re-ACK 20edf4b
    
    Tree-SHA512: 29a920cfff1ef53e0af601c3f93f8f9171f3be47fc84b0fa293cb865b824976e8c1510b17b27d17daf0b8e658dd77d9dc388373395f0919fc4a23cd5019642d5
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    06e4671 View commit details
    Browse the repository at this point in the history
  16. Merge bitcoin#22510: test: add test for RPC error 'Transaction alread…

    …y in block chain'
    
    2ebf2fe test: check for RPC error 'Transaction already in block chain' (-27) (Sebastian Falbesoner)
    
    Pull request description:
    
      This PR adds missing test coverage for the RPC error "Transaction already in block chain" (error code `RPC_VERIFY_ALREADY_IN_CHAIN` = `RPC_TRANSACTION_ALREADY_IN_CHAIN` = -27), which is thrown in the function `BroadcastTransaction` (src/node/transaction.cpp).
    
    ACKs for top commit:
      kristapsk:
        ACK 2ebf2fe (ran linter, looked at changes and ran modified test and checked code in `src/node/transaction.cpp`)
      darosior:
        ACK 2ebf2fe
    
    Tree-SHA512: 8bfbd3ff3da0cb3b8745f69b8ca2377f85fa99f0270750840b60e6ae43b5645c5c59b236993e8b2ad0444ec4171484e4f1ee23fa7e81b79d4222bcb623666fa5
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    7eb5033 View commit details
    Browse the repository at this point in the history
  17. Merge bitcoin#22383: rpc: Prefer to use txindex if available for GetT…

    …ransaction
    
    78f4c8b prefer to use txindex if available for GetTransaction (Jameson Lopp)
    
    Pull request description:
    
      Fixes bitcoin#22382
    
      Motivation: prevent excessive disk reads if txindex is enabled.
    
      Worth noting that this could be argued to be less of a bug and more of an issue of undefined behavior. If a user calls GetTransaction with the wrong block hash, what should happen?
    
    ACKs for top commit:
      jonatack:
        ACK 78f4c8b
      theStack:
        Code review ACK 78f4c8b
      LarryRuane:
        tACK 78f4c8b
      luke-jr:
        utACK 78f4c8b
      jnewbery:
        utACK 78f4c8b
      rajarshimaitra:
        Code review ACK bitcoin@78f4c8b
      lsilva01:
        Code Review ACK and Tested ACK bitcoin@78f4c8b on Ubuntu 20.04
    
    Tree-SHA512: af7db5b98cb2ae4897b28476b2fa243bf7e6f850750d9347062fe8013c5720986d1a3c808f80098e5289bd84b085de03c81a44e584dc28982f721c223651bfe0
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    ad3086c View commit details
    Browse the repository at this point in the history
  18. Merge bitcoin#13533: [tests] Reduced number of validations in tx_vali…

    …dationcache_tests
    
    c3e111a Reduced number of validations in `tx_validationcache_tests` to keep the run time reasonable. (lucash-dev)
    
    Pull request description:
    
      Following a suggestion in the comments, changed `ValidateCheckInputsForAllFlags` from testing all possible flag combinations to testing a random subset. Also created a new enum constant for the highest flag, so that this test doesn’t keep testing an incomplete subset in case a new flag is added.
    
      Timing for `checkinputs_test`:
      ```
      Before:   6.8s
      After:    3.7s
      ----------------
      Saved:    3.1s (45%)
      ```
    
      This PR was split from bitcoin#13050. Also see bitcoin#10026.
    
    ACKs for top commit:
      leonardojobim:
        tACK bitcoin@c3e111a.
      kallewoof:
        ACK c3e111a
      theStack:
        re-ACK c3e111a
    
    Tree-SHA512: bef49645bdd4f61ec73cc77a9f028b95d9856db9446d2e7fc9a48867a6f0e94c2c9f150cb771a30fe852db0efb0a1bd15d38b00d712651793ccb59ff6157a7b4
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    8109f00 View commit details
    Browse the repository at this point in the history
  19. Merge bitcoin#22528: refactor: move GetTransaction to node/transactio…

    …n.cpp
    
    f685a13 doc: GetTransaction()/getrawtransaction follow-ups to bitcoin#22383 (John Newbery)
    abc57e1 refactor: move `GetTransaction(...)` to node/transaction.cpp (Sebastian Falbesoner)
    
    Pull request description:
    
      ~This PR is based on bitcoin#22383, which should be reviewed first~ (merged by now).
    
      In [yesterday's PR review club session to PR 22383](https://bitcoincore.reviews/22383), the idea of moving the function `GetTransaction(...)` from src/validation.cpp to src/node/transaction.cpp came up. With this, the circular dependency "index/txindex -> validation -> index/txindex" is removed (see change in `lint-circular-dependencies.sh`). Thanks to jnewbery for suggesting and to sipa for providing historical background.
    
      Relevant IRC log:
      ```
      17:52 <jnewbery> Was anyone surprised that GetTransaction() is in validation.cpp? It seems to me that node/transaction.cpp would be a more appropriate place for it.
      17:53 <raj_> jnewbery, +1
      17:53 <stickies-v> agreed!
      17:54 <glozow> jnewbery ya
      17:54 <jnewbery> seems weird that validation would call into txindex. I wonder if we remove this function, then validation would no longer need to #include txindex
      17:54 <sipa> GetTransaction predates node/transaction.cpp, and even the generic index framework itself :)
      17:55 <sipa> (before 0.8, validation itself used the txindex)
      17:55 <jnewbery> (and GetTransaction() seems like a natural sibling to BroadcastTransaction(), which is already in node/transaction.cpp)
      17:55 <jnewbery> sipa: right, this is not meant as a criticism of course. Just wondering if we can organize things a bit more rationally now that we have better separation between things.
      17:55 <sipa> jnewbery: sure, just providing background
      17:56 <sipa> seems very reasonable to move it elsewhere now
      ```
    
      The commit should be trivial to review with `--color-moved`.
    
    ACKs for top commit:
      jnewbery:
        Code review ACK f685a13
      rajarshimaitra:
        tACK bitcoin@f685a13
      mjdietzx:
        crACK f685a13
      LarryRuane:
        Code review, test ACK f685a13
    
    Tree-SHA512: 0e844a6ecb1be04c638b55bc4478c2949549a4fcae01c984eee078de74d176fb19d508fc09360a62ad130677bfa7daf703b67870800e55942838d7313246248c
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    fbddd23 View commit details
    Browse the repository at this point in the history
  20. Merge bitcoin#22538: doc: fix command typo in guix README

    198ceb8 script, doc: guix touchups (jonatack)
    d7b7f61 Updated Readme, Corrected the codesign typo (h)
    
    Pull request description:
    
    ACKs for top commit:
      jamesob:
        ACK bitcoin@198ceb8
      jonatack:
        ACK 198ceb8
    
    Tree-SHA512: 408360cebb51cff330fdd5d5d8ae91a168cdc99fb1377913fd9119e6eba536e58f87ff5c5b479e21a21fa3403323b137c338005bbd67e6fd24314929cdff9325
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    693abb2 View commit details
    Browse the repository at this point in the history
  21. Merge bitcoin#22139: test: add type annotations to util.get_rpc_proxy

    fbeb8c4 test: add type annotations to util.get_rpc_proxy (fanquake)
    
    Pull request description:
    
      Split out from bitcoin#22092 while we address the functional test failure.
    
    ACKs for top commit:
      instagibbs:
        ACK bitcoin@fbeb8c4
    
    Tree-SHA512: 031ef8703202ae5271787719fc3fea8693574b2eb937ccf852875de95798d7fa3c39a8db7c91993d0c946b45d9b4d6de570bd1102e0344348784723bd84803a8
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    0845e19 View commit details
    Browse the repository at this point in the history
  22. Merge pull request dashpay#5663 from vijaydasmp/bp23_2

    backport: Merge bitcoin#(partial) 21940,(partial) 22232,22505,22407,22510,22383,13533,22528,22538,22139
    PastaPastaPasta authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    cefa2eb View commit details
    Browse the repository at this point in the history
  23. Merge bitcoin#22530: log: sort logging categories alphabetically

    d596dba test: assert logging categories are sorted in rpc and help (Jon Atack)
    17bbff3 log, refactor: use guard clause in LogCategoriesList() (Jon Atack)
    7c57297 log: sort LogCategoriesList and LogCategoriesString alphabetically (Jon Atack)
    f720cfa test: verify number of categories returned by logging RPC (Jon Atack)
    
    Pull request description:
    
      Sorting the logging categories seems more user-friendly with the number of categories we now have, allowing CLI users to more quickly find a particular category.
    
      before
      ```
      $ bitcoin-cli help logging
      ...
      The valid logging categories are: net, tor, mempool, http, bench, zmq, walletdb, rpc, estimatefee, addrman, selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej, libevent, coindb, qt, leveldb, validation, i2p, ipc
    
      $ bitcoind -h | grep -A8 "debug=<category>"
        -debug=<category>
             ...
             output all debugging information. <category> can be: net, tor,
             mempool, http, bench, zmq, walletdb, rpc, estimatefee, addrman,
             selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej,
             libevent, coindb, qt, leveldb, validation, i2p, ipc.
    
      $ bitcoin-cli logging [] '["addrman"]'
      {
        "net": false,
        "tor": true,
        "mempool": false,
        "http": false,
        "bench": false,
        "zmq": false,
        "walletdb": false,
        "rpc": false,
        "estimatefee": false,
        "addrman": false,
        "selectcoins": false,
        "reindex": false,
        "cmpctblock": false,
        "rand": false,
        "prune": false,
        "proxy": true,
        "mempoolrej": false,
        "libevent": false,
        "coindb": false,
        "qt": false,
        "leveldb": false,
        "validation": false,
        "i2p": true,
        "ipc": false
      }
      ```
    
      after
    
      ```
      $ bitcoin-cli help logging
      ...
      The valid logging categories are: addrman, bench, cmpctblock, coindb, estimatefee, http, i2p, ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, selectcoins, tor, validation, walletdb, zmq
    
      $ bitcoind -h | grep -A8 "debug=<category>"
        -debug=<category>
             ...
             output all debugging information. <category> can be: addrman,
             bench, cmpctblock, coindb, estimatefee, http, i2p, ipc, leveldb,
             libevent, mempool, mempoolrej, net, proxy, prune, qt, rand,
             reindex, rpc, selectcoins, tor, validation, walletdb, zmq.
    
      $ bitcoin-cli logging [] '["addrman"]'
      {
        "addrman": false,
        "bench": false,
        "cmpctblock": false,
        "coindb": false,
        "estimatefee": false,
        "http": false,
        "i2p": false,
        "ipc": false,
        "leveldb": false,
        "libevent": false,
        "mempool": false,
        "mempoolrej": false,
        "net": false,
        "proxy": false,
        "prune": false,
        "qt": false,
        "rand": false,
        "reindex": false,
        "rpc": false,
        "selectcoins": false,
        "tor": false,
        "validation": false,
        "walletdb": false,
        "zmq": false
      }
      ```
    
    ACKs for top commit:
      theStack:
        re-ACK d596dba
    
    Tree-SHA512: d546257f562b0a288d1b19a028f1a510aaf21bd21da058e7c84653d305ea8662ecb4647ebefd2b97411f845fe5b0b841d40d3fe6814eefcb8ce82df341dfce22
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    42aea04 View commit details
    Browse the repository at this point in the history
  24. (partial) Merge bitcoin#21562: [net processing] Various tidying up of…

    … PeerManagerImpl ctor
    
    fde1bf4 [net processing] Default initialize m_recent_confirmed_transactions (John Newbery)
    37dcd12 scripted-diff: Rename recentRejects (John Newbery)
    cd9902a [net processing] Default initialize recentRejects (John Newbery)
    a28bfd1 [net processing] Default initialize m_stale_tip_check_time (John Newbery)
    9190b01 [net processing] Add Orphanage empty consistency check (John Newbery)
    
    Pull request description:
    
      - Use default initialization of PeerManagerImpl members where possible
      - Remove unique_ptr indirection where it's not needed
    
    ACKs for top commit:
      MarcoFalke:
        ACK fde1bf4 👞
      theStack:
        re-ACK fde1bf4
    
    Tree-SHA512: 7ddedcc972df8e933e1fbe5c88b8ea17df89e1e58fc769518512c5540e49dc8eddb3f47e78d1329a6fc5644d2c1d11c981f681fd633f5218bfa4b3e6a86f3d7b
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    f4ea109 View commit details
    Browse the repository at this point in the history
  25. Merge bitcoin#22322: fuzz: Check banman roundtrip

    fa485d0 fuzz: Check banman roundtrip (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      practicalswift:
        cr ACK fa485d0
      vasild:
        ACK fa485d0
    
    Tree-SHA512: 84e297c0b90ef68d72afd2053bfda2888496c1b180233516a8caaf76d6c03403f1e4ed59f1eb32d799873fc34009634b4ce372244b9d546d04626af41ac4d1d7
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    6ba92a6 View commit details
    Browse the repository at this point in the history
  26. Merge bitcoin#22517: fuzz: Temporarily disable failing assert in banm…

    …an fuzz test
    
    fa8bed6 fuzz: Temporarily disable failing assert in banman fuzz test (MarcoFalke)
    
    Pull request description:
    
      Otherwise the remainder of the fuzz test can't be fuzzed without running into crashes
    
    ACKs for top commit:
      practicalswift:
        cr ACK fa8bed6
    
    Tree-SHA512: ec6606292e2cfd26484c7f6caf1c418c377da54111b332990fce68373f0438defda71d931a42ca34431527fbc172dd2fdf29b260afca15b34910ee137de1c365
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    1231278 View commit details
    Browse the repository at this point in the history
  27. Merge pull request dashpay#5677 from vijaydasmp/bp23_3

    backport: Merge bitcoin#22530,(partial)21562,22322,22517
    PastaPastaPasta authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    5783743 View commit details
    Browse the repository at this point in the history
  28. Merge bitcoin#20466: test: Fix intermittent p2p_fingerprint issue

    fad7be5 test: Fix intermittent p2p_finerprint issue (MarcoFalke)
    
    Pull request description:
    
      A single sync_with_ping can't be used to drop a block announcement, as the block might be sent *after* the ping has been responded to.
    
      Fix that by waiting for the block.
    
    ACKs for top commit:
      theStack:
        ACK fad7be5
    
    Tree-SHA512: d43ba9d07273486858f65a26326cc6637ef743bf7b400e5048ba7eac266fb1893283e6503dd49f179caa1abab2977315fb70ba9fba34be9a817a74259d8e4034
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    d667e57 View commit details
    Browse the repository at this point in the history
  29. Merge bitcoin#14604: tests: Add test and refactor feature_block.py

    5531119 Added new test for future blocks reacceptance (sanket1729)
    511a5af Fixed inconsistencies between code and comments (sanket1729)
    
    Pull request description:
    
      This Commit does 3 things:
      1) Adds a test case for checking reacceptance a previously rejected block which
      was too far in the future.
      ~~2) clean up uses of rehash or calc_sha256 where it was not needed~~
      3) While constructing block 44, this commit makes the code consistent with the expected figure in
      the comment just above it by adding a transaction to the block.
      4) Fix comment describing `sign_tx()` function
    
    ACKs for top commit:
      duncandean:
        reACK 5531119
      brunoerg:
        reACK 5531119
    
    Tree-SHA512: d40c72fcdbb0b2a0715adc58441eeea08147ee2ec5e371a4ccc824ebfdc6450698bd40aaeecb7ea7bfdb3cd1b264dd821b890276fff8b8d89b7225cdd9d6b546
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    7fbc0f3 View commit details
    Browse the repository at this point in the history
  30. Merge bitcoin#15710: wallet: Catch ios_base::failure specifically

    7486e27 Tests: Unit test related to WalletDB ReadKeyValue (Bushstar)
    32def8d Catch ios_base::failure specifically (Peter Bushnell)
    
    Pull request description:
    
      In bitcoin#2950 a hash of the pubkey and private was added to speed up key import, this was made backwards compatible by reading the hash in a try block with an ellipses catch all in case the hash was not present.
    
      CDataStream::read() specifically throws std::ios_base::failure, backwards compatibility expects only that error to be thrown, if something else gets thrown we should not be catching it. The change in this commit is to catch that exception only. If any other exception is thrown other than std::ios_base::failure it will be caught by the wider try block and an error written to the log and/or console.
    
      CDataStream::read() throwing std::ios_base::failure.
      https://github.com/bitcoin/bitcoin/blob/2c364fde423e74b4e03ebcff4582a9db7a6c4e4b/src/streams.h#L191
    
      Wider catch statements that pick up all others exceptions other than ios_base::failure.
      https://github.com/bitcoin/bitcoin/blob/2c364fde423e74b4e03ebcff4582a9db7a6c4e4b/src/wallet/walletdb.cpp#L425
    
      https://github.com/bitcoin/bitcoin/blob/2c364fde423e74b4e03ebcff4582a9db7a6c4e4b/src/wallet/walletdb.cpp#L430
    
    ACKs for top commit:
      laanwj:
        Code review ACK 7486e27
    
    Tree-SHA512: 5364bf935af8ec603bf5b8fef8c23b5cdaa4fe3506090cff988413221f2eaa99f7a91929afb42a35f8881ce2328744a0d32052da51ca0a5b2e65b6809e97f604
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    6853849 View commit details
    Browse the repository at this point in the history
  31. Merge bitcoin#17458: Refactor OutputGroup effective value calculation…

    …s and filtering to occur within the struct
    
    9adc2f8 Refactor OutputGroups to handle effective values, fees, and filtering (Andrew Chow)
    7d07e86 Use real value when calculating OutputGroup value (Andrew Chow)
    
    Pull request description:
    
      Currently, the effective values and filtering for positive effective values is done outside of the OutputGroup. We should instead have functions in Outputgroup to do this and call those for each OutputGroup. So this PR does that.
    
      This makes future changes for effective values in coin selection much easier.
    
    ACKs for top commit:
      instagibbs:
        reACK 9adc2f8
      fjahr:
        re-ACK 9adc2f8
      meshcollider:
        Light code review ACK 9adc2f8
    
    Tree-SHA512: 7445c94b7295b45bcd83a6f8a5c8f6961a89453fcc856335192d4b4a66aec7724513616b04e5111588ab208c89b311055399d6279cd9c4ce452aefb85f04b64a
    meshcollider authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    51ff73a View commit details
    Browse the repository at this point in the history
  32. Merge bitcoin#18722: addrman: improve performance by using more suita…

    …ble containers
    
    a92485b addrman: use unordered_map instead of map (Vasil Dimov)
    
    Pull request description:
    
      `CAddrMan` uses `std::map` internally even though it does not require
      that the map's elements are sorted. `std::map`'s access time is
      `O(log(map size))`. `std::unordered_map` is more suitable as it has a
      `O(1)` access time.
    
      This patch lowers the execution times of `CAddrMan`'s methods as follows
      (as per `src/bench/addrman.cpp`):
    
      ```
      AddrMan::Add(): -3.5%
      AddrMan::GetAddr(): -76%
      AddrMan::Good(): -0.38%
      AddrMan::Select(): -45%
      ```
    
    ACKs for top commit:
      jonatack:
        ACK a92485b
      achow101:
        ACK a92485b
      hebasto:
        re-ACK a92485b, only suggested changes and rebased since my [previous](bitcoin#18722 (review)) review.
    
    Tree-SHA512: d82959a00e6bd68a6c4c5a265dd08849e6602ac3231293b7a3a3b7bf82ab1d3ba77f8ca682919c15c5d601b13e468b8836fcf19595248116635f7a50d02ed603
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    51c69d1 View commit details
    Browse the repository at this point in the history
  33. (partial) Merge bitcoin#17934: doc: Use CONFIG_SITE variable instead …

    …of --prefix option
    
    223b1ba doc: Use CONFIG_SITE instead of --prefix (Hennadii Stepanov)
    
    Pull request description:
    
      The current examples of `--prefix=...` option usage to point `configure` script to appropriate `depends` directory is not [standard](https://www.gnu.org/prep/standards/html_node/Directory-Variables.html). This causes some [confusion](bitcoin#16691) and a bit of inconvenience.
    
      Consider a CentOS 7 32 bit system. Packages `libdb4-devel`, `libdb4-cxx-devel`, `miniupnpc-devel` and `zeromq-devel` are unavailable from repos. After recommended build with depends:
      ```
      cd depends
      make
      cd ..
      ./autogen.sh
      ./configure --prefix=$PWD/depends/i686-pc-linux-gnu
      make
      ```
      a user is unable to `make install` compiled binaries neither locally (to `~/.local`) nor system-wide (to `/usr/local`) as `--prefix` is set already.
    
      Meanwhile, the standard approach with using [`config.site`](https://www.gnu.org/software/automake/manual/html_node/config_002esite.html) files allows both possibilities:
    
      ```
      cd depends
      make
      cd ..
      ./autogen.sh
      CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure --prefix ~/.local
      make
      make install
      ```
    
      or
    
      ```
      CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure
      make
      sudo make install  # install to /usr/local
      ```
    
      Moreover, this approach is used in [Gitian descriptors](https://github.com/bitcoin/bitcoin/tree/master/contrib/gitian-descriptors) already.
    
    ACKs for top commit:
      practicalswift:
        ACK 223b1ba: patch looks correct
      fanquake:
        ACK 223b1ba
    
    Tree-SHA512: 46d97924f0fc7e95ee4566737cf7c2ae805ca500e5c49af9aa99ecc3acede4b00329bc727a110aa1b62618dfbf5d1ca2234e736f16fbdf96d6ece5f821712f54
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    0181d2b View commit details
    Browse the repository at this point in the history
  34. Merge pull request dashpay#5681 from vijaydasmp/bp22_17

    backport: Merge bitcoin#20466,14604,15710,17458,18722,(partial) 17934
    PastaPastaPasta authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    7b6c1be View commit details
    Browse the repository at this point in the history
  35. Merge bitcoin#18896: qt: Reset toolbar after all wallets are closed

    1e9bfd4 qt: Reset toolbar after all wallets are closed (Hennadii Stepanov)
    
    Pull request description:
    
      If the last open wallet is closed from the non-"Overview" tab, that tab remains active when a new wallet is opened:
    
      ![Screenshot from 2020-05-06 09-00-26](https://user-images.githubusercontent.com/32963518/81142394-46821880-8f78-11ea-84b5-1d02f2b7f3f1.png)
    
      This PR fixes this bug.
    
    ACKs for top commit:
      promag:
        Code review ACK 1e9bfd4.
      luke-jr:
        utACK 1e9bfd4
      jonasschnelli:
        utACK 1e9bfd4
    
    Tree-SHA512: a8dfd7591267e9544ad40c87581d554e5cfaad4b2a5bbfdbaf2596dc6869d2ac6cf7877adfef3d528fc61b081d40c6e30d787bbd7280ef7946aa7f7d9bc8b18e
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    21676ff View commit details
    Browse the repository at this point in the history
  36. Merge bitcoin#20248: test: fix length of R check in key_signature_tests

    8989577 Fix length of R check in test/key_tests.cpp:key_signature_tests (Dmitry Petukhov)
    
    Pull request description:
    
      The code before the fix only checked the length of R value of the last
      signature in the loop, and only for equality (but the length can be
      less than 32)
    
      The fixed code checks that length of the R value is less than or equal
      to 32 on each iteration of the loop
    
    ACKs for top commit:
      laanwj:
        ACK 8989577
    
    Tree-SHA512: 73eb2bb4a6c1c5fc11dd16851b28b43037ac06ef8cfc3b1f957429a1fca295c9422d67ec6c73c0e4bb4919f92e22dc5d733e84840b0d01ad1a529aa20d906ebf
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    ecabacd View commit details
    Browse the repository at this point in the history
  37. Merge bitcoin#20765: fuzz: check that certain script TxoutType are no…

    …nstandard
    
    efaf80e fuzz: check that certain script TxoutType are nonstandard (Michael Dietz)
    
    Pull request description:
    
      - Every transaction of type NONSTANDARD must not be a standard script
      - The only know types of nonstandard scripts are NONSTANDARD and certain NULL_DATA and MULTISIG scripts
    
      When reviewing bitcoin#20761 I figured this is very similar and might also be good to have
    
    ACKs for top commit:
      MarcoFalke:
        ACK efaf80e
    
    Tree-SHA512: 6f563ee3104ea9d2633aad95f1d003474bea759d0f22636c37aa91b5536a6ff0800c42447285ca8ed12f1b3699bf781dae1e5e0a3362da578749cd3164a06ea4
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    2d41bfb View commit details
    Browse the repository at this point in the history
  38. Merge bitcoin-core/gui#165: Save QSplitter state in QSettings

    90f9fc2 qt: Save QSplitter state in QSettings (Hennadii Stepanov)
    
    Pull request description:
    
      This PR adds the ability to save the `QSplitter` widget state in `QSettings` during shutdown, and restore it on startup.
    
      A user no longer needs to adjust the splitter every time :)
      ![DeepinScreenshot_select-area_20201225211422](https://user-images.githubusercontent.com/32963518/103141024-046c3980-46f7-11eb-9a8c-83613527ffe1.png)
    
    ACKs for top commit:
      jonasschnelli:
        utACK 90f9fc2
      jonatack:
        ACK 90f9fc2 this sets the "PeersTabSplitterSizes" value in the RPCConsole dtor and restores it in the RPCConsole ctor; tested in Debian with various split settings, tab open/close sequences, and shutdown methods, and the Peers window split state was faithfully maintained.
    
    Tree-SHA512: efbd6a4cee512982944955d36775e75a8a217b1dc49e62d42c6e402d2710dd44324b2c3c1edeb5fe38d9229e0e4a39734d1f4e63405ade8694762e1bbf72020b
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    5db578c View commit details
    Browse the repository at this point in the history
  39. Merge bitcoin-core/gui#183: Add include for std::bind.

    2a39ccf Add include for std::bind. (sinetek)
    
    Pull request description:
    
      Hi, this patch adds in <functional> because the GUI code makes use of std::bind.
      That's all.
    
    ACKs for top commit:
      jonasschnelli:
        utACK 2a39ccf
    
    Tree-SHA512: fb5ac07d9cd5d006182b52857b289a9926362a2f1bfa4f7f1c78a088670e2ccf39ca28214781df82e8de3909fa3e69685fe1124a7e3ead758575839f5f2277a9
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    a6cf5eb View commit details
    Browse the repository at this point in the history
  40. Merge bitcoin#20954: test: Declare nodes type in test_framework.py.

    5353b0c Change type definitions for "chain" and "setup_clean_chain" from type comments to Python 3.6+ types. Additionally, set type for "nodes". (Kiminuo)
    
    Pull request description:
    
      ### Motivation
    
      When I wanted to understand better https://github.com/bitcoin/bitcoin/pull/19145/files#diff-4bebbd3b112dc222ea7e75ef051838ceffcee63b9e9234a98a4cc7251d34451b test, I noticed that navigation in PyCharm/VS Code did not work for `nodes` variable. I think this is frustrating, especially for newcomers.
    
      ### Summary
    
      * This PR modifies Python 3.5 [type comments](https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html#variables) to Python 3.6+ types and adds a proper type for `nodes` [instance attribute](https://mypy.readthedocs.io/en/stable/class_basics.html#instance-and-class-attributes).
      * This PR does not change behavior.
      * This PR is intentionally very small, if the concept is accepted, a follow-up PRs can be more ambitious.
    
      ### End result
    
      1. Open `test/functional/feature_abortnode.py`
      2. Move your caret to: `self.nodes[0].generate[caret here](3)`
      3. Use "Go to definition" [F12] should work now.
    
      I have tested this on PyCharm (Windows, Ubuntu) and VS Code (Windows, Ubuntu).
    
      Note: Some `TestNode` methods (e.g. `self.nodes[0].getblock(...)` ) use `__call__` mechanism and navigation does not work for them even with this PR.
    
    ACKs for top commit:
      laanwj:
        ACK 5353b0c
      theStack:
        ACK 5353b0c
    
    Tree-SHA512: 821773f052ab9b2889dc357d38c59407a4af09e3b86d7134fcca7d78e5edf3a5ede9bfb37595ea97caf9ebfcbda372bcf73763b7f89b0677670f21b3e396a12b
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    ec4cbc2 View commit details
    Browse the repository at this point in the history
  41. Merge bitcoin#21041: log: Move "Pre-allocating up to position 0x[…] i…

    …n […].dat" log message to debug category
    
    25f899c log: Move "Pre-allocating up to position 0x[...] in [...].dat" log message to debug category (practicalswift)
    acd7980 log: Move "Leaving block file [...]: [...]" log message to debug category (practicalswift)
    
    Pull request description:
    
      Move `Pre-allocating up to position 0x[…] in […].dat` log message to debug category.
    
      After the cleanup of `-debug=net` log messages PR (bitcoin#20724) was merged recently the console log now has very high signal to noise ratio. That's great! :)
    
      This PR increases the signal to noise ratio slightly more by moving the most common remaining implementation detail log message (`Pre-allocating up to position 0x[…] in […].dat`) to the debug category where it belongs :)
    
      Expected standard output from `bitcoind` (when in steady state) before this patch:
    
      ```
      $ src/bitcoind
      …
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z Pre-allocating up to position 0x0000000 in blk00000.dat
      0000-00-00T00:00:00Z Pre-allocating up to position 0x000000 in rev00000.dat
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      ```
    
      Expected standard output from `bitcoind` (when in steady state) after this patch:
    
      ```
      $ src/bitcoind
      …
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
      ```
    
      I find the latter alternative much easier to visually scan for anomalies (and more aesthetically pleasing TBH!).
    
      Non-GUI users deserve nice interfaces too :)
    
    ACKs for top commit:
      laanwj:
        ACK 25f899c
    
    Tree-SHA512: 5970798c41b041527ebdcbd843c5e136c257c28c3b21fc74102da8970406ca5c0c7e406305c5e6e67de5c1708dc1858af07a77a2e05f44159b7103423e8ab32f
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    617f410 View commit details
    Browse the repository at this point in the history
  42. Merge bitcoin#21250: build: make HAVE_O_CLOEXEC available outside Lev…

    …elDB (bugfix)
    
    9bac713 build: make HAVE_O_CLOEXEC available outside LevelDB (bugfix) (Sebastian Falbesoner)
    584fd91 init: only use pipe2 if availabile, check in configure (Sebastian Falbesoner)
    
    Pull request description:
    
      The result of the O_CLOEXEC availability check is currently only set in the Makefile and passed to LevelDB (see `LEVELDB_CPPFLAGS_INT` in `src/Makefile.leveldb.include`), but not defined to be used in our codebase. This means that code within the preprocessor conditional `#if HAVE_O_CLOEXEC` was actually never compiled. On the master branch this is currently used for pipe creation in `src/shutdown.cpp`, PR bitcoin#21007 moves this part to a new module (I found the issue while testing that PR).
    
      The fix is similar to the one in bitcoin#19803, which solved the same problem for HAVE_FDATASYNC.
    
      In the course of working on the PR it turned out that pipe2 is not available an all platforms, hence a configure check and a corresponding define HAVE_PIPE2 is introduced and used.
    
      The PR can be tested by anyone with a system that has pipe2 and O_CLOEXEC available by putting gibberish into the HAVE_O_CLOEXEC block: on master, everything should compile fine, on PR, the compiler should abort with an error. At least that's my naive way of testing preprocessor logic, happy to hear more sophisticated ways :-)
    
    ACKs for top commit:
      laanwj:
        Code review ACK 9bac713
    
    Tree-SHA512: aec89faf6ba52b6f014c610ebef7b725d9e967207d58b42a4a71afc9f1268fcb673ecc85b33a2a3debba8105a304dd7edaba4208c5373fcef2ab83e48a170051
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    8f212e0 View commit details
    Browse the repository at this point in the history
  43. Merge bitcoin#21358: fuzz: Add missing include (test/util/setup_commo…

    …n.h)
    
    fa59ad5 fuzz: Add missing include (test/util/setup_common.h) (MarcoFalke)
    
    Pull request description:
    
      `src/test/fuzz/socks5.cpp` is using the symbol `BasicTestingSetup`, which is defined in `src/test/util/setup_common.h`.
    
      Currently compilation happens to succeed because the needed dependency is indirectly included. Compilation will break as soon as the indirect dependency is broken. According to the dev notes, everything that is used must be included.
    
      Fix the issue by including the missing include.
    
    ACKs for top commit:
      fanquake:
        ACK fa59ad5
    
    Tree-SHA512: 9359d5d288ebc5a53d753ebed1ee8d49ddcfe12aeb56054ea43654c0d915337bb0dce7c8a7178e94711ff8dacd1b3ea0a2871b21b1709cd9786efc0c1ef532b3
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    ee1aff1 View commit details
    Browse the repository at this point in the history
  44. Merge bitcoin#21334: test: Additional (refactored) BIP9 tests

    0c471a5 tests: check never active versionbits (Anthony Towns)
    3ba9283 tests: more helpful errors for failing versionbits tests (Anthony Towns)
    
    Pull request description:
    
      Extracted from bitcoin#19573 to make review easier. I also reviewed it myself.
    
      I added some comments to the test: bitcoin@bae9a45#r585486781
    
      I also moved some `TestState` changes from the second to the first commit, to reduce the latter diff.
    
    ACKs for top commit:
      ajtowns:
        ACK 0c471a5
      MarcoFalke:
        review ACK 0c471a5 🔓
    
    Tree-SHA512: 61f8d1ecaf38a6cd13db1cf71c89b8c4d2f5852ef77c5e7ecb9bd78eb216545037411641bb101cf0740c5c47845ac327954ee25b676d63779c5f148719ac5caf
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    c0cdac8 View commit details
    Browse the repository at this point in the history
  45. Merge bitcoin-core/gui#233: qt test: Don't bind to regtest port

    e21276a qt test: Don't bind to regtest port (Andrew Chow)
    
    Pull request description:
    
      The qt tests don't need to bind to the regtest port. By not binding, it will no longer conflict with existing regtest instances and the tests will run as normal.
    
      Fixes dashpay#10
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK e21276a
      jarolrod:
        re-ACK e21276a, tested on macOS 11.2
    
    Tree-SHA512: 5a269ee043f9aff7900e092c166de71912a2bf86ebe2982b3fb0e26bdebfb91869ee5d0f62082fd608c1288bfb7981f6c8647e504b11176711d7fec993a09164
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    01e39a3 View commit details
    Browse the repository at this point in the history
  46. Merge bitcoin#21487: fuzz: Use ConsumeWeakEnum in addrman for service…

    … flags
    
    5555446 fuzz: Use ConsumeWeakEnum in addrman for service flags (MarcoFalke)
    
    Pull request description:
    
      This has minimally better performance. Reported by me in bitcoin#20228 (comment)
    
    ACKs for top commit:
      practicalswift:
        Tested ACK 5555446
      vasild:
        ACK 5555446
    
    Tree-SHA512: 4e5f51fe4f2bd7b2f37d0690e41203341ba45c0c9bc9247449cd26cfb5f77dc2ec61df3e4963276f68694e4b3ca3d0a76367a51c4d775501edeb3224d305a261
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    d24bd4d View commit details
    Browse the repository at this point in the history
  47. Merge bitcoin#21477: test: Add test for CNetAddr::ToString IPv6 addre…

    …ss formatting (RFC 5952)
    
    732c7bd tests: Add test for CNetAddr::ToString IPv6 address formatting (RFC 5952) (practicalswift)
    
    Pull request description:
    
      Test that `CNetAddr::ToString` formats IPv6 addresses with zero compression and canonicalisation as described in [RFC 5952 ("A Recommendation for IPv6 Address Text Representation")](https://tools.ietf.org/html/rfc5952).
    
      Solving bitcoin#21466 will hopefully be trivial with the ability to check zero compression correctness against these tests.
    
    ACKs for top commit:
      vasild:
        ACK 732c7bd
    
    Tree-SHA512: 31a1378aa435ba4171490a2e15d7280a175292270eb001b47d367e010c6ac9b83420b82bbeab22211f8f500c69e21878047c87adf216263b3420b6bb2a5d2bfb
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    fb54245 View commit details
    Browse the repository at this point in the history
  48. Merge bitcoin-core/gui#277: Do not use QClipboard::Selection on Windo…

    …ws and macOS.
    
    7f3a598 qt: Do not use QClipboard::Selection on Windows and macOS. (Hennadii Stepanov)
    
    Pull request description:
    
      Windows and macOS do [not support](https://doc.qt.io/qt-5/qclipboard.html#notes-for-windows-and-macos-users) the global mouse selection.
    
      Fixes dashpay#258.
    
    ACKs for top commit:
      promag:
        Code review ACK 7f3a598.
      jarolrod:
        ACK 7f3a598
    
    Tree-SHA512: be2beeef7d25af6f4d4a4548325d8d29f08e4342f499666bc4a670ed468a63195d514077c2cd0dba197e12bd43316fd3e2813cdc0954364b6aa4ae6b90c118bf
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    1b130de View commit details
    Browse the repository at this point in the history
  49. Merge bitcoin#21728: remove executable flag for src/net_processing.cpp

    f2f2541 remove executable flag for src/net_processing.cpp (Sebastian Falbesoner)
    
    Pull request description:
    
      The file permissions for `src/net_processing.cpp` have been changed in bitcoin#21713, as discovered by fanquake (bitcoin#21713 (comment)). This PR removes the executable flag again.
    
    ACKs for top commit:
      kiminuo:
        ACK f2f2541 :)
      jnewbery:
        ACK f2f2541
      promag:
        ACK f2f2541.
    
    Tree-SHA512: 1d5a62afb1152029e69fccea2ae53dcb262a91724a5c03dfc4de8c409b280814d0c211c2f9a71f1a6e927f4ed571ba4ac311de9de8ebb797eaf1051674241bdb
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    2680860 View commit details
    Browse the repository at this point in the history
  50. Merge bitcoin#21658: build: fix make deploy for arm64-darwin

    b353633 build: mac_alias 2.2.0 (sgulls)
    
    Pull request description:
    
      Fix make deploy for arm64-darwin
    
      Accidentally [closed](bitcoin#21555) the PR
    
    ACKs for top commit:
      promag:
        Tested ACK b353633.
    
    Tree-SHA512: 08043792d63894b6738ea93d076cecace1d8b30a623b944170a34492c3838269da87e09878164c760cf321663fb72641a7295070a847ad67d91fc9970ebe5c6a
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    114aa16 View commit details
    Browse the repository at this point in the history
  51. Merge bitcoin#21644: p2p, bugfix: use NetPermissions::HasFlag() in CC…

    …onnman::Bind()
    
    36fb036 p2p: allow NetPermissions::ClearFlag() only with PF_ISIMPLICIT (Jon Atack)
    4e0d578 test: add net permissions noban/download unit test coverage (Jon Atack)
    dde69f2 p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind() (Jon Atack)
    
    Pull request description:
    
      This is a bugfix follow-up to bitcoin#16248 and bitcoin#19191 that was noticed in bitcoin#21506. Both v0.21 and master are affected.
    
      Since bitcoin#19191, noban is a multi-flag that implies download, so the conditional in `CConnman::Bind()` using a bitwise AND on noban will return the same result for both the noban status and the download status. This means that download peers are incorrectly not being added to local addresses because they are mistakenly seen as noban peers.
    
      The second commit adds unit test coverage to illustrate and test the noban/download relationship and the `NetPermissions` operations involving them.
    
      The final commit adds documentation and disallows calling `NetPermissions::ClearFlag()` with any second param other than `NetPermissionFlags` "implicit" -- per current usage in the codebase -- because `ClearFlag()` should not be called with any second param that is a subflag of a multiflag, e.g. "relay" or "download," as that would leave the result in an invalid state corresponding to none of the existing NetPermissionFlags. Thanks to Vasil Dimov for noticing this.
    
    ACKs for top commit:
      theStack:
        re-ACK 36fb036 ☕
      vasild:
        ACK 36fb036
      hebasto:
        ACK 36fb036, I have reviewed the code and it looks OK, I agree it can be merged.
      kallewoof:
        Code review ACK 36fb036
    
    Tree-SHA512: 5fbc7ddbf31d06b35bf238f4d77ef311e6b6ef2e1bb9893f32f889c1a0f65774a3710dcb21d94317fe6166df9334a9f2d42630809e7fe8cbd797dd6f6fc49491
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    1b6bd06 View commit details
    Browse the repository at this point in the history
  52. Merge bitcoin#21914: net: use stronger AddLocal() for our I2P address

    105941b net: use stronger AddLocal() for our I2P address (Vasil Dimov)
    
    Pull request description:
    
      There are two issues:
    
      ### 1. Our I2P address not added to local addresses.
    
      * `externalip=` is used with an IPv4 address (this sets automatically `discover=0`)
      * No `discover=1` is used
      * `i2psam=` is used
      * No `externalip=` is used for our I2P address
      * `listenonion=1 torcontrol=` are used
    
      In this case `AddLocal(LOCAL_MANUAL)` [is used](https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/torcontrol.cpp#L354) for our `.onion` address and `AddLocal(LOCAL_BIND)` [for our](https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/net.cpp#L2247) `.b32.i2p` address, the latter being [ignored](https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/net.cpp#L232-L233) due to `discover=0`.
    
      ### 2. Our I2P address removed from local addresses even if specified with `externalip=` on I2P proxy restart.
    
      * `externalip=` is used with our I2P address (this sets automatically `discover=0`)
      * No `discover=1` is used
      * `i2psam=` is used
    
      In this case, initially `externalip=` causes our I2P address to be [added](https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/init.cpp#L1266) with `AddLocal(LOCAL_MANUAL)` which overrides `discover=0` and works as expected. However, if later the I2P proxy is shut down [we do](https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/net.cpp#L2234) `RemoveLocal()` in order to stop advertising our I2P address (since we have lost I2P connectivity). When the I2P proxy is started and we reconnect to it, restoring the I2P connectivity, [we do](https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/net.cpp#L2247) `AddLocal(LOCAL_BIND)` which does nothing due to `discover=0`.
    
      To resolve those two issues, use `AddLocal(LOCAL_MANUAL)` for I2P which is also what we do with Tor.
    
    ACKs for top commit:
      laanwj:
        Code review ACK 105941b
    
    Tree-SHA512: 0c9daf6116b8d9c34ad7e6e9bbff6e8106e94e4394a815d7ae19287aea22a8c7c4e093c8dd8c58a4a1b1412b2575a9b42b8a93672c8d17f11c24508c534506c7
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    d799878 View commit details
    Browse the repository at this point in the history
  53. Merge bitcoin#21659: net: flag relevant Sock methods with [[nodiscard]]

    e286cd0 net: flag relevant Sock methods with [[nodiscard]] (Vasil Dimov)
    
    Pull request description:
    
      Flag relevant Sock methods with `[[nodiscard]]` to avoid issues like the one fixed in bitcoin#21631.
    
    ACKs for top commit:
      practicalswift:
        cr ACK e286cd0: the only changes made are additions of `[[nodiscard]]` and `(void)` where appropriate
      laanwj:
        Code review ACK e286cd0
    
    Tree-SHA512: addc361968d24912bb625b42f4db557791556bf0ffad818252a89a32d76ac22758ec70f8282dcfbfd77eebec20a8e6bb7557c8ed08d50a58de95378c34955973
    laanwj authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    5181629 View commit details
    Browse the repository at this point in the history
  54. Merge bitcoin-core/gui#343: Improve the GUI responsiveness when progr…

    …ess dialogs are used
    
    4935ac5 qt: Improve GUI responsiveness (Hennadii Stepanov)
    7585010 qt, macos: Fix GUIUtil::PolishProgressDialog bug (Hennadii Stepanov)
    
    Pull request description:
    
      [`QProgressDialog`](https://doc.qt.io/qt-5/qprogressdialog.html) estimates the time the operation will take (based on time for steps), and only shows itself if that estimate is beyond [`minimumDuration`](https://doc.qt.io/qt-5/qprogressdialog.html#minimumDuration-prop).
    
      The default `minimumDuration` value is [4 seconds](https://doc.qt.io/qt-5/qprogressdialog.html#details), and it could make users think that the GUI is frozen.
    
      This PR sets `minimumDuration` to zero for all progress dialogs, that affects ones in the `WalletControllerActivity` class.
    
    ACKs for top commit:
      ryanofsky:
        Code review ACK 4935ac5. I'm not very familiar with this API but all the changes and explanations make sense and are very clear, and this seems like it should be an improvement.
      promag:
        Code review ACK 4935ac5.
      jarolrod:
        ACK 4935ac5
    
    Tree-SHA512: 2ddd74e7fd87894d341d2439dbaa544d031a350f7f57d4c7e9fbba977dc24080fe60fd7a80a542b1647f1de9091d7fd04a36eab695088d4d75fb836548e99b5f
    hebasto authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    b4a34f3 View commit details
    Browse the repository at this point in the history
  55. Merge bitcoin#22095: test: Additional BIP32 test vector for hardened …

    …derivation with leading zeros
    
    91ef834 Additional test vector for hardened derivation with leading zeros (Kristaps Kaupe)
    
    Pull request description:
    
      See [Inconsistent BIP32 Derivations](https://blog.polychainlabs.com/bitcoin,/bip32,/bip39,/kdf/2021/05/17/inconsistent-bip32-derivations.html) and bitcoin/bips#1030.
    
    ACKs for top commit:
      practicalswift:
        cr ACK 91ef834
      sipa:
        ACK 91ef834. Verified that it matches the linked BIP32 update, and that it indeed tests derivation from a private key with leading 0 byte.
    
    Tree-SHA512: 0a3ae7aed15e4e08e9bec5db8de53c6c03ed3b3632f390394eea422597755173cbd2228ff0cfa57f5aae3df9d4cdf03a8ef4725cc8bce86ab7d9c82ab9d479ad
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    f9c8136 View commit details
    Browse the repository at this point in the history
  56. Merge bitcoin#22258: build: Disable deprecated-copy warning only when…

    … external warnings are enabled
    
    1111457 build: Disable deprecated-copy warning only when external warnings are enabled (MarcoFalke)
    
    Pull request description:
    
      Fixes bitcoin#18967
    
      Alternative to bitcoin#22240
    
    ACKs for top commit:
      fanquake:
        tACK 1111457
    
    Tree-SHA512: 0fc826f26ebbeab662fa7eed2a5cc1630c6c4e612deb91734885fc8bae0352be657ec48ae94ff55a984ac36d27b95cea8d947cc5cf408231d56addecf79db83f
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    2e19dd2 View commit details
    Browse the repository at this point in the history
  57. Merge bitcoin#22268: fuzz: Add temporary debug assert for oss-fuzz issue

    faf1af5 fuzz: Add Temporary debug assert for oss-fuzz issue (MarcoFalke)
    
    Pull request description:
    
      oss-fuzz is acting weird, so add an earlier assert to help troubleshooting
    
    ACKs for top commit:
      practicalswift:
        cr ACK faf1af5
    
    Tree-SHA512: 85830d7d47cf6b4edfe91a07bd5aa8f7110db0bade8df93868cf276ed04d5dd17e671f769e6a0fb5092012b86aa82bb411fb171411f15746981104ce634c88c1
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    ab29f04 View commit details
    Browse the repository at this point in the history
  58. Merge bitcoin#22238: build: improve detection of eBPF support

    8f7704d build: improve detection of eBPF support (fanquake)
    
    Pull request description:
    
      Just checking for the `sys/sdt.h` header isn't enough, as systems like macOS have the header, but it doesn't actually have the `DTRACE_PROBE*` probes, which leads to [compile failures](bitcoin#22006 (comment)). The contents of `sys/sdt.h` in the macOS SDK is:
      ```bash
      #ifndef _SYS_SDT_H
      #define _SYS_SDT_H
    
      /*
       * This is a wrapper header that wraps the mach visible sdt.h header so that
       * the header file ends up visible where software expects it to be.  We also
       * do the C/C++ symbol wrapping here, since Mach headers are technically C
       * interfaces.
       *
       * Note:  The process of adding USDT probes to code is slightly different
       * than documented in the "Solaris Dynamic Tracing Guide".
       * The DTRACE_PROBE*() macros are not supported on Mac OS X -- instead see
       * "BUILDING CODE CONTAINING USDT PROBES" in the dtrace(1) manpage
       *
       */
      #include <sys/cdefs.h>
      __BEGIN_DECLS
      #include <mach/sdt.h>
      __END_DECLS
    
      #endif  /* _SYS_SDT_H */
      ```
    
      The `BUILDING CODE CONTAINING USDT PROBES` section from the dtrace manpage is available [here](https://gist.github.com/fanquake/e56c9866d53b326646d04ab43a8df9e2), and outlines the more involved process of using USDT probes on macOS.
    
    ACKs for top commit:
      jb55:
        utACK 8f7704d
      practicalswift:
        cr ACK 8f7704d
      hebasto:
        ACK 8f7704d, tested on macOS Big Sur 11.4 (20F71) and on Linux Mint 20.1 (x86_64) with depends.
    
    Tree-SHA512: 5f1351d0ac2e655fccb22a5454f415906404fdaa336fd89b54ef49ca50a442c44ab92d063cba3f161cb8ea0679c92ae3cd6cfbbcb19728cac21116247a017df5
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    b048368 View commit details
    Browse the repository at this point in the history
  59. Merge bitcoin#22313: test: Add missing sync_all to feature_coinstatsi…

    …ndex
    
    fafd916 test: Add missing sync_all to feature_coinstatsindex (MarcoFalke)
    
    Pull request description:
    
      Sync the blocks before invalidating them to ensure all nodes are on the right tip. Otherwise nodes[0] might stay on the "stale" block and the test fails (intermittently)
    
    ACKs for top commit:
      jamesob:
        crACK bitcoin@fafd916
    
    Tree-SHA512: ca567b97b839b56c91d52831eaac18d8c843d376be90c9fd8b49d2eb4a46b801a1d2402996d5dfe2bef3e2c9bd75d19ed443e3f42cc4679c5f20043ba556efc8
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    56af7d6 View commit details
    Browse the repository at this point in the history
  60. Merge bitcoin#22263: refactor: wrap CCoinsViewCursor in unique_ptr

    7ad414f doc: add comment about CCoinsViewDBCursor constructor (James O'Beirne)
    0f8a5a4 move-only(ish): don't expose CCoinsViewDBCursor (James O'Beirne)
    615c1ad refactor: wrap CCoinsViewCursor in unique_ptr (James O'Beirne)
    
    Pull request description:
    
      I tripped over this one for a few hours at the beginning of the week, so I've sort of got a personal vendetta against `CCoinsView::Cursor()` returning a raw pointer.
    
      Specifically in the case of CCoinsViewDB, if a raw cursor is allocated and not freed, a cryptic leveldb assertion failure occurs on CCoinsViewDB destruction (`Assertion 'dummy_versions_.next_ == &dummy_versions_' failed.`).
    
      This is a pretty simple change.
    
      Related to: bitcoin#21766
      See also: google/leveldb#142 (comment)
    
    ACKs for top commit:
      MarcoFalke:
        review ACK 7ad414f 🔎
      jonatack:
        re-ACK 7ad414f modulo suggestion
      ryanofsky:
        Code review ACK 7ad414f. Two new commits look good and thanks for clarifying constructor comment
    
    Tree-SHA512: 6471d03e2de674d84b1ea0d31e25f433d52aa1aa4996f7b4aab1bd02b6bc340b15e64cc8ea07bbefefa3b5da35384ca5400cc230434e787c30931b8574c672f9
    MarcoFalke authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    52c8ef2 View commit details
    Browse the repository at this point in the history
  61. Merge bitcoin#22406: build: remove --enable-determinism configure option

    e462878 build: remove --enable-determinism configure option (fanquake)
    
    Pull request description:
    
      This was added by me a while back, with the intention of expanding what this did. That hasn't happened, and this hasn't gained much use. There's also been some discussion of some configure option fatigue, so just remove it for now. Note that `-Wl,--no-insert-timestamp` is also already used in the Guix build.
    
    ACKs for top commit:
      MarcoFalke:
        review ACK e462878
      jarolrod:
        Code Review ACK e462878
    
    Tree-SHA512: ac976f88203eca2a49e296a98693dbe53330e0cb0e273c5ff1fcded30daeb6070cc5beeae35cf9acfdc2279cd64c274d5aeb588aef077aa9bfde39bb23570491
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    b614894 View commit details
    Browse the repository at this point in the history
  62. Merge bitcoin#22502: scripted-diff: Revert "fuzz: Add Temporary debug…

    … assert for oss-fuzz issue"
    
    facd567 scripted-diff: Revert "fuzz: Add Temporary debug assert for oss-fuzz issue" (MarcoFalke)
    
    Pull request description:
    
      No longer needed, as it wouldn't help to debug this issue. See bitcoin#22472 (comment)
    
    ACKs for top commit:
      fanquake:
        ACK facd567
    
    Tree-SHA512: 13352b3529c43d6e65ab127134b32158d3072dc2fbbb326fea9adfeada5a8610d0477ea75748b8b68e7abb3b9869a989df3a3169e92bdd458053d64bae6ed379
    fanquake authored and PastaPastaPasta committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    ed48035 View commit details
    Browse the repository at this point in the history
  63. Merge pull request dashpay#5739 from knst/bp-v22-trivial

    backport: trivial backports bitcoin v21-v22
    PastaPastaPasta authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    c516eb0 View commit details
    Browse the repository at this point in the history
  64. fix: actually use to_calculate stack in CMNHFManager::GetForBlock (

    …dashpay#5747)
    
    ## Issue being fixed or feature implemented
    Fixes a bug we missed in dashpay#5736
    
    ## What was done?
    Use all collected indexes, not just the last one
    
    ## How Has This Been Tested?
    
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    72d4c51 View commit details
    Browse the repository at this point in the history
  65. fix: Redefine keepOldKeys and align quorum and dkgsession key stora…

    …ge depths (dashpay#5748)
    
    ## Issue being fixed or feature implemented
    When DKG data recovery is triggered by `qgetdata` the data we use to
    construct `qdata` reply is actually the one handled by
    `CDKGSessionManager`, not by `CQuorumManager`. Not storing the data long
    enough in `CDKGSessionManager` will result in this data simply not being
    recoverable.
    
    Also, the formula in `CDKGSessionManager::CleanupOldContributions()` is
    broken for quorums which use rotation (the depth is way too large).
    
    ## What was done?
    Fix both issues by redefining `keepOldKeys` and aligning key storage
    depths in both modules.
    
    ## How Has This Been Tested?
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    41b3418 View commit details
    Browse the repository at this point in the history
  66. fix: drop useless mutex cs_llmq_vbc to avoid deadlock (dashpay#5749)

    ## Issue being fixed or feature implemented
    Missing changes in dashpay#5736
    The prior backport of bitcoin#19438 has
    been needed to this particular changes: drop the mutex `cs_llmq_vbc`.
    
    This mutex can potentially cause deadlock such as:
    ```
    'cs_dip3list' in qt/masternodelist.cpp:135 (TRY) (in thread 'main')
     (2) 'cs_llmq_vbc' in llmq/utils.cpp:704 (in thread 'main')
     'm_mutex' in versionbits.cpp:253 (in thread 'main')
     (1) 'cs_main' in node/blockstorage.cpp:77 (in thread 'main')
    Current lock order is:
     'cs_Shutdown' in init.cpp:220 (TRY) (in thread 'shutoff')
     (1) 'cs_main' in init.cpp:328 (in thread 'shutoff')
     (2) 'llmq::cs_llmq_vbc' in llmq/context.cpp:64 (in thread 'shutoff')
    
    Assertion failed: detected inconsistent lock order for 'llmq::cs_llmq_vbc' in llmq/context.cpp:64 (in thread 'shutoff'), details in debug log.
    ```
    
    
    ## What was done?
    Drop `cs_llmq_vbc` mutex from llmq/utils
    
    ## How Has This Been Tested?
    Re-started app several times -> no other deadlock happens.
    
    ## Breaking Changes
    N/A
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [x] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone
    
    ---------
    
    Co-authored-by: UdjinM6 <[email protected]>
    knst and UdjinM6 authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    eb3f601 View commit details
    Browse the repository at this point in the history
  67. fix: pass GITHUB_REPOSITORY into Dockerfile.GitHubActions.Release (2n…

    …d attempt) (dashpay#5735)
    
    ## Issue being fixed or feature implemented
    I was probably using `GITHUB_REPOSITORY` incorrectly, let's try it this
    way
    
    dashpay#5724 follow-up
    
    ## What was done?
    
    ## How Has This Been Tested?
    n/a
    
    ## Breaking Changes
    n/a
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Dec 4, 2023
    Configuration menu
    Copy the full SHA
    91dcf0e View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2023

  1. fix: Start LLMQContext early to let VerifyDB() check ChainLock sign…

    …atures in coinbase (dashpay#5752)
    
    ## Issue being fixed or feature implemented
    Now that we have ChainLock sigs in coinbase `VerifyDB()` have to process
    them. It works most of the time because usually we simply read
    contributions from quorum db
    https://github.com/dashpay/dash/blob/develop/src/llmq/quorums.cpp#L385.
    However, sometimes these contributions aren't available so we try to
    re-build them
    https://github.com/dashpay/dash/blob/develop/src/llmq/quorums.cpp#L388.
    But by the time we call `VerifyDB()` bls worker threads aren't started
    yet, so we keep pushing jobs into worker's queue but it can't do
    anything and it halts everything.
    
    backtrace:
    ```
      * frame #0: 0x00007fdd85a2873d libc.so.6`syscall at syscall.S:38
        frame dashpay#1: 0x0000555c41152921 dashd_testnet`std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) + 225
        frame dashpay#2: 0x0000555c40e22bd2 dashd_testnet`CBLSWorker::BuildQuorumVerificationVector(Span<std::shared_ptr<std::vector<CBLSPublicKey, std::allocator<CBLSPublicKey> > > >, bool) at atomic_futex.h:102:36
        frame dashpay#3: 0x0000555c40d35567 dashd_testnet`llmq::CQuorumManager::BuildQuorumContributions(std::unique_ptr<llmq::CFinalCommitment, std::default_delete<llmq::CFinalCommitment> > const&, std::shared_ptr<llmq::CQuorum> const&) const at quorums.cpp:419:65
        frame dashpay#4: 0x0000555c40d3b9d1 dashd_testnet`llmq::CQuorumManager::BuildQuorumFromCommitment(Consensus::LLMQType, gsl::not_null<CBlockIndex const*>) const at quorums.cpp:388:37
        frame dashpay#5: 0x0000555c40d3c415 dashd_testnet`llmq::CQuorumManager::GetQuorum(Consensus::LLMQType, gsl::not_null<CBlockIndex const*>) const at quorums.cpp:588:37
        frame dashpay#6: 0x0000555c40d406a9 dashd_testnet`llmq::CQuorumManager::ScanQuorums(Consensus::LLMQType, CBlockIndex const*, unsigned long) const at quorums.cpp:545:64
        frame dashpay#7: 0x0000555c40937629 dashd_testnet`llmq::CSigningManager::SelectQuorumForSigning(Consensus::LLMQParams const&, llmq::CQuorumManager const&, uint256 const&, int, int) at signing.cpp:1038:90
        frame dashpay#8: 0x0000555c40937d34 dashd_testnet`llmq::CSigningManager::VerifyRecoveredSig(Consensus::LLMQType, llmq::CQuorumManager const&, int, uint256 const&, uint256 const&, CBLSSignature const&, int) at signing.cpp:1061:113
        frame dashpay#9: 0x0000555c408e2d43 dashd_testnet`llmq::CChainLocksHandler::VerifyChainLock(llmq::CChainLockSig const&) const at chainlocks.cpp:559:53
        frame dashpay#10: 0x0000555c40c8b09e dashd_testnet`CheckCbTxBestChainlock(CBlock const&, CBlockIndex const*, llmq::CChainLocksHandler const&, BlockValidationState&) at cbtx.cpp:368:47
        frame dashpay#11: 0x0000555c40cf75db dashd_testnet`ProcessSpecialTxsInBlock(CBlock const&, CBlockIndex const*, CMNHFManager&, llmq::CQuorumBlockProcessor&, llmq::CChainLocksHandler const&, Consensus::Params const&, CCoinsViewCache const&, bool, bool, BlockValidationState&, std::optional<MNListUpdates>&) at specialtxman.cpp:202:60
        frame dashpay#12: 0x0000555c40c00a47 dashd_testnet`CChainState::ConnectBlock(CBlock const&, BlockValidationState&, CBlockIndex*, CCoinsViewCache&, bool) at validation.cpp:2179:34
        frame dashpay#13: 0x0000555c40c0e593 dashd_testnet`CVerifyDB::VerifyDB(CChainState&, CChainParams const&, CCoinsView&, CEvoDB&, int, int) at validation.cpp:4789:41
        frame dashpay#14: 0x0000555c40851627 dashd_testnet`AppInitMain(std::variant<std::nullopt_t, std::reference_wrapper<NodeContext>, std::reference_wrapper<WalletContext>, std::reference_wrapper<CTxMemPool>, std::reference_wrapper<ChainstateManager>, std::reference_wrapper<CBlockPolicyEstimator>, std::reference_wrapper<LLMQContext> > const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) at init.cpp:2098:50
        frame dashpay#15: 0x0000555c4082fe11 dashd_testnet`AppInit(int, char**) at bitcoind.cpp:145:54
        frame dashpay#16: 0x0000555c40823c64 dashd_testnet`main at bitcoind.cpp:173:20
        frame dashpay#17: 0x00007fdd85934083 libc.so.6`__libc_start_main(main=(dashd_testnet`main at bitcoind.cpp:160:1), argc=3, argv=0x00007ffcb8ca5b88, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007ffcb8ca5b78) at libc-start.c:308:16
        frame dashpay#18: 0x0000555c4082f27e dashd_testnet`_start + 46
    ```
    
    Fixes dashpay#5741
    
    ## What was done?
    Start LLMQContext early. Alternative solution could be moving bls worker
    Start/Stop into llmq context ctor/dtor.
    
    ## How Has This Been Tested?
    I had a node with that issue. This patch fixed it.
    
    ## Breaking Changes
    Not sure, hopefully none.
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [x] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Dec 5, 2023
    Configuration menu
    Copy the full SHA
    e1630d8 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18814: rpc: Relock wallet only if most recent callback

    9f59dde rpc: Relock wallet only if most recent callback (João Barbosa)
    a2e6db5 rpc: Add mutex to guard deadlineTimers (João Barbosa)
    
    Pull request description:
    
      This PR fixes an early relocking race condition from bitcoin#18811 where old relock callback runs after new wallet unlock code and nRelockTime update but before rpcRunLater call, causing early relock and incorrect nRelockTime time
    
      Issue introduced in bitcoin#18487.
      Fixes bitcoin#18811.
    
    ACKs for top commit:
      MarcoFalke:
        ACK 9f59dde
      ryanofsky:
        Code review ACK 9f59dde. No changes since last review except squashing commits.
      jonatack:
        ACK 9f59dde
    
    Tree-SHA512: 2f7fc03e5ab6037337f2d82dfad432495cc337c77d07c968ee2355105db6292f24543c03456f5402e0e759577a4327758f9372f7ea29de6d56dc3695fda9b379
    fanquake authored and PastaPastaPasta committed Dec 5, 2023
    Configuration menu
    Copy the full SHA
    da7ca00 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#18781: Add templated GetRandDuration<>

    0000ea3 test: Add test for GetRandMillis and GetRandMicros (MarcoFalke)
    fa0e5b8 Add templated GetRandomDuration<> (MarcoFalke)
    
    Pull request description:
    
      A naive implementation of this template is dangerous, because the call site might accidentally omit the template parameter:
    
      ```cpp
      template <typename D>
      D GetRandDur(const D& duration_max)
      {
          return D{GetRand(duration_max.count())};
      }
    
      BOOST_AUTO_TEST_CASE(util_time_GetRandTime)
      {
          std::chrono::seconds rand_hour = GetRandDur(std::chrono::hours{1});
          // Want seconds to be in range [0..1hour), but always get zero :((((
          BOOST_CHECK_EQUAL(rand_hour.count(), 0);
      }
      ```
    
      Luckily `std::common_type` is already specialised in the standard lib for `std::chrono::duration` (https://en.cppreference.com/w/cpp/chrono/duration/common_type). And its effect seem to be that the call site must always specify the template argument explicitly.
    
      So instead of implementing the function for each duration type by hand, replace it with a templated version that is safe to use.
    
    ACKs for top commit:
      laanwj:
        Code review ACK 0000ea3
      promag:
        Code review ACK 0000ea3.
      jonatack:
        ACK 0000ea3 thanks for the improved documentation. Code review, built, ran `src/test/test_bitcoin -t random_tests -l test_suite` for the new unit tests, `git diff fa05a4c 0000ea3` since previous review:
      hebasto:
        ACK 0000ea3 with non-blocking [nit](bitcoin#18781 (comment)).
    
    Tree-SHA512: e89d46e31452be6ea14269ecbbb2cdd9ae83b4412cd14dff7d1084283092722a2f847cb501e8054394e4a3eff852f9c87f6d694fd008b3f7e8458cb5a3068af7
    MarcoFalke authored and PastaPastaPasta committed Dec 5, 2023
    Configuration menu
    Copy the full SHA
    5ebb66d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    596f26a View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2023

  1. Configuration menu
    Copy the full SHA
    516c487 View commit details
    Browse the repository at this point in the history
  2. Merge pull request dashpay#5755 from UdjinM6/merge_master_20.0.2

    chore: Merge master 20.0.2 back into develop
    PastaPastaPasta authored Dec 6, 2023
    Configuration menu
    Copy the full SHA
    ac9f98e View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#15054: Update copyright headers to 2018

    1a49a0e Bump manpages (DrahtBot)
    06ba779 Update copyright headers to 2018 (DrahtBot)
    
    Pull request description:
    
      * `./contrib/devtools/copyright_header.py update ./`
      * `./contrib/devtools/gen-manpages.sh`
    
    Tree-SHA512: ca0dc5e97f4c33814d4ccd17769bbf2d23a99a71d62534fe1064fedfe47de3b5c30caf9b6deb0d70bf125e08c7ae6335ac4fcded918049d6b63b13b319d798e3
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    2dc520b View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#15102: test: Run invalid_txs.InputMissing test in featu…

    …re_block
    
    fac4e73 test: Run invalid_txs.InputMissing test in feature_block (MarcoFalke)
    
    Pull request description:
    
    Tree-SHA512: 24c3f519ba0cf417b66e0df6f5ddc0430e3f419af4705a9c85096da47ff4d8f51487d65b68f3f993800003b3f936d95d8a0bade846e1b45f95b2bdbecc9ebab7
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    549a358 View commit details
    Browse the repository at this point in the history
  5. partial Merge bitcoin#15893: Add test for superfluous witness record …

    …in deserialization
    
    cc556e4 Add test for superfluous witness record in deserialization (Gregory Sanders)
    25b0786 Fix missing input template by making minimal tx (Gregory Sanders)
    
    Pull request description:
    
      Adds coverage for changed behavior in bitcoin#14039
    
    ACKs for commit cc556e:
      MarcoFalke:
        utACK cc556e4
    
    Tree-SHA512: 3404c8f75e87503983fac5ae27d877309eb3b902f2ec993762911c71610ca449bef0ed98bd17e029414828025b2713e1bd012e63b2a06497e34f1056acaa6321
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    9d4282c View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#16286: refactoring: wallet: Fix GCC 7.4.0 warning

    d8bd97d Fix GCC 7.4.0 warning (Hennadii Stepanov)
    
    Pull request description:
    
      Having bitcoin#13756 and bitcoin#16239 merged cause GCC warning:
      ```
      $ gcc --version
      gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
      ...
      $ make -j 4 > /dev/null
      wallet/wallet.cpp: In member function ‘CWallet::Balance CWallet::GetBalance(int, bool) const’:
      wallet/wallet.cpp:2269:45: warning: enumeral and non-enumeral type in conditional expression [-Wextra]
           isminefilter reuse_filter = avoid_reuse ? 0 : ISMINE_USED;
                                       ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
      ```
    
      Fixed with this PR.
    
    ACKs for top commit:
      practicalswift:
        utACK d8bd97d
      promag:
        ACK d8bd97d.
      kallewoof:
        utACK d8bd97d
      meshcollider:
        Trivial utACK bitcoin@d8bd97d
    
    Tree-SHA512: 2fb315ac82f290c8b9f4e48d1b4526b9babe0717c68593c7bc55cd6c289e64b6322aba72984f39291a9254b57d3f6ba8dbfe03799f510c0c1dc108b21b286732
    fanquake authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    ab36852 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#16973: test: Fix combine_logs.py for AppVeyor build

    d478a47 test: Fix combine_logs.py for AppVeyor build (Martin Zumsande)
    
    Pull request description:
    
      Fixes bitcoin#16894
    
      This fixes the problem of AppVeyor builds not showing `debug.log` if a functional test fails, because the windows separator `\` doesn't work together with the regex in `combine_logs.py`.
    
      A fix was already attempted in  bitcoin#16896, however, that PR became inactive and was marked "up for grabs", plus it's a really small change.
    
      As suggested by jamesob, this PR uses `pathlib`: For the glob and to convert the path to a posix-style string, it leaves the regex as is (in contrast to bitcoin#16896 which adjusted the regex).
    
      I tested this locally on Windows and Ubuntu.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 603b4359b6009b6da874c30f69759acda03730ee5747898a0fe957a5fc37ee9ba07858c6aa2169bf4c40521f37e47138e8314d698652ea2760fa0a3f76b890bd
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    921c93d View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#17111: doc: update bips.md with buried BIP9 deployments

    fa6ed82 doc: update bips.md with buried BIP9 deployments (MarcoFalke)
    
    Pull request description:
    
      Also, remove the activation heights, as they can be retrieved from `./src/chainparams.cpp` (if needed)
    
    ACKs for top commit:
      laanwj:
        ACK fa6ed82, needs backport to 0.19 I guess.
    
    Tree-SHA512: 9c069cc14589a3e2309d76f042677c024a9e14d16dbfccef54c4a2963ca7853d01f042b0237e346538c557591b7553deed9dd811ba64bbd0ced88883d562c59a
    laanwj authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    c2c865e View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#17146: github: Add warning for bug reports

    5f40d27 github: Add warning for bug reports (Wladimir J. van der Laan)
    
    Pull request description:
    
      I've noticed the "Bug" label being added redundantly fairly frequently. I think this might be due to github's templates.
    
      All in all, the link in https://github.com/bitcoin/bitcoin/issues/new/choose to open a regular issue is a bit hidden from sight. Direct people's attention to it.
    
    ACKs for top commit:
      practicalswift:
        ACK 5f40d27 - currently it is very easy to miss the tiny "Open a regular issue" link :)
      jonasschnelli:
        ACK 5f40d27
      hebasto:
        ACK 5f40d27
    
    Tree-SHA512: e6c94c02f9f7d00621b580d406d03f8754173150bf456409ccc474b76fb93ff857ff4a0c652bf5c03d4f1b97ecf29ae0ff7bf8b763207f9c8522b8dcecc20109
    fanquake authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    9b79d92 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#17829: scripted-diff: Bump copyright of files changed i…

    …n 2019
    
    aaaaad6 scripted-diff: Bump copyright of files changed in 2019 (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      practicalswift:
        ACK aaaaad6
      promag:
        ACK aaaaad6 🎉
      fanquake:
        ACK aaaaad6 - going to merge this now because the year is over and conflicts are minimal.
    
    Tree-SHA512: 58cb1f53bc4c1395b2766f36fabc7e2332e213780a802762fff0afd59468dad0c3265f553714d761c7a2c44ff90f7dc250f04458f4b2eb8eef8b94f8c9891321
    fanquake authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    2da9982 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#19072: doc: Expand section on Getting Started

    facef3d doc: Explain that anyone can work on good first issues, move text to CONTRIBUTING.md (MarcoFalke)
    fae2fb2 doc: Expand section on Getting Started (MarcoFalke)
    100000d doc: Add headings to CONTRIBUTING.md (MarcoFalke)
    fab893e doc: Fix unrelated typos reported by codespell (MarcoFalke)
    
    Pull request description:
    
      Some random doc changes:
    
      * Add sections to docs, so that they can be linked to
      * Explain that anyone (even maintainers) are allowed to work on good first issues
      * Expand section on Getting Started slightly
    
    ACKs for top commit:
      hebasto:
        ACK facef3d
      fanquake:
        ACK facef3d
    
    Tree-SHA512: 8998e273a76dbf4ca77e79374c14efe4dfcc5c6df6b7d801e1e1e436711dbe6f76b436f9cbc6cacb45a56827babdd6396f3bd376a9426ee7be3bb9b8a3b8e383
    fanquake authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    0eba155 View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#11394: Perform a weaker subtree check in Travis

    487aff4 Check subtree consistency in Travis (Pieter Wuille)
    e1d0cc2 Improve git-subtree-check.sh (Pieter Wuille)
    
    Pull request description:
    
      Apparently many of our subtrees get modified by PRs in this repository, without getting noticed.
    
      To improve upon this:
      * Make git-subtree-check.sh capable of doing a weaker consistency check (that doesn't need access to external repositories), but which should be sufficient to detect unintended changes. It can be fooled by a fake subtree merge commit, but that would hopefully be obvious to reviewers.
      * Make Travis invoke this subtree check for each of our subtrees.
    
      Note that Travis is currently expected to fail on this PR, as 2 out of 4 subtrees (`src/secp156k1` and `src/univalue` have been modified directly in master).
    
    Tree-SHA512: 465b680392d3daf38a8c1dda77d6f74b1d1c23324c378774777fb95aa673e119a8f7e3ccc124e41d97b5ac8975f3d79f3015797d2d309666582394364917ec4e
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    17b67ba View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#19258: doc: improve subtree check instructions

    a4a3fc4 doc: improve subtree check instructions (Sjors Provoost)
    
    Pull request description:
    
      Running `git-subtree-check.sh` requires adding the subtree repository as a remote. I learned that several years ago and then forgot again.
    
      This PR also improves the error message if the subtree commit can't be found.
    
    ACKs for top commit:
      laanwj:
        ACK a4a3fc4
      fanquake:
        ACK a4a3fc4 - this looks ok.
    
    Tree-SHA512: 959bd923726c172d17f9f97f8a56988bf2df5a94d3131e5152a66150b941394cee9e82fdc6b86e09c0ba91d123a496599f07ca454212168d8d301738394c12c8
    laanwj authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    f706a56 View commit details
    Browse the repository at this point in the history
  14. Merge bitcoin#20567: test: Add option to git-subtree-check to do full…

    … check, add help
    
    34c80d9 test: Add option to git-subtree-check to do full check, add help (Wladimir J. van der Laan)
    
    Pull request description:
    
      This adds a brief help text to `git-subtree-check.sh` and adds an option to do a full remote check instead of having two different code paths with a successful exit status. Also make it explicit that the CI is not doing this.
    
    ACKs for top commit:
      fjahr:
        tested ACK 34c80d9
    
    Tree-SHA512: 20f672fd3b3c1d633eccf9998fdd738194cdd7d10cc206691f2dcc28bbbf8187b8d06b87814f875a06145b179f5ca1f4f4f9922972be72759cf5ac6e0c11abd1
    laanwj authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    9fd9e4c View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    8a18471 View commit details
    Browse the repository at this point in the history
  16. fix: correct parsing pubkey in merge bitcoin#18204: improve descripto…

    …r cache and cache xpubs
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    7631118 View commit details
    Browse the repository at this point in the history
  17. partial (missing function GetKeyForDestination) Merge bitcoin#11403: …

    …SegWit wallet support
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    fa23a64 View commit details
    Browse the repository at this point in the history
  18. follow-up Merge bitcoin#17260: Split some CWallet functions into new …

    …LegacyScriptPubKeyMan
    
    Some changes are missing or incorrectly backported during CWallet refactoring in bitcoin#17260, bitcoin#17261 such as:
     - Missing changes for CWallet::GetOldestKeyPoolTime
     - useless check of spk_man existance in getnewaddress
     - GetHDChain is used assuming it exists only legacy keymanager
     - using internal spk_man API instead wallet's in getwalletinfo
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    6183bd1 View commit details
    Browse the repository at this point in the history
  19. Merge bitcoin#18671: wallet: Add BlockUntilSyncedToCurrentChain to du…

    …mpwallet
    
    fa60afc wallet: Add BlockUntilSyncedToCurrentChain to dumpwallet (MarcoFalke)
    
    Pull request description:
    
      dumpwallet includes the block hash in the output, so this method depends on the chainstate. According to the developer notes https://github.com/bitcoin/bitcoin/blame/e84a5f000493fe39adb2a5f22b43c3848dcd0a4f/doc/developer-notes.md#L1095 it must include a `BlockUntilSyncedToCurrentChain`.
    
      This is a minor fix and does not need backport, I think.
    
      It fixes test failures such as https://travis-ci.org/github/bitcoin/bitcoin/jobs/675487097#L2657 , which can only happen in master because the test was not backported.
    
    ACKs for top commit:
      promag:
        Code review ACK fa60afc.
      ryanofsky:
        Code review ACK fa60afc
      meshcollider:
        utACK fa60afc
    
    Tree-SHA512: 8df70b06b226b2cdf880dec9264adb72d66fd81b09b404fd1665a79e5f5236d26122eebf15df00fe71ee292b5c91b2dc23a0a42b2aa50a8d690604b23832723f
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    0065d7f View commit details
    Browse the repository at this point in the history
  20. Merge bitcoin#17219: wallet: allow transaction without change if keyp…

    …ool is empty
    
    92bcd70 [wallet] allow transaction without change if keypool is empty (Sjors Provoost)
    709f868 [wallet] CreateTransaction: simplify change address check (Sjors Provoost)
    5efc25f [wallet] translate "Keypool ran out" message (Sjors Provoost)
    
    Pull request description:
    
      Extracted from bitcoin#16944
    
      First this PR simplifies the check when generating a change address, by dropping `CanGetAddresses` and just letting `reservedest.GetReservedDestination` do this check.
    
      Second, when the keypool is empty, instead of immediately giving up, we create a dummy change address and pass that to coin selection. If we didn't need the change address (e.g. when spending the entire balance), then it's all good. If we did need a change address, we throw the original error.
    
    ACKs for top commit:
      fjahr:
        Code review ACK 92bcd70
      jonasschnelli:
        utACK 92bcd70
      achow101:
        ACK 92bcd70
      meshcollider:
        Code review ACK 92bcd70
    
    Tree-SHA512: 07b8c8251f57061c58a85ebf0359be63583c23bac7a2c4cefdc14820c0cdebcc90a2bb218e5ede0db11d1e204cda149e056dfd18614642070b3d56efe2735006
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    f6f9b98 View commit details
    Browse the repository at this point in the history
  21. Merge bitcoin#18853: wallet: Fix typo in assert that is compile-time …

    …true
    
    fa47cf9 wallet: Fix typo in assert that is compile-time true (MarcoFalke)
    
    Pull request description:
    
      Commit 92bcd70 presumably added a check that a `dest` of type `CNoDestination` implies an empty `scriptChange`.
    
      However, it accidentally checked for `boost::variant::empty`, which always returns false: https://www.boost.org/doc/libs/1_72_0/doc/html/boost/variant.html#id-1_3_46_5_4_1_1_16_2-bb
    
    ACKs for top commit:
      Sjors:
        utACK fa47cf9
    
    Tree-SHA512: 9626b1e2947039853703932a362c2ee204e002d3344856eb93eef0e0f833401336f2dfa80fd43b83c8ec6eac624e6302aee771fb67aec436ba6483be02b8d615
    laanwj authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    849b5ed View commit details
    Browse the repository at this point in the history
  22. Merge bitcoin#9381: Remove CWalletTx merging logic from AddToWallet

    28b112e Get rid of BindWallet (Russell Yanofsky)
    d002f9d Disable CWalletTx copy constructor (Russell Yanofsky)
    65b9d8f Avoid copying CWalletTx in LoadToWallet (Russell Yanofsky)
    bd2fbc7 Get rid of unneeded CWalletTx::Init parameter (Russell Yanofsky)
    2b9cba2 Remove CWalletTx merging logic from AddToWallet (Russell Yanofsky)
    
    Pull request description:
    
      This is a pure refactoring, no behavior is changing.
    
      Instead of AddToWallet taking a temporary CWalletTx object and then potentially merging it with a pre-existing CWalletTx, have it take a callback so callers can update the pre-existing CWalletTx directly.
    
      This makes AddToWallet simpler because now it is only has to be concerned with saving CWalletTx objects and not merging them.
    
      This makes AddToWallet calls clearer because they can now make direct updates to CWalletTx entries without having to make temporary objects and then worry about how they will be merged.
    
      Motivation for this change came from the bumpfee PR bitcoin#8456 where we wanted to be able to call AddToWallet to make a simple update to an existing transaction, but were reluctant to, because the existing CWalletTx merging logic did not apply and seemed dangerous try to update as part of that PR. After this refactoring, the bumpfee PR could call AddToWallet safely instead of implementing a duplicate AddToWallet function.
    
      This also allows getting rid of the CWalletTx copy constructor to prevent unintentional copying.
    
    ACKs for top commit:
      MarcoFalke:
        Anyway, re-ACK 28b112e
    
    Tree-SHA512: 528dd088714472a237500b200f4433db850bdb7fc29c5e5d81cae48072061dfb967f7c37edd90b33f24901239f9be982988547c1f8c80abc25fb243fbf7330ef
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    d11a933 View commit details
    Browse the repository at this point in the history
  23. follow-up Merge bitcoin#14559: appveyor: Enable multiwallet tests - a…

    …dds missing changes for wallet_multiwallet.py test
    
    4dca7d0 appveyor: Enable multiwallet test (Chun Kuan Lee)
    
    Pull request description:
    
      Based on bitcoin#14320
    
      This PR enable multiwallet test on appveyor. Also re-enable symlink tests on Windows which is available after Windows Vista.
    
      I disable these tests in bitcoin#13964 because I suppose that Windows does not support symlink, but I was wrong.
    
    Tree-SHA512: 852cd4dedf36ec9c34aff8926cb34e6a560aea0bb9170c7a2264fc292dbb605622d561568d8df39aeb90d3d2bb700901d218ea7e7c5e21d84827c40d6370b369
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    f7f29d7 View commit details
    Browse the repository at this point in the history
  24. Merge bitcoin#20230: wallet: Fix bug when just created encrypted wall…

    …et cannot get address
    
    bf6855a wallet: Fix bug when just created encrypted wallet cannot get address (Hennadii Stepanov)
    
    Pull request description:
    
      Fix bitcoin-core/gui#105
    
    ACKs for top commit:
      achow101:
        Tested ACK bf6855a
      kristapsk:
        ACK bf6855a
      meshcollider:
        Tested ACK bf6855a
    
    Tree-SHA512: eca0ab306d7206f2e5db568e83217bd854caac104379f4d8fb261db832d4d6310cbb1eab44ce9b05a5ac2eb5879a623b729752a88810f8370c24518a8d81292d
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    94643ca View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    e88bf52 View commit details
    Browse the repository at this point in the history
  26. follow-up Merge bitcoin#17381: LegacyScriptPubKeyMan code cleanups - …

    …now it's possible to remove workaround
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    da212ad View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    ca4490a View commit details
    Browse the repository at this point in the history
  28. fix: improve qgetdata/qdata tests (dashpay#5744)

    ## Issue being fixed or feature implemented
    The test is a bit broken and incomplete, some testing scenarios aren't
    realistic
    
    ## What was done?
    pls see individual commits
    
    ## How Has This Been Tested?
    run it
    
    ## Breaking Changes
    n/a, tests only
    
    ## Checklist:
    - [x] I have performed a self-review of my own code
    - [x] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    UdjinM6 authored Dec 6, 2023
    Configuration menu
    Copy the full SHA
    8a888fb View commit details
    Browse the repository at this point in the history
  29. fix: use proper GitHub.repository and add an echo for testing (dashpa…

    …y#5757)
    
    ## Issue being fixed or feature implemented
    
    
    ## What was done?
    Add an echo
    
    ## How Has This Been Tested?
    
    ## Breaking Changes
    None
    
    ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that
    apply._
    - [ ] I have performed a self-review of my own code
    - [ ] I have commented my code, particularly in hard-to-understand areas
    - [ ] I have added or updated relevant unit/integration/functional/e2e
    tests
    - [ ] I have made corresponding changes to the documentation
    - [x] I have assigned this pull request to a milestone _(for repository
    code-owners and collaborators only)_
    PastaPastaPasta authored Dec 6, 2023
    Configuration menu
    Copy the full SHA
    2099a5c View commit details
    Browse the repository at this point in the history
  30. Merge bitcoin#15367: feature: Added ability for users to add a startu…

    …p command
    
    090530c feature: Added ability for users to add a startup command (Ben Carman)
    
    Pull request description:
    
      Thoughts for adding the feature is for users to be able to add things like electrum-personal-server or lnd to run whenever Bitcoin Core is running.  Open to feedback about the feature.
    
    ACKs for top commit:
      MarcoFalke:
        re-ACK 090530c
      dongcarl:
        tACK 090530c
    
    Tree-SHA512: ba514d2fc8b4fb12b781c1a9c89845a25fce0b80ba7c907761cde4abb81edd03fa643682edc895986dc20b273ac3b95769508806db7fbd99ec28623f85c41e67
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    08349ee View commit details
    Browse the repository at this point in the history
  31. Merge bitcoin#18309: zmq: Add support to listen on multiple interfaces

    e66870c zmq: Append address to notify log output (nthumann)
    241803d test: Add zmq test to support multiple interfaces (nthumann)
    a0b2e5c doc: Add release notes to support multiple interfaces (nthumann)
    b1c3f18 doc: Adjust ZMQ usage to support multiple interfaces (nthumann)
    347c94f zmq: Add support to listen on multiple interfaces (Nicolas Thumann)
    
    Pull request description:
    
      This PR adds support for ZeroMQ to listen on multiple interfaces, just like the RPC server.
      Currently, if you specify more than one e.g. `zmqpubhashblock` paramter, only the first one will be used. Therefore a user may be forced to listen on all interfaces (e.g. `zmqpubhashblock=0.0.0.0:28332`), which can result in an increased attack surface.
      With this PR a user can specify multiple interfaces to listen on, e.g.
      `-zmqpubhashblock=tcp://127.0.0.1:28332 -zmqpubhashblock=tcp://192.168.1.123:28332`.
    
    ACKs for top commit:
      laanwj:
        Code review ACK e66870c
      instagibbs:
        reACK bitcoin@e66870c
    
    Tree-SHA512: f38ab4a6ff00dc821e5f4842508cefadb701e70bb3893992c1b32049be20247c8aa9476a1f886050c5f17fe7f2ce99ee30193ce2c81a7482a5a51f8fc22300c7
    laanwj authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    e29a35a View commit details
    Browse the repository at this point in the history
  32. Merge bitcoin#18965: tests: implement base58_decode

    60ed339 tests: implement base58_decode (10xcryptodev)
    
    Pull request description:
    
      implements TODO: def base58_decode
    
    ACKs for top commit:
      ryanofsky:
        Code review ACK 60ed339. Just suggested changes since last review. Thank you for taking suggestions!
    
    Tree-SHA512: b3c06b4df041a6d88033cd077a093813a688e42d0b9aa777c715e5fd69cfba7b1bf984428bd98417d3c15232d3d48bc9c163317564f9e1d562db6611c21e2c10
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    a800821 View commit details
    Browse the repository at this point in the history
  33. Merge bitcoin#16525: Dump transaction version as an unsigned integer …

    …in RPC/TxToUniv
    
    e80259f Additionally treat Tx.nVersion as unsigned in joinpsbts (Matt Corallo)
    970de70 Dump transaction version as an unsigned integer in RPC/TxToUniv (Matt Corallo)
    
    Pull request description:
    
      Consensus-wise we already treat it as an unsigned integer (the
      only rules around it are in CSV/locktime handling), but changing
      the underlying data type means touching consensus code for a
      simple cleanup change, which isn't really worth it.
    
      See-also, rust-bitcoin/rust-bitcoin#299
    
    ACKs for top commit:
      sipa:
        ACK e80259f
      practicalswift:
        ACK e80259f
      ajtowns:
        ACK e80259f code review -- checked all other uses of tx.nVersion treat it as unsigned (except for policy.cpp:IsStandard anyway), so looks good.
      naumenkogs:
        ACK e80259f
    
    Tree-SHA512: 6760a2c77e24e9e1f79a336ca925f9bbca3a827ce02003c71d7f214b82ed3dea13fa7d9f87df9b9445cd58dff8b44a15571d821c876f22f8e5a372a014c9976b
    laanwj authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    3f77d23 View commit details
    Browse the repository at this point in the history
  34. Merge pull request dashpay#5728 from vijaydasmp/bp21_20

    backport: Merge bitcoin#15367, 17458, 18309, 18965, 16525
    PastaPastaPasta authored Dec 6, 2023
    Configuration menu
    Copy the full SHA
    5211a00 View commit details
    Browse the repository at this point in the history
  35. Merge bitcoin#21437: gitian, ci: Drop unneeded python3-dev package fo…

    …r macOS builds
    
    e4c0cad ci, gitian: Drop unneeded python3-dev package for macOS builds (Hennadii Stepanov)
    
    Pull request description:
    
    ACKs for top commit:
      fanquake:
        ACK e4c0cad - gitian builds match and I checked that this doesn't end up installed as a side-effect of another package.
    
    Tree-SHA512: 520a3909b106a0e005b195c5395691edf62b76ee2df43b6971b7aa193648d68e6dac69cb4f1dc474f594b015a2fc2074061865e571d89365174beb5c1780356f
    fanquake authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    bfe050d View commit details
    Browse the repository at this point in the history
  36. Merge bitcoin#22418: release: Remove gitian

    ab9c342 release: remove gitian (fanquake)
    
    Pull request description:
    
      Note that this doesn't yet touch any glibc back compat related code.
    
    ACKs for top commit:
      laanwj:
        Code review ACK ab9c342
    
    Tree-SHA512: 8e2fe3ec1097f54bb11ab9136b43818d90eab5dbb0a663ad6a552966ada4bdb49cc12ff4e66f0ec0ec5400bda5c81f3a3ce70a9ebb6fe1e0db612da9f00a51a7
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    1c0cb3e View commit details
    Browse the repository at this point in the history
  37. Merge bitcoin#24738: build: remove faketime unsetting and comments fr…

    …om configure
    
    3d70c05 build: remove faketime unsetting and comments from configure.ac (fanquake)
    
    Pull request description:
    
      We no-longer use [`faketime`](https://github.com/wolfcw/libfaketime) (it used to be required in gitian), so as far as I'm aware, there is no need for us to unset `FAKETIME` or mention it in our build docs.
    
    ACKs for top commit:
      laanwj:
        Code review ACK 3d70c05
      prusnak:
        Approach ACK 3d70c05
      hebasto:
        ACK 3d70c05, I have reviewed the code and it looks OK, I agree it can be merged.
    
    Tree-SHA512: 9cf89d63b81119f3d2f02975a66ec0b93e861993fdb0e4f70538e3be6e0047dc09ce87ef2de40cbf877647a21706b39ddf07240c77765278d383d7a7878cc7eb
    fanquake authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    cc7cb9f View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    be332a0 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    0b4f419 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    75b6c44 View commit details
    Browse the repository at this point in the history
  41. Merge pull request dashpay#5756 from knst/gitian-removal

    chore: remove deprecated gitian
    PastaPastaPasta authored Dec 6, 2023
    Configuration menu
    Copy the full SHA
    e0fb132 View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2023

  1. Merge bitcoin#24276: build, refactor: Improve package version usage

    edc9a6a build, refactor: Reuse expat package version in its download path (Hennadii Stepanov)
    4bb7821 build, refactor: Use conventional version notation for boost package (Hennadii Stepanov)
    
    Pull request description:
    
      `boost` package:
      - `.` is used as a separator in versions of other depends packages.
    
      `expat` package:
      - reuse package version in its download path
    
      ---
    
      The straightforward way to verify this PR:
      ```
      $ cd depends
      $ make clean-all
      $ make boost_fetched
      $ make expat_fetched
      ```
    
    ACKs for top commit:
      prusnak:
        ACK edc9a6a
      shaavan:
        ACK edc9a6a
    
    Tree-SHA512: c15d672fe34ac59850425d3d6a6eee5f720e16d227aad1332a563b218465879b7ee6fb865dd1bac06aedf356f9bb1c67112d9d88da8f877f04838b50a9dc97be
    fanquake authored and PastaPastaPasta committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    cb63ec1 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#24383: build: upgrade depends Boost to 1.77.0

    4bba7ab build: upgrade depends Boost to 1.77.0 (Pasta)
    
    Pull request description:
    
      This primarily improves support for external signing, as it includes
      multiple bugfixes for Boost Process. As well as various improvements to
      the multi-index library.
    
      bitcoin#23340 rebased.
    
      Guix build:
      ```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
      b5186404303e2a6573a6df404f943f6d172d4965bd9a78d7f9d1f7cf7080b774  guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/SHA256SUMS.part
      9d03756665fac8cb1e3af6623b8cede3032bad6cbc15739db5145c4813f0c2f9  guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu-debug.tar.gz
      32897b5fda018d4fe57f65234da9620202de0b774ae4fa454309460ee451ef98  guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu.tar.gz
      f64304b16fbfaf7a7330842bf8f535acacdcdd36ddf185f5dfcdbe184f05571f  guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/SHA256SUMS.part
      f5cb4c742edf42aec2f64f97c727a8e325050d465ea58ff9c22f8b5b31073879  guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf-debug.tar.gz
      0f834947a3eb2d802ba4d1d6dbd26fea9d3453bd8c2dedb06fcfbf1498b45433  guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf.tar.gz
      389feef0bf716dd7ea7d72d755f999dbd2d3160f895a606ad6f4a14e97083a47  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/SHA256SUMS.part
      a9c791b6bcc2bbeff0c94f71dbd9967676559297e089079216253e303acd82cb  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-arm64-apple-darwin.tar.gz
      55cdef30941f3fc4716bae5be1230b529b171c5e2cd0c18cc57a15206d742a13  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg
      5343499bd15ae59627d3b33259ac7ccec8c841c8bc27cd1a47b41389fae48ac3  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz
      fbb99e7f3d5249b92c90ba312ac769adfc9813fb70468decd09f722826f48119  guix-build-4bba7ab2ffc3/output/dist-archive/bitcoin-4bba7ab2ffc3.tar.gz
      c5f466eb462dccea8daa10307ff140844f38097b198282600528acd486915e97  guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/SHA256SUMS.part
      174c75cbf16f3ca593d1c684b597eb8dac483dc10ae3cd46cbff61d3f70e70a5  guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu-debug.tar.gz
      1e6692f4876ba13847cd3722c6e2cd3ee886ebede6b12dffa01b1dbc55186358  guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu.tar.gz
      dac7f60b99dfb96daf8c3c9a0b98d4ecc3a7ecf7ad6a8dfb879cb61aa4f2e429  guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/SHA256SUMS.part
      4cef32efcd9fa591a53ea5354d63e9d6c0d663ae7748599b34427f17ef462f1c  guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu-debug.tar.gz
      d5ac47db91eb0232075a1138cc0ae212516e4f7fa022b2de181533d411a0d507  guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu.tar.gz
      7eb67ea46c7ade1f51928648e664bc2295a96ae0e3f144cf6903f277334b228f  guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/SHA256SUMS.part
      b97d248731573ef3911f4d2750409615a940f975d9c4de783c76beb897a4dd53  guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu-debug.tar.gz
      7d2b0cef4cc83dbf54cd1af18fe4cb7b7ea408747e30993c20e1012b1b628373  guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu.tar.gz
      a45eb59edc5a1e8742dd9fce1a9916b43ab2894ff8f3c62d5110a9afa35cf9e9  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/SHA256SUMS.part
      504efd5c1131407a3e3120e77a1abe1e183727d995e7cb944c9c8089518314a0  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg
      0f14f26d2074de96d078ea31ef249a6f9ba2db1fec86856496fca5ab2f517cb7  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz
      574aab5513038a80c6cac16eb927d7dcec27b880ffd313c6b56272ed577e2df3  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx64.tar.gz
      ec7861c9840c2888022a81d5fbb807284c07f603053ba9cc200c103e26379e7f  guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/SHA256SUMS.part
      9d1d2fb313d15048ae6b10b9c50942a00ef8c65c367b25656810b3819fdc95ff  guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu-debug.tar.gz
      d668065e2de147d352914f0d2f5769051f0ec0a29ce208979758724fe556cc04  guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu.tar.gz
      aa1f2ce87f707d28c137775830da128bd2b49b20eb258ff46a78f1ada1516480  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/SHA256SUMS.part
      bcf3f19575662dadf3f77ca0bd5d4a3268314fd97c46f88679af1977d83863c5  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win-unsigned.tar.gz
      c8d64700e03757a5f46ec04dc7e2cdf9435ebdee9e6cea5789475ca86461f912  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-debug.zip
      92bd0cb7a43551e89910e8fabfb2915da03835ac074331436e1f159760ed8d19  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-setup-unsigned.exe
      e414c9a500ebf49ef1f2625c6763b945a13d5f1d1c56463f642f325e054f87ed  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64.zip
      ```
    
    ACKs for top commit:
      laanwj:
        ACK 4bba7ab
      hebasto:
        ACK 4bba7ab
    
    Tree-SHA512: f0eb26860180c45ef169ea7fe70d43e68abf103185d5b9a1021d3c72e1cb0126809f43e56ec378430ab3625a09c025797fe1438360832101439c2b014287dc47
    laanwj authored and PastaPastaPasta committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    7917168 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#28561: build: Update qt package up to 5.15.10

    6988a2f build: Update qt package up to 5.15.10 (Hennadii Stepanov)
    
    Pull request description:
    
      The Qt 5.15.10 contains at least three important for us fixes:
      - qt/qtbase@8bb90ab, which allows us to drop the [`dont_hardcode_x86_64.patch`](https://github.com/bitcoin/bitcoin/blob/fd8ab08558ccfb62f2d0a64d2d0d4dcefba977bc/depends/patches/qt/dont_hardcode_x86_64.patch)
      - qt/qtbase@8467bed, which allows us to drop the [`fix_montery_include.patch`](https://github.com/bitcoin/bitcoin/blob/fd8ab08558ccfb62f2d0a64d2d0d4dcefba977bc/depends/patches/qt/fix_montery_include.patch)
      - qt/qtbase@df08a21, which addresses bitcoin#28349 (comment)
    
    ACKs for top commit:
      fanquake:
        ACK 6988a2f.
    
    Tree-SHA512: 838c44cf0d7508714f35887bb1f0983e59d96764f08f467bbd03d102d7152e797daeedc178afb03141115cc3be623e4ef7c4c4c65c0a8d1f0bb9702c9a6f8fc6
    fanquake authored and PastaPastaPasta committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    db82ecb View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#24461: build: Minor leveldb subtree update

    1b20109 Squashed 'src/leveldb/' changes from f8ae182c1e..330dd6235f (MarcoFalke)
    
    Pull request description:
    
      A minor change to:
    
      * Consistently use the same symbol names in the whole project.
      * Fix compiling with C++20.
    
    ACKs for top commit:
      fanquake:
        ACK fa0c32e
    
    Tree-SHA512: b5d4540dd621cf4aa8caac811bae03bb74e502a31dbdda9354182e4caa39905550e62ad3cf8ea7d7f9bfc3e5120d119d34ab0f1e633716ec8089876037cbf192
    fanquake authored and PastaPastaPasta committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    c6ff51a View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2023

  1. Configuration menu
    Copy the full SHA
    0505a63 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#18842: wallet: Mark replaced tx to not be in the mempoo…

    …l anymore
    
    fa4e088 wallet: Mark replaced tx to not be in the mempool anymore (MarcoFalke)
    
    Pull request description:
    
      The wallet does not mark the replaced tx as out-of-mempool. This causes failures in user scripts, because later RPCs may depend on this state change from `bumpfee`.
    
      For example, the following might fail on current master:
    
      ```
      txid = sendtoaddress(...)
      bumpfee(txid)
      abandontransaction(txid)  # fails because txid is still marked as "in mempool"
      ```
    
      Fixes bitcoin#18831
    
    ACKs for top commit:
      meshcollider:
        utACK fa4e088
      ryanofsky:
        Code review ACK fa4e088, and previous ACK faeedff is also still valid in case there's a preference for the original fix
    
    Tree-SHA512: 9858f40f5fb5a43a7b584b5c4268b6befa82e6a84583be5206fe721bcb6c255e8d35479d347d0b9aed72703df49887c02b14ab680e8efdd28b90dd6b93d9439a
    MarcoFalke authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    787ae68 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#21162: Net Processing: Move RelayTransaction() into Pee…

    …rManager
    
    680eb56 [net processing] Don't pass CConnman to RelayTransactions (John Newbery)
    a38a4e8 [net processing] Move RelayTransaction into PeerManager (John Newbery)
    
    Pull request description:
    
      This is the first part of bitcoin#21160. It moves the RelayTransaction() function to be a member function of the PeerManager class. This is required in order to move the transaction inventory data into the Peer object, since Peer objects are only accessible from within PeerManager.
    
    ACKs for top commit:
      ajtowns:
        ACK 680eb56
    
    Tree-SHA512: 8c93491a4392b6369bb7f090de326a63cd62a088de59026e202f226f64ded50a0cf1a95ed703328860f02a9d2f64d3a87ca1bca9a6075b978bd111d384766235
    fanquake authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    c7a6f37 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#21043: net: Avoid UBSan warning in ProcessMessage(...)

    3ddbf22 util: Disallow negative mocktime (MarcoFalke)
    f5f2f97 net: Avoid UBSan warning in ProcessMessage(...) (practicalswift)
    
    Pull request description:
    
      Avoid UBSan warning in `ProcessMessage(...)`.
    
      Context: bitcoin#20380 (comment) (thanks Crypt-iQ!)
    
    ACKs for top commit:
      MarcoFalke:
        re-ACK 3ddbf22 only change is adding patch written by me
      ajtowns:
        ACK 3ddbf22 -- code review only
    
    Tree-SHA512: e8d7af0457ca86872b75a4e406c0a93aafd841c2962e244e147e748cc7ca118c56be0fdafe53765f4b291410030b2c3cc8f76f733b37a955d34fc885ab6037b9
    MarcoFalke authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    cff1c7b View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin-core/gui#162: Add network to peers window and peer details

    e262a19 gui: display network in peer details (Jon Atack)
    9136953 gui: rename peer tab column headers, initialize in .h (Hennadii Stepanov)
    05c08c6 gui: add network column in peers tab/window (Jon Atack)
    e0e5506 gui: fix broken doxygen formatting in src/qt/guiutil.h (Jon Atack)
    0d5613f gui: create GUIUtil::NetworkToQString() utility function (Jon Atack)
    af9103c net, rpc: change CNodeStats::m_network from string to Network (Jon Atack)
    
    Pull request description:
    
      and rename peers window column headers from NodeId and Node/Service to Peer Id and Address.
    
      ![Screenshot from 2020-12-27 14-45-31](https://user-images.githubusercontent.com/2415484/103172228-efec8600-4849-11eb-8cee-04a3d2ab1273.png)
    
    ACKs for top commit:
      laanwj:
        ACK e262a19
    
    Tree-SHA512: 709c2a805c109c2dd033aca7b6b6dc94ebe2ce7a0168c71249e1e661c9c57d1f1c781a5b9ccf3b776bedeb83ae2fb5c505637337c45b1eb9a418cb1693a89761
    laanwj authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    da20789 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#17556: test: Change feature_config_args.py not to rely …

    …on strange regtest=0 behavior
    
    ff44cae test: Change feature_config_args.py not to rely on strange regtest=0 behavior (Russell Yanofsky)
    
    Pull request description:
    
      Update test to simply generate a normal mainnet configuration file instead of using a crazy setup where a regtest=1 config file using an includeconf in the [regtest] section includes another config file that specifies regtest=0, retroactively switching the network to mainnet.
    
      This setup was fragile and only worked because the triggered InitError happened early enough that none of the ignored [regtest] options mattered (only affecting log output).
    
      This change was originally made as part of bitcoin#17493
    
    Top commit has no ACKs.
    
    Tree-SHA512: 3f77305454f04438493dfc2abd78a00434b30869454d1c3f54587b9c1f63239c49c90fb3b4d3a777ad130f2184e0f2dac87cee4cd23c50f1b3496a375943da01
    MarcoFalke authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    b8267bb View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#18017: txmempool: split epoch logic into class

    fd6580e [refactor] txmempool: split epoch logic into class (Anthony Towns)
    
    Pull request description:
    
      Splits the epoch logic introduced in bitcoin#17925 into a separate class.
    
      Uses clang's thread safety annotations and encapsulates the data more strongly to reduce chances of bugs from API misuse.
    
    ACKs for top commit:
      jonatack:
        ACK fd6580e using clang thread safety annotations looks like a very good idea, and the encapsulation this change adds should improve robustness (and possible unit test-ability) of the code. Verified that changing some of the locking duly provoked build-time warnings with Clang 9 on Debian and that small changes in the new `Epoch` class were covered by failing functional test assertions in `mempool_updatefromblock.py`, `mempool_resurrect.py`, and `mempool_reorg.py`
      hebasto:
        re-ACK fd6580e, since my [previous](bitcoin#18017 (review)) review:
    
    Tree-SHA512: 7004623faa02b56639aa05ab7a078320a6d8d54ec62d8022876221e33f350f47df51ddff056c0de5be798f8eb39b5c03c2d3f035698555d70abc218e950f2f8c
    laanwj authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    99c1307 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#18795: Test: wallet issue with orphaned rewards

    e4356f6 Testcase for wallet issue with orphaned rewards. (Daniel Kraft)
    
    Pull request description:
    
      This adds a new test case demonstrating the wallet issue when block rewards are orphaned (bitcoin#14148).
    
    ACKs for top commit:
      LarryRuane:
        ACK e4356f6
      leonardojobim:
        reACK bitcoin@e4356f6 .
    
    Tree-SHA512: e9a2310ee1b3d52cfa302f431ed3d272bbc1b9195439ff318d9eb1006c0b28968dbe840e1600b6ff185e5d7ea57e4dcc837cef16051b5537445e10bc363b8c22
    MarcoFalke authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    8b98e1a View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#19362: rpc/blockchain: Reset scantxoutset progress befo…

    …re inferring descriptors
    
    8c4129b rpc: reset scantxoutset progress on finish (Pavol Rusnak)
    
    Pull request description:
    
      Fixes bitcoin#19361 by moving resetting the `g_scan_progress` variable **before** inferring the descriptors
    
    ACKs for top commit:
      achow101:
        Code review ACK 8c4129b
    
    Tree-SHA512: 2b81e5c930b9c201a1b9cc742c37e0617582326acd9adbd6b14991d33c05d51b1d5ff6a26f3accab7d274dc8c6a48bc8cbccf0811b60c1f76dd805f9b31482c0
    MarcoFalke authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    d6d3e09 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#20932: refactor: Replace fs::absolute calls with AbsPat…

    …hJoin calls
    
    da9caa1 Replace fs::absolute calls with AbsPathJoin calls (Kiminuo)
    66576c4 test: Clear forced -walletdir setting after wallet init_tests (Kiminuo)
    
    Pull request description:
    
      This adds better test coverage and will make it easier in bitcoin#20744 to remove our dependency on the two-argument boost::filesystem::absolute() function which does not have a direct equivalent in C++17.
    
      This PR doesn't change behavior aside from adding an assert and fixing a test bug.
    
    ACKs for top commit:
      jonatack:
        Code review ACK da9caa1 only doxygen improvements since my last review per `git diff d867d7a da9caa1`
      MarcoFalke:
        review ACK da9caa1 📯
      ryanofsky:
        Code review ACK da9caa1. Just comment and test tweaks since previous review.
    
    Tree-SHA512: c940ee60f3ba374d4927cf34cf12d27c4c735c94af591fbc0ca408c641b30f8f8fbcfe521d66bfbddf9877a1fc8cd99bd8a47ebcd2fa59789de6bd87a7b9cf4d
    MarcoFalke authored and UdjinM6 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    09973f2 View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2023

  1. Merge pull request dashpay#5534 from vijaydasmp/bp22_15

    backport: Merge bitcoin#18842, 21162, 21043, 17556, 18017, 8795, 19362, 20932, bitcoin-core/gui#162
    UdjinM6 authored Dec 9, 2023
    Configuration menu
    Copy the full SHA
    3c516ee View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2023

  1. partial merge bitcoin#26532: wallet: bugfix, invalid crypted key "che…

    …cksum_valid" set
    
    backports cc5a5e8 only
    
    ```
    wallet: bugfix, invalid crypted key "checksum_valid" set
    
    At wallet load time, we set the crypted key "checksum_valid" variable always to false.
    Which, on every wallet decryption call, forces the process to re-write the entire ckeys to db when
    it's not needed.
    ```
    furszy authored and UdjinM6 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    d7bae33 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2023

  1. Merge pull request dashpay#5759 from UdjinM6/bp26532

    backport: partial merge bitcoin#26532: wallet: bugfix, invalid crypted key "checksum_valid" set
    PastaPastaPasta authored Dec 11, 2023
    Configuration menu
    Copy the full SHA
    985da9a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    38b9074 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#22523: Document about wallet backup and restoration

    ce4e906 Document about wallet backup and restoration (lsilva01)
    
    Pull request description:
    
      This PR adds a document about backing up and restoring the Bitcoin Core wallet as suggested in the issue bitcoin#20149 .
    
    ACKs for top commit:
      achow101:
        re-ACK ce4e906
      prayank23:
        reACK bitcoin@ce4e906
      meshcollider:
        re-ACK ce4e906
    
    Tree-SHA512: 68881fc1d81ff27cb59b891e6d422e303844a751afd9f4699f7ae505f204452afe9496c9be915ba94a7045f3cf3eaeb2af0e42ff2a12b4c77ef1f71a9de4faad
    meshcollider authored and PastaPastaPasta committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    5bd334a View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#22739: doc: link to managing-wallets from docs README

    1ea11e1 doc: link to managing-wallets from doc readme (fanquake)
    
    Pull request description:
    
      This was forgotten in bitcoin#22523.
    
    ACKs for top commit:
      achow101:
        ACK 1ea11e1
      jarolrod:
        ACK 1ea11e1
    
    Tree-SHA512: b82664b282cc0fe733b752c011621593df0f846d2188f12dbc5fedb7ffed2bd161293ce2a369ca973926030795b5f7acde7a1cbf5e337042a6f665906069c656
    fanquake authored and PastaPastaPasta committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    5cd9882 View commit details
    Browse the repository at this point in the history
  5. Merge pull request dashpay#5682 from vijaydasmp/bp23_4

    backport: Merge partial bitcoin#24203,22523,22739,13533
    PastaPastaPasta authored Dec 11, 2023
    Configuration menu
    Copy the full SHA
    40f7ae8 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2023

  1. Merge bitcoin#19884: p2p: No delay in adding fixed seeds if -dnsseed=…

    …0 and peers.dat is empty
    
    fe3e993 [p2p] No delay in adding fixed seeds if -dnsseed=0 and peers.dat is empty. Add -fixedseeds arg. (Dhruv Mehta)
    
    Pull request description:
    
      Closes bitcoin#19795
    
      Before PR: If `peers.dat` is empty and `-dnsseed=0`, bitcoind will fallback on to fixed seeds but only after a 60 seconds delay.
      After PR: There's no 60 second delay.
    
      To reproduce:
      `rm ~/.bitcoin/peers.dat && src/bitcoind -dnsseed=0` without and with patch code
    
      Other changes in the PR:
      - `-fixedseeds` command line argument added: `-dnsseed=0 -fixedseeds=0 -addnode=X` provides a trusted peer only setup. `-dnsseed=0 -fixedseeds=0` allows for a `addnode` RPC to add a trusted peer without falling back to hardcoded seeds.
    
    ACKs for top commit:
      LarryRuane:
        re-ACK fe3e993
      laanwj:
        re-ACK fe3e993
    
    Tree-SHA512: 79449bf4e83a315be6dbac9bdd226de89d2a3f7f76d9c5640a2cb3572866e6b0e8ed67e65674c9824054cf13119dc01c7e1a33848daac6b6c34dbc158b6dba8f
    laanwj authored and vijaydasmp committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    65cb12a View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#19473: net: Add -networkactive option

    2aac093 test: Add test coverage for -networkactive option (Hennadii Stepanov)
    3c58129 net: Log network activity status change unconditionally (Hennadii Stepanov)
    62fe6aa net: Add -networkactive option (Hennadii Stepanov)
    
    Pull request description:
    
      Some Bitcoin Core activity is completely local (offline), e.g., reindexing.
    
      The `setnetworkactive` RPC command is already present. This PR adds the corresponding command-line argument / config option, and allows to start the client with disabled p2p network by providing `-networkactive=0` or `-nonetworkactive`.
    
      This was done while reviewing bitcoin#16981.
    
    ACKs for top commit:
      MarcoFalke:
        re-ACK 2aac093 🏠
      LarryRuane:
        ACK 2aac093
    
    Tree-SHA512: 446d791b46d7b556d7694df7b1f88cd4fbc09301fe4eaf036b45cb8166ed806156353cc03788a07b633d5887d5eee30a7c02a2d4307141c8ccc75e0a88145636
    MarcoFalke authored and vijaydasmp committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    2e2b904 View commit details
    Browse the repository at this point in the history