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

Release 0.1.13 #138

Merged
merged 533 commits into from
Aug 26, 2024
Merged

Release 0.1.13 #138

merged 533 commits into from
Aug 26, 2024
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jun 6, 2024

  1. rpc: Optimize serialization disk space of dumptxoutset

    Co-authored-by: Aurèle Oulès <aurele@oules.com>
    Co-authored-by: TheCharlatan <seb.kung@gmail.com>
    3 people authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    cb5f3d6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    95f2ef9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    011114f View commit details
    Browse the repository at this point in the history
  4. rpc: Enhance metadata of the dumptxoutset output

    The following data is added:
    - A newly introduced utxo set magic
    - A version number
    - The network magic
    - The block height
    fjahr authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    2fcc30e View commit details
    Browse the repository at this point in the history
  5. test: improve robustness of connect_nodes()

    The 'connect_nodes' function in the test framework relies
    on a stable number of peer connections to verify the new
    connection between the nodes is successfully established.
    This approach is fragile, as any of the peers involved in
    the process can drop, lose, or create a connection at any
    step, causing subsequent 'wait_until' checks to stall
    indefinitely even when the peers in question are connected
    successfully.
    
    This commit improves the situation by using the nodes' subversion
    and the connection direction (inbound/outbound) to identify the
    exact peer connection and perform the checks exclusively on it.
    furszy authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    4bb8f9a View commit details
    Browse the repository at this point in the history
  6. [policy] explicitly require non-v3 for CPFP carve out

    This carve out is intended to allow a second child under restricted
    circumstances, but this topology is not allowed for v3 transactions.
    
    As CPFP carve out does not explicitly require a second child to actually
    exist, it has the effect of granting a free +10KvB descendant size limit
    when a single child is enough to bust the descendant limit.
    glozow authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    ebc1bca View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0f131f4 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    a89657d View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    0d9ee2c View commit details
    Browse the repository at this point in the history
  10. windeploy: Renew certificate

    achow101 authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    2725e08 View commit details
    Browse the repository at this point in the history
  11. depends: swap cctools-x for llvm-x

    Only build ld64 from cctools.
    Disable adhoc codesigning, to avoid non-determinism.
    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    fcf63c6 View commit details
    Browse the repository at this point in the history
  12. build: switch to using lld for macOS builds

    Adjust the security check for:
    ld64.lld: warning: Option `-allow_stack_execute' is not yet implemented.
    ld64.lld: error: -fixup_chains is incompatible with -no_pie
    and to account for the embedding of LLVMs version number.
    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    405aebc View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    ee52de1 View commit details
    Browse the repository at this point in the history
  14. guix: remove ZERO_AR_DATE export

    LLD enables ZERO_AR_DATE by default, setting it to zero would enable
    non-determinism, setting it to any other value is ignored.
    
    See:
    https://github.com/llvm/llvm-project/blob/main/lld/docs/MachO/ld64-vs-lld.rst.
    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    8074141 View commit details
    Browse the repository at this point in the history
  15. depends: don't use -no_warning_for_no_symbols in macOS qt build

    Not supported by llvm-ar / llvm-ranlib.
    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    2864bad View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    93d4c3e View commit details
    Browse the repository at this point in the history
  17. depends: remove cctools & libtapi

    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    1f4714f View commit details
    Browse the repository at this point in the history
  18. guix: drop binutils from macOS env

    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    a412362 View commit details
    Browse the repository at this point in the history
  19. doc: Correct pull request prefix for scripts and tools

    MarcoFalke authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    2a147da View commit details
    Browse the repository at this point in the history
  20. net: rpc: return peer's mapped AS in getrawaddrman

    This information can be used to check bucketing
    logic.
    brunoerg authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    4d22015 View commit details
    Browse the repository at this point in the history
  21. test: add coverage for mapped_as from getrawaddrman

    Test addresses are being mapped according to the ASMap
    file provided properly. Compare the result of the `getrawaddrman`
    RPC with the result from the ASMap Health Check.
    brunoerg authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    cad98db View commit details
    Browse the repository at this point in the history
  22. depends: Fetch miniupnpc sources from an alternative website

    The https://miniupnp.tuxfamily.org website is unavailable now.
    hebasto authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    c3e1be6 View commit details
    Browse the repository at this point in the history
  23. Add description for m_test_accept

    instagibbs authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    0bfbbeb View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    9a002f4 View commit details
    Browse the repository at this point in the history
  25. [refactor] make some members MemPoolAccept-wide

    No change in behavior.
    
    For single transaction acceptance, this is a simple refactor:
    Workspace::m_all_conflicting
    Workspace::m_conflicting_fees
    Workspace::m_conflicting_size
    Workspace::m_replaced_transactions
    
    are now grouped under a new SubPackageState struct that is
    a member of MemPoolAccept.
    
    And local variables m_total_vsize and m_total_modified_fees are now
    SubpackageState members so they can be accessed from
    PackageMempoolChecks.
    
    We want these to be package-wide variables because
    - Transactions could conflict with the same tx (just not the same
    prevout), or their conflicts could share descendants.
    - We want to compare conflicts with the package fee rather than
    individual transaction fee.
    
    We reset these MemPoolAccept-wide fields for each subpackage
    evaluation to not cause state leaking, similar to temporary
    coins.
    glozow authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    ca03749 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    9271865 View commit details
    Browse the repository at this point in the history
  27. cpfp carveout is excluded in packages

    The behavior is not new, but this rule exits earlier than before.
    Previously, a carve out could have been granted in PreChecks() but then
    nullified in PackageMempoolChecks() when CheckPackageLimits() is called
    with the default limits.
    glozow authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    3afd2a1 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    a886ff6 View commit details
    Browse the repository at this point in the history
  29. doc: Add release notes for #29612

    fjahr authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    58e55f4 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    c0495a6 View commit details
    Browse the repository at this point in the history
  31. lint: add markdown hyperlink checker

    This adds a markdown hyperlink check task to the lint test_runner. It
    relies on having the [`mlc`](https://crates.io/crates/mlc) binary found
    on $PATH, but will fail with `success` if the binary is not found.
    
    `mlc` is also added to the ci/04_install.sh script run by the
    containerfile.
    
    Note that broken markdown hyperlinks will be detected in untracked
    markdown files found in a dirty working directory (including e.g.
    .venv).
    willcl-ark authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    d2dd1c2 View commit details
    Browse the repository at this point in the history
  32. fuzz: Fix wallet_bdb_parser stdlib error matching

    MarcoFalke authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    82d2756 View commit details
    Browse the repository at this point in the history
  33. assumeutxo: Add network magic ctor param to SnapshotMetadata

    This prevents SnapshotMetadata from using any globals implicitly.
    fjahr authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    e04017a View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    1bb4cae View commit details
    Browse the repository at this point in the history
  35. fuzz: Handle missing BDBRO errors

    Adds error messages that were not being handled. Also removes error
    messages that no longer exist.
    achow101 authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    d7b8f8b View commit details
    Browse the repository at this point in the history
  36. increase txorphan harness stability

    initialize variable
    marcofleon authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    1e6b31e View commit details
    Browse the repository at this point in the history
  37. scripted-diff: Replace nNextSweep with m_next_sweep

    -BEGIN VERIFY SCRIPT-
    sed -i 's/nNextSweep/m_next_sweep/g' $(git grep -l 'nNextSweep')
    -END VERIFY SCRIPT-
    
    fixing to match style
    marcofleon authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    6a8de34 View commit details
    Browse the repository at this point in the history
  38. depends: qt 5.15.14

    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    065a14f View commit details
    Browse the repository at this point in the history
  39. build: remove --enable-lcov-branch-coverage

    This supports lcov 2.x in the sense that we are no-longer hardcoding
    version specific options, and instead will use the `LCOV_OPTS` variable
    (which is the more correct/flexible thing to do in any case). It's also
    quite likely that devs are already having to pass extra options to lcov
    2.x, given it's more stringent in terms of coverage generation and error
    checking. See this thread for an example:
    linux-test-project/lcov#238.
    
    Added an example to the developer notes.
    
    Tested on one machine (LCOV 2.0, gcc 13.2) with:
    ```bash
    ./autogen.sh
    ./configure --enable-lcov CXXFLAGS="-fprofile-update=prefer-atomic" LCOV_OPTS="--rc branch_coverage=1 --ignore-errors mismatch"
    make
    make cov
    <snip>
    Processing file src/netaddress.cpp
      lines=521 hit=480 functions=72 hit=72 branches=675 hit=499
    Overall coverage rate:
      lines......: 81.8% (79362 of 97002 lines)
      functions......: 77.8% (10356 of 13310 functions)
      branches......: 49.6% (130628 of 263196 branches)
    ```
    
    and another machine (LCOV 2.1, Clang 18.1.3) with:
    ```bash
    ./autogen.sh
    ./configure --enable-lcov CC=clang CXX=clang++ LCOV_OPTS="--rc branch_coverage=1 --ignore-errors mismatch,inconsistent"
    make
    make cov
    <snip>
    Processing file src/util/strencodings.cpp
      lines=315 hit=311 functions=38 hit=38 branches=425 hit=357
    Overall coverage rate:
      source files: 622
      lines.......: 79.8% (70311 of 88132 lines)
      functions...: 78.1% (13968 of 17881 functions)
      branches....: 44.5% (157551 of 354317 branches)
    Message summary:
      101 warning messages:
        count: 1
        inconsistent: 100
      3528 ignore messages:
        inconsistent: 3528
    ```
    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    dddb532 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    bc13af2 View commit details
    Browse the repository at this point in the history
  41. depends: fix Qt macOS build with Clang 18

    Patch Qts internal libpng to resolve the failure.
    
    I would like to have this patched, so we can continue working on the
    removal of `FORCE_USE_SYSTEM_CLANG`. Otherwise builds will be broken using
    the default clang (18) on the current Ubuntu LTS (24.04).
    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    20f3118 View commit details
    Browse the repository at this point in the history
  42. depends: consolidate dependency docs

    Adds missing `g++` for macOS. This is needed by Qt:
    ```bash
    Configuring qt...
    Creating qmake...
    gmake[1]: Entering directory '/bitcoin/depends/work/build/arm64-apple-darwin/qt/5.15.14-4bca24c8f89/qtbase/qmake'
    gmake[1]: g++: No such file or directory
    gmake[1]: *** [Makefile:250: main.o] Error 127
    ```
    
    `xz-utils` was also missing (but generally already installed), and is
    needed for the `.tar.xz` tarballs.
    
    Remove bsdmainutils, as this is only needed by the main build system
    (for tests), and isn't needed to complete a depends build.
    fanquake authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    c69cec5 View commit details
    Browse the repository at this point in the history
  43. doc: JSON-RPC request Content-Type is application/json

    Specify json content type in RPC examples
    luke-jr authored and janus committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    aa8d2dd View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    b874b47 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2024

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

Commits on Jun 10, 2024

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

Commits on Jun 14, 2024

  1. Fix test/key_io_tests.cpp file

    janus committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    bdd9190 View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2024

  1. Fix test/txpackage_tests file

    janus committed Jun 17, 2024
    Configuration menu
    Copy the full SHA
    d380036 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2024

  1. Update files

    janus committed Jun 23, 2024
    Configuration menu
    Copy the full SHA
    67a3496 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2024

  1. Update test/functional

    wu-emma committed Jun 24, 2024
    Configuration menu
    Copy the full SHA
    41d4b93 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2024

  1. Configuration menu
    Copy the full SHA
    d04915e View commit details
    Browse the repository at this point in the history
  2. Update rpc/node.cpp file

    janus committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    8043a13 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2024

  1. Update files

    janus committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    27c33db View commit details
    Browse the repository at this point in the history
  2. Add files

    janus committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b5c8414 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. Update Depends

    wu-emma committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    40ee4b3 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2024

  1. [policy] make v3 transactions standard

    Note that, as CURRENT_VERSION = 2, the wallet will not make transactions
    with nVersion=3 yet.
    glozow authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    455f706 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    19a6fbf View commit details
    Browse the repository at this point in the history
  3. [doc] update bips.md for 431

    glozow authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    5a1298c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    92e8e35 View commit details
    Browse the repository at this point in the history
  5. depends: Update Boost download link

    hebasto authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    c47b438 View commit details
    Browse the repository at this point in the history
  6. [fuzz] Avoid endless waiting in FuzzedSock::{Wait,WaitMany}

    Currently, when the FuzzedDataProvider of a FuzzedSock runs out of data,
    FuzzedSock::Wait and WaitMany will simulate endless waiting as the
    requested events are never simulated as occured.
    
    Fix this by simulating event occurence when ConsumeBool() returns false
    (e.g. when the data provider runs out).
    
    Co-authored-by: dergoegge <n.goeggi@gmail.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    ee1f10a View commit details
    Browse the repository at this point in the history
  7. [fuzz] Make peeking through FuzzedSock::Recv fuzzer friendly

    FuzzedSock only supports peeking at one byte at a time, which is not
    fuzzer friendly when trying to receive long data.
    
    Fix this by supporting peek data of arbitrary length instead of only one
    byte.
    dergoegge authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    57faa57 View commit details
    Browse the repository at this point in the history
  8. guix: show *_FLAGS variables in pre-build output

    For example:
    ```bash
    ADDITIONAL_GUIX_COMMON_FLAGS set in the ENV
    ADDITIONAL_GUIX_ENVIRONMENT_FLAGS="--emulate-fhs" ./contrib/guix/guix-build
    <snip>
    INFO: Building f75199182133 for platform triple x86_64-linux-gnu:
          ...using reference timestamp: 1716905119
          ...running at most 10 jobs
          ...from worktree directory: '/bitcoin'
              ...bind-mounted in container to: '/bitcoin'
          ...in build directory: '/bitcoin/guix-build-f75199182133/distsrc-f75199182133-x86_64-linux-gnu'
              ...bind-mounted in container to: '/distsrc-base/distsrc-f75199182133-x86_64-linux-gnu'
          ...outputting in: '/bitcoin/guix-build-f75199182133/output/x86_64-linux-gnu'
              ...bind-mounted in container to: '/outdir-base/x86_64-linux-gnu'
          ADDITIONAL FLAGS (if set)
              ADDITIONAL_GUIX_COMMON_FLAGS: --no-substitutes
              ADDITIONAL_GUIX_ENVIRONMENT_FLAGS: --emulate-fhs
              ADDITIONAL_GUIX_TIMEMACHINE_FLAGS:
    ```
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    dca28b7 View commit details
    Browse the repository at this point in the history
  9. refactor: remove unused CKey::Negate method

    This method was introduced as a pre-requirement for the v2 transport
    protocol back then (see PR #14047, commit 463921bb), when it was still
    BIP151. With the replacement BIP324, this is not needed anymore, and
    it's also unlikely that any other proposal would need to negate private
    keys at this abstraction level.
    (If there is really demand, it's trivial to reintroduce the method.)
    theStack authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    c61aab6 View commit details
    Browse the repository at this point in the history
  10. Support running individual lint checks

    Add support for passing `--lint=LINT_TO_RUN` to the lint runner and
    add corresponding help message.
    davidgumberg authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    328175a View commit details
    Browse the repository at this point in the history
  11. test: Fix typos and use names args

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    1a9f171 View commit details
    Browse the repository at this point in the history
  12. test: Set mocktime in p2p_disconnect_ban.py to avoid intermittent tes…

    …t failure
    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    d24ea9a View commit details
    Browse the repository at this point in the history
  13. doc: fixup deps doc after #30198

    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    ad12291 View commit details
    Browse the repository at this point in the history
  14. build: no-longer allow GCC-10 in C++20 check

    Reverts part of fa67f096bdea9db59dd20c470c9e32f3dac5be94, now that we
    require a minimum of GCC 11.
    
    See also:
    bitcoin/bitcoin#28349 (comment).
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    513931e View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    b64eb09 View commit details
    Browse the repository at this point in the history
  16. Reduce memory copying operations in bech32 encode

    Here I've reduced the memory reallocations and copying operations in bech32 encode, making it ~15% faster.
    
    make && ./src/bench/bench_bitcoin --filter='Bech32Encode' --min-time=1000
    
    Before:
    
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |               19.97 |       50,074,562.72 |    0.1% |      1.06 | `Bech32Encode`
    After:
    
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |               17.33 |       57,687,668.20 |    0.1% |      1.10 | `Bech32Encode`
    
    Co-authored-by: josibake <josibake@protonmail.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    214225f View commit details
    Browse the repository at this point in the history
  17. guix: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126

    Includes:
    LLVM 18.1.x (#30201)
    GCC 13.x (#29881)
    
    git-minimal 2.41.0 -> 2.45.1
    Kernel Headers 6.1.80 -> 6.1.92
    moreutils 0.68 -> 0.69
    
    Commits like
    https://git.savannah.gnu.org/cgit/guix.git/commit/?id=7b0f145802f0c2c785014293d748721678fef824,
    which should improve the bootstrap situation (#30042).
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    f97ce0e View commit details
    Browse the repository at this point in the history
  18. test: fix keys_to_multisig_script (P2MS) helper for n/k > 16

    The helper assumes that the n and k values have to be provided as a
    single byte push operation, which is only possible for values up to 16.
    Fix that by passing the numbers directly to the CScript list, where it's
    automatically converted to minimally-encoded pushes (see class
    method `CScript.__coerce_instance`, branch `isinstance(other, int)`).
    
    In case of 17..20, this means that the data-pushes are done with two
    bytes using OP_PUSH1 (0x01), e.g. for n=20: 0x01,0x14
    theStack authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    d3de8ab View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    1b06b64 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    b502d77 View commit details
    Browse the repository at this point in the history
  21. build: re-enable deprecated warning copy

    This was disabled in #18738 due to the combo of old gcc and qt, neither of
    which are relevant to us anymore.
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    43b9a10 View commit details
    Browse the repository at this point in the history
  22. test: refactor: Rename extra_txn to const empty_extra_txn as it is em…

    …pty in all test cases
    AngusP authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b505eaf View commit details
    Browse the repository at this point in the history
  23. test: Add ReceiveWithExtraTransactions Compact Block receive test.

    This new test uses the `vExtraTxnForCompact` (`extra_txn`) vector of
    optional orphan/conflicted/etc. transactions to provide a transaction
    in a compact block that was not otherwise present in our mempool.
    
    This also covers an improbable nullptr deref bug addressed in
    bf031a517c79cec5b43420bcd40291ab0e9f68a8 (#29752) where the
    `extra_txn` vec/circular-buffer was sometimes null-initialized and
    not yet filled when dereferenced in `PartiallyDownloadedBlock::InitData`.
    AngusP authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    882e359 View commit details
    Browse the repository at this point in the history
  24. refactor: disable self-assign warning for tests

    clang-16 and earlier detect "foo -= foo" and "foo /= foo" as self-assignments.
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    75f8e90 View commit details
    Browse the repository at this point in the history
  25. build: warn on self-assignment

    Belt-and suspenders after #30234. Self-assignment should be safe _and_
    discouraged.
    
    We used to opt out of this warning because something deep in our
    serialization/byteswapping code could self-assign, but that doesn't appear to
    be the case anymore.
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    1307b55 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    5e0e6b1 View commit details
    Browse the repository at this point in the history
  27. fuzz: add I2P harness

    marcofleon authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    41fca1e View commit details
    Browse the repository at this point in the history
  28. util: add VecDeque

    This is an STL-like container that interface-wise looks like std::deque, but
    is backed by a (fixed size, with vector-like capacity/reserve) circular buffer.
    sipa authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    5eb7d12 View commit details
    Browse the repository at this point in the history
  29. tests: add fuzz tests for VecDeque

    sipa authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    0aaa779 View commit details
    Browse the repository at this point in the history
  30. ci: Remove no longer needed workaround for GHA Windows images

    GHA Windows images previously had multiple VC Build Tools installed,
    which required specifying the `VCPKG_PLATFORM_TOOLSET_VERSION`
    explicitly to avoid linker errors. This issue has been resolved as per
    actions/runner-images#9701.
    hebasto authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    abd1ffc View commit details
    Browse the repository at this point in the history
  31. ci: Use relative paths in win64-native CI job consistently

    This change improves readability. Also the `Tee-Object` cmdlet is used
    when appropriate.
    hebasto authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    63f433f View commit details
    Browse the repository at this point in the history
  32. bugfix: Streamline setting reindex option

    Reverts a bug introduced in b47bd959207e82555f07e028cc2246943d32d4c3
    "kernel: De-globalize fReindex". The change leads to a GUI user being
    prompted to re-index on a chainstate loading failure more than once as
    well as the node actually not reindexing if the user chooses to. Fix
    this by setting the reindexing option instead of the atomic, which can
    be safely re-used to indicate that a reindex should be attempted.
    
    The bug specifically is caused by the chainman, and thus the blockman
    and its m_reindexing atomic being destroyed on every iteration of
    the for loop.
    
    The reindex option for ChainstateLoadOptions is currently also set in a
    confusing way. By using the reindex atomic, it is not obvious in which
    scenario it is true or false.
    
    The atomic is controlled by both the user passing the -reindex option,
    the user chosing to reindex if something went wrong during chainstate
    loading when running the gui, and by reading the reindexing flag from
    the block tree database in LoadBlockIndexDB. In practice this read is
    done through the chainstate module's CompleteChainstateInitialization's
    call to LoadBlockIndex. Since this is only done after the reindex option
    is set already, it does not have an effect on it.
    
    Make this clear by using the reindex option from the blockman opts which
    is only controlled by the user.
    TheCharlatan authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    8ddef57 View commit details
    Browse the repository at this point in the history
  33. validation: Remove needs_init from LoadBlockIndex

    It does not control any actual logic and the log message as well as the
    comment are obsolete, since no database initialization takes place there
    anymore. Log messages indicating when indexes and chainstate databases
    are loaded exist in other places.
    TheCharlatan authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9571478 View commit details
    Browse the repository at this point in the history
  34. doc: update and link for JSON-RPC 2.0

    pinheadmz authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b4db946 View commit details
    Browse the repository at this point in the history
  35. bitcoin-cli: use json-rpc 2.0

    pinheadmz authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    1da947c View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    e1a9b85 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    fd7722d View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    6ac6ce3 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    f15cd9d View commit details
    Browse the repository at this point in the history
  40. consensus: Store transaction nVersion as uint32_t

    Given that the use of a transaction's nVersion is always as an unsigned
    int, it doesn't make sense to store it as signed and then cast it to
    unsigned.
    achow101 authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    5b8bd75 View commit details
    Browse the repository at this point in the history
  41. kernel: Add less confusing reindex options

    Drop confusing kernel options:
    
      BlockManagerOpts::reindex
      ChainstateLoadOptions::reindex
      ChainstateLoadOptions::reindex_chainstate
    
    Replacing them with more straightforward options:
    
      ChainstateLoadOptions::wipe_block_tree_db
      ChainstateLoadOptions::wipe_chainstate_db
    
    Having two options called "reindex" which did slightly different things
    was needlessly confusing (one option wiped the block tree database, and
    the other caused block files to be rescanned). Also the previous set of
    options did not allow rebuilding the block database without also
    rebuilding the chainstate database, when it should be possible to do
    those independently.
    ryanofsky authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    613db70 View commit details
    Browse the repository at this point in the history
  42. indexes: Don't wipe indexes again when already reindexing

    Before this change continuing a reindex without the -reindex flag set
    would leave the block and coins db intact, but discard the data of the
    optional indexes. While not a bug per se, wiping the data again is
    wasteful, both in terms of having to write it again, and potentially
    leading to longer startup times.
    
    When initially running a reindex, both the block index and any further
    activated indexes are wiped. On an index's Init(), both the best block
    stored by the index and the chain's tip are null. An index's m_synced
    member is therefore true. This means that it will process blocks through
    validation events while the reindex is running.
    
    Currently, if the reindex is continued without the user re-specifying
    the reindex flag, the block index is preserved but further index data is
    wiped. This leads to the stored best block being null, but the chain tip
    existing. The m_synced member will be set to false. The index will not
    process blocks through the validation interface, but instead use the
    background sync once the reindex is completed.
    
    If the index is preserved (this change) after a restart its best block
    may potentially match the chain tip. The m_synced member will be set to
    true and the index can process validation events during the rest of the
    reindex.
    TheCharlatan authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    1b676c3 View commit details
    Browse the repository at this point in the history
  43. test: Add functional test for continuing a reindex

    Co-authored-by: furszy <matiasfurszyfer@protonmail.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    465a9a8 View commit details
    Browse the repository at this point in the history
  44. blockman: Replace m_reindexing with m_blockfiles_indexed

    This is a just a mechanical change, renaming and inverting the meaning
    of the indexing variable.
    
    "m_blockfiles_indexed" is a more straightforward name for this variable
    because this variable just indicates whether or not
    <datadir>/blocks/blk?????.dat files have been indexed in the
    <datadir>/blocks/index LevelDB database. The name "m_reindexing" was
    more confusing, it could be true even if -reindex was not specified, and
    false when it was specified. Also, the previous name unnecessarily
    required thinking about the whole reindexing process just to understand
    simple checks in validation code about whether blocks were indexed.
    
    The motivation for this change is to follow up on previous commits,
    moving away from having multiple variables called "reindex" internally,
    and instead naming variables individually after what they do and
    represent.
    ryanofsky authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    3f79a90 View commit details
    Browse the repository at this point in the history
  45. refactor: Rename CTransaction::nVersion to version

    In order to ensure that the change of nVersion to a uint32_t in the
    previous commit has no effect, rename nVersion to version in this commit
    so that reviewers can easily spot if a spot was missed or if there is a
    check somewhere whose semantics have changed.
    achow101 authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    284ab8d View commit details
    Browse the repository at this point in the history
  46. ci: add IPV6 network to ci container

    Allows IPV6 functional tests to run inside the container
    m3dwards authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    c8682d3 View commit details
    Browse the repository at this point in the history
  47. refactor: performance-for-range-copy in psbt.h

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    5236325 View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    6c13e68 View commit details
    Browse the repository at this point in the history
  49. build: Remove --enable-gprof

    This reverts cfaac2a60f3ac63ae8deccb03d88bd559449b78c
    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    352876a View commit details
    Browse the repository at this point in the history
  50. test: Remove redundant verack check

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9cf9734 View commit details
    Browse the repository at this point in the history
  51. log: use error level for critical log messages

    As per doc/developer-notes#logging, LogError should be used for
    severe problems that require the node to shut down.
    
    Co-Authored-By: stickies-v <stickies-v@protonmail.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    d890a01 View commit details
    Browse the repository at this point in the history
  52. tests: add fuzz tests for BitSet

    sipa authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    055fbc9 View commit details
    Browse the repository at this point in the history
  53. util: add BitSet

    This adds a bitset module that implements a BitSet<N> class, a variant
    of std::bitset with a few additional features that cannot be implemented
    in a wrapper without performance loss (specifically, finding first and
    last bit set, or iterating over all set bits).
    sipa authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    e54e15b View commit details
    Browse the repository at this point in the history
  54. guix: use clang-toolchain-18 for macOS build

    Version is 18.1.6.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a2c6baa View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    4a6a9df View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    690b196 View commit details
    Browse the repository at this point in the history
  57. ci: update deps for macOS cross build

    We are going to use Clang 18, which isn't on Jammy, so bump to Noble.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a519dfe View commit details
    Browse the repository at this point in the history
  58. depends: remove FORCE_USE_SYSTEM_CLANG

    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b903df2 View commit details
    Browse the repository at this point in the history
  59. depends: remove native LLVM package

    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    dcac93a View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    e52b2b6 View commit details
    Browse the repository at this point in the history
  61. refactor: rename (macho) ld64 to lld

    Change some references to the macho ld64 to lld, which is now what is
    used.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    4af6571 View commit details
    Browse the repository at this point in the history
  62. doc: add release note for 29091 and 29165

    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    f9f2ffb View commit details
    Browse the repository at this point in the history
  63. PackageV3Checks: Relax assumptions

    Relax assumptions about in-mempool children of in-mempool
    parents. With package RBF, we will allow a package of size
    2 with conflicts on its parent and reconsider the parent
    if its fee is insufficient on its own.
    
    Consider:
    
    TxA (in mempool) <- TxB (in mempool)
    
    TxA (in mempool) <- TxB' (in package, conflicts with TxB) <-
    TxC (in package)
    
    If TxB' fails to RBF TxB due to insufficient feerate, the
    package TxB' + TxC will be considered. PackageV3Checks
    called on TxB' will see an in-mempool parent TxA, and
    see the in-mempool child TxB. We cannot assume there is
    no in-mempool sibling, rather detect it and fail normally.
    
    Prior to package RBF, this would have failed on the first
    conflict in package.
    instagibbs authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    0c1b003 View commit details
    Browse the repository at this point in the history
  64. test: add coverage for errors for combinerawtransaction RPC

    * Tx decode failed
    * Missing transactions
    * Input not found or already spent
    brunoerg authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    c01a1c6 View commit details
    Browse the repository at this point in the history
  65. utils: add missing include

    Noticed when testing VecDeque with no other includes.
    
    For libc++, need type_traits for std::is_trivially_destructible_v.
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    0a1524c View commit details
    Browse the repository at this point in the history
  66. guix: use glibc 2.31

    Set minimum required glibc to 2.31.
    The glibc 2.31 branch is still maintained:
    https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.31/master.
    
    Remove the stack-protector check from test-security-check, as the test
    no-longer fails, and given the control we have of the end, the actual
    security-check test seems sufficient (this might also be applied to some
    of the other checks).
    
    Drops runtime support for Ubuntu Bionic 18.04 and RHEL-8 from the release binaries.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    e690440 View commit details
    Browse the repository at this point in the history
  67. ci: move Asan / LSan / USDT job to Github Actions

    Moving it from Cirrus CI so it can be easier to maintain and used by forks
    m3dwards authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    e237aa0 View commit details
    Browse the repository at this point in the history
  68. fuzz: Use std::span in FuzzBufferType

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9b6e159 View commit details
    Browse the repository at this point in the history
  69. Squashed 'src/minisketch/' changes from 3472e2f5ec..eb37a9b8e7

    eb37a9b8e7 Merge sipa/minisketch#87: Avoid copy in self-assign
    fe6557642e Merge sipa/minisketch#88: build: Add `-Wundef`
    8ea298bfa7 Avoid copy in self-assign
    978a3d8869 build: Add `-Wundef`
    3387044179 Merge sipa/minisketch#86: doc: fix typo in sketch_impl.h
    15c2d13b60 doc: fix typo in sketch_impl.h
    7be08b8a46 Merge sipa/minisketch#85: Fixes for integer precision loss
    00fb4a4d83 Avoid or make integer precision conversion explicit
    9d62a4d27c Avoid the need to cast/convert to size_t for vector operations
    19e06cc7af Prevent overflows from large capacity/max_elements
    
    git-subtree-dir: src/minisketch
    git-subtree-split: eb37a9b8e79f9e49d73b96a49bf97a96d9eb676c
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    f4bfa21 View commit details
    Browse the repository at this point in the history
  70. doc: archive release notes for v27.1

    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    54eca1b View commit details
    Browse the repository at this point in the history
  71. i2p: log errors properly according to their severity

    Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    ee3d36e View commit details
    Browse the repository at this point in the history
  72. i2p: fix log when an interruption happens during Accept

    Before, interruption was printed as an error. Also,
    it did not log the reason when an interruption happened,
    e.g. "Error accepting:".
    
    Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    4a95a99 View commit details
    Browse the repository at this point in the history
  73. test: cover more errors for signrawtransactionwithkey RPC

    * Invalid private key
    * TX decode failed
    brunoerg authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    89950ad View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    f766db4 View commit details
    Browse the repository at this point in the history
  75. move-only: move warnings from common to node

    Since rpc/util.cpp is in common, also move GetNodeWarnings() to
    node::GetWarningsForRPC()
    stickies-v authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    71366fc View commit details
    Browse the repository at this point in the history
  76. node: update uiInterface whenever warnings updated

    This commit introduces slight behaviour change. Previously, the
    GUI status bar would be updated for most warnings, namely
    UNKNOWN_NEW_RULES_ACTIVATED, CLOCK_OUT_OF_SYNC and
    PRE_RELEASE_TEST_BUILD, but not for LARGE_WORK_INVALID_CHAIN
    (and not for FATAL_INTERNAL_ERROR, but that is not really
    meaningful).
    
    Fix this by always updating the status bar when the warnings are
    changed.
    stickies-v authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    51f4b3c View commit details
    Browse the repository at this point in the history
  77. introduce and use the generalized node::Warnings interface

    Instead of having separate warning functions (and globals) for each
    different warning that can be raised, encapsulate this logic into
    a single class and allow to (un)set any number of warnings.
    
    Introduces behaviour change:
    - the `-alertnotify` command is executed for all
      `KernelNotifications::warningSet` calls, which now also covers the
      `LARGE_WORK_INVALID_CHAIN` warning.
    - previously, warnings were returned based on a predetermined order,
      e.g. with the "pre-release test build" warning always first. This
      is no longer the case, and Warnings::GetMessages() will return
      messages sorted by the id of the warning.
    
    Removes warnings.cpp from kernel.
    stickies-v authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b8edeeb View commit details
    Browse the repository at this point in the history
  78. refactor: remove warnings globals

    stickies-v authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a12b9f3 View commit details
    Browse the repository at this point in the history
  79. Squashed 'src/leveldb/' changes from e2f10b4e47..688561cba8

    688561cba8 Merge bitcoin-core/leveldb-subtree#41: Ignore clang's self-assignment check
    7045a90ed7 Ignore clang's self-assignment check
    
    git-subtree-dir: src/leveldb
    git-subtree-split: 688561cba8746482893f835c4829e4eb4a5b7615
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    6510cbf View commit details
    Browse the repository at this point in the history
  80. Revert "contrib: macdeploy: monkey-patch gen-sdk to be deterministic"

    This reverts commit ba30a5407e065e9d6dd037351e83f56a43f38f19.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    577285e View commit details
    Browse the repository at this point in the history
  81. Configuration menu
    Copy the full SHA
    88778f6 View commit details
    Browse the repository at this point in the history
  82. [test] package rbf

    glozow authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9823e44 View commit details
    Browse the repository at this point in the history
  83. Configuration menu
    Copy the full SHA
    5e60cf1 View commit details
    Browse the repository at this point in the history
  84. Add release note for size 2 package rbf

    instagibbs authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    f9cb9c6 View commit details
    Browse the repository at this point in the history
  85. doc: update package RBF comment

    instagibbs authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    cdc7c0d View commit details
    Browse the repository at this point in the history
  86. Configuration menu
    Copy the full SHA
    076d05d View commit details
    Browse the repository at this point in the history
  87. [policy] package rbf

    Support package RBF where the conflicting package would result
    in a mempool cluster of size two, and each of its direct
    conflicts are also part of an up-to-size-2 mempool cluster.
    
    This restricted topology allows for exact calculation
    of miner scores for each side of the equation, reducing
    the surface area for new pins, or incentive-incompatible
    replacements.
    
    This allows wallets to create simple CPFP packages
    that can fee bump other simple CPFP packages. This,
    leveraged with other restrictions such as V3 transactions,
    can create pin-resistant applications.
    
    Future package RBF relaxations can be considered when appropriate.
    
    Co-authored-by: glozow <gloriajzhao@gmail.com>
    Co-authored-by: Greg Sanders <gsanders87@gmail.com>
    3 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    c3c194e View commit details
    Browse the repository at this point in the history
  88. doc: rewrite some of the macdeploy docs

    Somewhat of a followup to #21778.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9152ad9 View commit details
    Browse the repository at this point in the history
  89. depends: swap mmacosx-version-min for mmacos-version-min

    Whilst these remain aliases for each other, the later is preferred,
    and I assume the former will be removed at some point in the future;
    see: llvm/llvm-project#95374.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    bac8f05 View commit details
    Browse the repository at this point in the history
  90. ci: enable self-assignment clang-tidy check

    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    47b1502 View commit details
    Browse the repository at this point in the history
  91. refactor: add self-assign checks to classes which violate the clang-t…

    …idy check
    
    Both of these cases appear to be harmless, but adding the tests allows us to
    turn on the aggressive clang-tidy checks.
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    97fc971 View commit details
    Browse the repository at this point in the history
  92. netbase: extend CreateSock() to support creating arbitrary sockets

    Allow the callers of `CreateSock()` to pass all 3 arguments to the
    `socket(2)` syscall. This makes it possible to create sockets of
    any domain/type/protocol.
    vasild authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    67b52e4 View commit details
    Browse the repository at this point in the history
  93. fuzz: simplify FuzzedSock::m_peek_data

    `FuzzedSock::m_peek_data` need not be an optional of a vector.
    It can be just a vector whereas an empty vector denotes "no peek data".
    vasild authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    af8c7dc View commit details
    Browse the repository at this point in the history
  94. fuzz: FuzzedSock::Recv() don't lose bytes from MSG_PEEK read

    Problem:
    
    If `FuzzedSock::Recv(N, MSG_PEEK)` is called then `N` bytes would be
    retrieved from the fuzz provider, saved in `m_peek_data` and returned
    to the caller (ok).
    
    If after this `FuzzedSock::Recv(M, 0)` is called where `M < N`
    then the first `M` bytes from `m_peek_data` would be returned
    to the caller (ok), but the remaining `N - M` bytes in `m_peek_data`
    would be discarded/lost (not ok). They must be returned by a subsequent
    `Recv()`.
    
    To resolve this, only remove the head `N` bytes from `m_peek_data`.
    vasild authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a2b3a96 View commit details
    Browse the repository at this point in the history
  95. test: Added test coverage to listsinceblock rpc

    This change adds a test to add coverage to the rpc error that emmits the message "Can't
    read block from disk"
    kevkevinpal authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    3607a61 View commit details
    Browse the repository at this point in the history
  96. test: write functional test results to csv

    Adds argument --resultsfile to test_runner.py.
    Writes comma-separated functional test name, status,
    and duration to the file provided with the argument.
    Also fixes minor typo in test_runner.py
    tdb3 authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    2bef20f View commit details
    Browse the repository at this point in the history
  97. test: Introduce test types and modify v2 handshake function accordingly

    Prior to this commit, TestEncryptedP2PState would always
    send initial_v2_handshake bytes in 2 parts (as required
    by early key response test).
    
    For generalising this test and having different v2 handshake
    behaviour based on the test type, special behaviours like
    sending initial_v2_handshake bytes in 2 parts are executed
    only if test_type is set to EARLY_KEY_RESPONSE.
    stratospher authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    ec0737e View commit details
    Browse the repository at this point in the history
  98. wallet: use CRecipient instead of CTxOut

    Now that a CRecipient holds a CTxDestination, we can get the serialized
    size and determine if the output is dust using the CRecipient directly.
    This does not change any current behavior, but provides a nice generalization
    that can be used to apply special logic to a CTxDestination serialization
    and dust calculations in the future.
    
    Specifically, in a later PR when support for `V0SilentPayment` destinations is
    added, we need to use `WitnessV1Taproot` as the scriptPubKey for serialized
    size calcuations whenever the `CRecipient` destination is a `V0SilentPayment`
    destination.
    josibake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    d8c62b3 View commit details
    Browse the repository at this point in the history
  99. move-only: refactor CreateTransactionInternal

    Move the output serialization size and dust calculation into the loop where the
    outputs are iterated over to calculate the total sum.
    
    Move the code for adding the the txoutputs to the transaction to after
    coin selection.
    
    While this code structure generally follows a more logical flow,
    the primary motivation for moving the code for adding outputs to the
    transaction sets us up nicely for silent payments (in a future PR):
    we need to know the input set before generating the final output scriptPubKeys.
    josibake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    684e29c View commit details
    Browse the repository at this point in the history
  100. doc: replace mention of V3 with TRUC

    instagibbs authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    5761ea7 View commit details
    Browse the repository at this point in the history
  101. Configuration menu
    Copy the full SHA
    872e31b View commit details
    Browse the repository at this point in the history
  102. Configuration menu
    Copy the full SHA
    712bbfe View commit details
    Browse the repository at this point in the history
  103. upnp: add compatibility for miniupnpc 2.2.8

    See: miniupnp/miniupnp@c0a50ce
    
    The return value of 2 now indicates:
    "A valid connected IGD has been found but its IP address is reserved (non routable)"
    
    We continue to ignore any return value other than 1.
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    c5172cf View commit details
    Browse the repository at this point in the history
  104. doc: reword package RBF documentation

    instagibbs authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    427bad8 View commit details
    Browse the repository at this point in the history
  105. fuzz: have package_rbf always make small txns

    The fuzz target is generating a large amount of
    transactions, but the core of the logic is
    ConsumeTxMemPoolEntry making the mempool
    entries for adding to the mempool. Since
    ConsumeTxMemPoolEntry generates its own transaction
    "vsize", we can improve efficiency of the target
    by explicitly creating very small transactions,
    reducing the hashing and memory burden.
    instagibbs authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    47f280d View commit details
    Browse the repository at this point in the history
  106. Configuration menu
    Copy the full SHA
    0a93515 View commit details
    Browse the repository at this point in the history
  107. rpc: call CreateNewBlock via miner interface

    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    0fdff42 View commit details
    Browse the repository at this point in the history
  108. Always pass options to BlockAssembler constructor

    This makes the options argument for BlockAssembler constructor mandatory,
    dropping implicit use of ArgsManager. The caller i.e. the Mining
    interface implementation now handles this.
    
    In a future Stratum v2 change the Options object needs to be
    mofified after arguments have been processed. Specifically
    the pool communicates how many extra bytes it needs for
    its own outputs (payouts, extra commitments, etc). This will need
    to be substracted from what the user set as -blockmaxweight.
    
    Such a change can be implemented in createNewBlock, after
    ApplyArgsManOptions.
    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a941dce View commit details
    Browse the repository at this point in the history
  109. Introduce Mining interface

    Start out with a single method isTestChain() that's used by the getblocktemplate RPC.
    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a84aead View commit details
    Browse the repository at this point in the history
  110. Configuration menu
    Copy the full SHA
    b814933 View commit details
    Browse the repository at this point in the history
  111. rpc: call processNewBlock via miner interface

    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    e98aff1 View commit details
    Browse the repository at this point in the history
  112. Configuration menu
    Copy the full SHA
    08f5ac7 View commit details
    Browse the repository at this point in the history
  113. rpc: minize getTipHash() calls in gbt

    Set tip at the start of the function and only update it for a long poll.
    
    Additionally have getTipHash return an optional, so the
    caller can explicitly check that a tip exists.
    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    f1a6536 View commit details
    Browse the repository at this point in the history
  114. Validate transaction without inputs

    l0rinc authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    45b8c03 View commit details
    Browse the repository at this point in the history
  115. Validate oversized transaction

    l0rinc authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    6f2e294 View commit details
    Browse the repository at this point in the history
  116. Replace hard-coded constant in test

    l0rinc authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    c67e5e6 View commit details
    Browse the repository at this point in the history
  117. Configuration menu
    Copy the full SHA
    8703add View commit details
    Browse the repository at this point in the history
  118. Configuration menu
    Copy the full SHA
    35d676a View commit details
    Browse the repository at this point in the history
  119. Don't use iterator addresses in IteratorComparator

    The addresses of the iterator values are non-deterministic (i.e. they
    depend on where the values were allocated). This causes stability issues
    when fuzzing (e.g. in the `txorphan` and `mini_miner` harnesses), due
    the orders (derived from IteratorComparator) not being deterministic.
    
    Improve stability by comparing the first element in the iterator value
    pair instead of using the the value addresses.
    dergoegge authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    97cb1c1 View commit details
    Browse the repository at this point in the history
  120. fuzz: Fix wallet_bdb_parser 32-bit unhandled fseek error

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    4d97e72 View commit details
    Browse the repository at this point in the history
  121. Configuration menu
    Copy the full SHA
    672e890 View commit details
    Browse the repository at this point in the history
  122. refactor: Move early loadtxoutset checks into ActiveSnapshot

    Also changes the return type of ActiveSnapshot to allow returning the
    error message to the user of the loadtxoutset RPC.
    fjahr authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    48ee57c View commit details
    Browse the repository at this point in the history
  123. test: Make blockencodings_tests deterministic

    refactor: CBlockHeaderAndShortTxIDs constructor now always takes an explicit nonce.
    test: Make blockencodings_tests deterministic using fixed seed providing deterministic
    CBlockHeaderAndShortTxID nonces and dummy transaction IDs.
    
    Fixes very rare flaky test failures, where the ShortIDs of test transactions collide, leading to
    `READ_STATUS_FAILED` from PartiallyDownloadedBlock::InitData and/or `IsTxAvailable` giving `false`
    when the transaction should actually be available.
    
     * Use a new `FastRandomContext` with a fixed seed in each test, to ensure 'random' uint256s
       used as fake prevouts are deterministic, so in-turn test txids and short IDs are deterministic
       and don't collide causing very rare but flaky test failures.
     * Add new test-only/internal initializer for `CBlockHeaderAndShortTxIDs` that takes a specified
       nonce to further ensure determinism and avoid rare but undesireable short ID collisions.
       In a test context this nonce is set to a fixed known-good value. Normally it is random, as
       previously.
    
    Flaky test failures can be reproduced with:
    
    ```patch
    diff --git a/src/blockencodings.cpp b/src/blockencodings.cpp
    index 695e8d806a..64d635a97a 100644
    --- a/src/blockencodings.cpp
    +++ b/src/blockencodings.cpp
    @@ -44,7 +44,8 @@ void CBlockHeaderAndShortTxIDs::FillShortTxIDSelector() const {
    
     uint64_t CBlockHeaderAndShortTxIDs::GetShortID(const Wtxid& wtxid) const {
         static_assert(SHORTTXIDS_LENGTH == 6, "shorttxids calculation assumes 6-byte shorttxids");
    -    return SipHashUint256(shorttxidk0, shorttxidk1, wtxid) & 0xffffffffffffL;
    +    // return SipHashUint256(shorttxidk0, shorttxidk1, wtxid) & 0xffffffffffffL;
    +    return SipHashUint256(shorttxidk0, shorttxidk1, wtxid) & 0x0f;
     }
    
    ```
    
    to increase the likelihood of a short ID collision; and running
    
    ```shell
    set -e;
    n=0;
    while (( n++ < 5000 )); do
        src/test/test_bitcoin --run_test=blockencodings_tests;
    done
    ```
    AngusP authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    1429237 View commit details
    Browse the repository at this point in the history
  124. contrib: add R(UN)PATH check to ELF symbol-check

    Our binaries shouldn't contains any rpaths, or runpaths, so check that
    at release time.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b530ef4 View commit details
    Browse the repository at this point in the history
  125. Configuration menu
    Copy the full SHA
    d0550cd View commit details
    Browse the repository at this point in the history
  126. Configuration menu
    Copy the full SHA
    1660e69 View commit details
    Browse the repository at this point in the history
  127. ci: add option for running tests without volume

    DANGER_CI_ON_HOST_CACHE_FOLDERS if set will mount caches in directories on the host rather than in docker volumes. Supports saving and restoring caches on Github Actions.
    m3dwards authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    65fb4a1 View commit details
    Browse the repository at this point in the history
  128. refactor: remove extraneous lock annotations from function definitions

    These annotations belong in the declarations rather than the definitions.
    While harmless now, future versions of clang may warn about these.
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    8d7ec86 View commit details
    Browse the repository at this point in the history
  129. ci: clarify Cirrus self-hosted workers setup

    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    aea2424 View commit details
    Browse the repository at this point in the history
  130. assumeutxo: Check snapshot base block is not marked invalid

    Co-authored-by: Alfonso Roman Zubeldia <alfonsoromanz24@gmail.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b584f63 View commit details
    Browse the repository at this point in the history
  131. Configuration menu
    Copy the full SHA
    63bcc70 View commit details
    Browse the repository at this point in the history
  132. randomenv: use ifdef over if

    randomenv.cpp:48:5: warning: 'HAVE_VM_VM_PARAM_H' is not defined, evaluates to 0 [-Wundef]
    
    randomenv.cpp:51:5: warning: 'HAVE_SYS_RESOURCES_H' is not defined, evaluates to 0 [-Wundef]
    
    randomenv.cpp:424:5: error: 'HAVE_SYSCTL' is not defined, evaluates to 0 [-Werror,-Wundef]
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    dd42e03 View commit details
    Browse the repository at this point in the history
  133. zmq: use #ifdef ENABLE_ZMQ

    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    264e927 View commit details
    Browse the repository at this point in the history
  134. build: Suppress warnings from boost and capnproto in multiprocess code

    Without this change there are errors from boost like:
    
    /ci_container_base/depends/i686-pc-linux-gnu/include/boost/signals2/expired_slot.hpp:23:28: error: 'what' overrides a member function but is not marked 'override' [-Werror,-Wsuggest-override]
    /ci_container_base/depends/i686-pc-linux-gnu/include/boost/signals2/detail/signal_template.hpp:750:32: error: 'lock_pimpl' overrides a member function but is not marked 'override' [-Werror,-Wsuggest-override]
    /ci_container_base/depends/i686-pc-linux-gnu/include/boost/signals2/connection.hpp:150:22: error: 'connected' overrides a member function but is not marked 'override' [-Werror,-Wsuggest-override]
    
    There do not seem to be errors from capnproto currently, but add a suppression
    for it, too, to be consistent with other libraries.
    ryanofsky authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    f52c89f View commit details
    Browse the repository at this point in the history
  135. refactor: use #ifdef HAVE_SOCKADDR_UN

    ```bash
    init.cpp:526:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
      526 | #if HAVE_SOCKADDR_UN
          |     ^~~~~~~~~~~~~~~~
    init.cpp:541:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
      541 | #if HAVE_SOCKADDR_UN
          |     ^~~~~~~~~~~~~~~~
    init.cpp:1318:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
     1318 | #if HAVE_SOCKADDR_UN
    ```
    ```
    netbase.cpp:26:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
       26 | #if HAVE_SOCKADDR_UN
          |     ^~~~~~~~~~~~~~~~
    netbase.cpp:221:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
      221 | #if HAVE_SOCKADDR_UN
          |     ^~~~~~~~~~~~~~~~
    netbase.cpp:496:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
      496 | #if HAVE_SOCKADDR_UN
          |     ^~~~~~~~~~~~~~~~
    netbase.cpp:531:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
      531 | #if HAVE_SOCKADDR_UN
          |     ^~~~~~~~~~~~~~~~
    netbase.cpp:639:5: error: "HAVE_SOCKADDR_UN" is not defined, evaluates to 0 [-Werror=undef]
      639 | #if HAVE_SOCKADDR_UN
    ```
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    d329f90 View commit details
    Browse the repository at this point in the history
  136. build: add -Wundef

    "Warn if an undefined identifier is evaluated in an #if directive. Such
    identifiers are replaced with zero."
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b1894aa View commit details
    Browse the repository at this point in the history
  137. refactor, blockstorage: Generalize GetFirstStoredBlock

    GetFirstStoredBlock is generalized to check for any data status with a
    status mask that needs to be passed as a parameter. To reflect this the
    function is also renamed to GetFirstBlock.
    
    Co-authored-by: stickies-v <stickies-v@protonmail.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a45ec31 View commit details
    Browse the repository at this point in the history
  138. test: Check that disconnection happens when >4095 garbage bytes is sent

    This test type is represented using EXCESS_GARBAGE.
    stratospher authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    0ca0e50 View commit details
    Browse the repository at this point in the history
  139. test: Check that disconnection happens when wrong garbage terminator …

    …is sent
    
    This test type is represented using WRONG_GARBAGE_TERMINATOR.
    since the wrong garbage terminator is sent to TestNode, TestNode
    will interpret all of the gabage bytes, wrong garbage terminator,
    decoy messages and version packet it receives as garbage bytes.
    
    If the length of all these is more than 4095 + 16, it will result
    in a missing garbage terminator error. otherwise, it will result
    in a V2 handshake timeout error.
    
    Send only MAX_GARBAGE_LEN//2 bytes of garbage data to TestNode
    so that the total length received by the TestNode is at max
    = (MAX_GARBAGE_LEN//2) + 16 + 10*120 + 20 = 3283 bytes
    (which is less than 4095 + 16 bytes) and we get a consistent
    V2 handshake timeout error message.
    
    If we do not limit the garbage length sent, we will intermittently
    get both missing garbage terminator error and V2 handshake
    timeout error based on the garbage length and decoy packets length
    which are chosen at random.
    stratospher authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    5bbb82e View commit details
    Browse the repository at this point in the history
  140. test: Check that disconnection happens when garbage sent/received are…

    … different
    
    This test type is represented using WRONG_GARBAGE.
    Here, garbage bytes sent to TestNode are assumed to be tampered with and
    do not correspond to the garbage bytes which P2PInterface calculated and
    uses.
    stratospher authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    408800e View commit details
    Browse the repository at this point in the history
  141. test: Check that disconnection happens when AAD isn't filled

    This test type is represented using SEND_NO_AAD. If AAD of the first encrypted packet
    sent after the garbage terminator (optional decoy packet/version packet) hasn't been
    filled, disconnection happens.
    stratospher authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    88b7fe8 View commit details
    Browse the repository at this point in the history
  142. test: Check that non empty version packet is ignored and no disconnec…

    …tion happens
    
    This test type is represented using SEND_NON_EMPTY_VERSION_PACKET.
    stratospher authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    68cfbfd View commit details
    Browse the repository at this point in the history
  143. Configuration menu
    Copy the full SHA
    ff372c1 View commit details
    Browse the repository at this point in the history
  144. wallet: notify when preset + automatic inputs exceed max weight

    This also avoids signing all inputs prior to erroring out.
    furszy authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    6195aae View commit details
    Browse the repository at this point in the history
  145. Configuration menu
    Copy the full SHA
    9245213 View commit details
    Browse the repository at this point in the history
  146. Configuration menu
    Copy the full SHA
    f563b83 View commit details
    Browse the repository at this point in the history
  147. build: Drop redundant sys/sysctl.h header check

    The `AC_CHECK_HEADERS` macro defines `HAVE_SYS_SYSCTL_H` if the
    `sys/sysctl.h` header is found. However, in the source code, this header
    is guarded by `HAVE_SYSCTL` and `HAVE_SYSCTL_ARND` macros, which have
    their own checks. Since `HAVE_SYS_SYSCTL_H` is not used, we can skip the
    `AC_CHECK_HEADERS(... sys/sysctl.h ...)` check.
    hebasto authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    cafb5f6 View commit details
    Browse the repository at this point in the history
  148. Squashed 'src/secp256k1/' changes from 06bff6dec8..4af241b320

    4af241b320 Merge bitcoin-core/secp256k1#1535: build: Replace hardcoded "auto" value with default one
    f473c959f0 Merge bitcoin-core/secp256k1#1543: cmake: Do not modify build types when integrating by downstream project
    d403eea484 Merge bitcoin-core/secp256k1#1546: cmake: Rename `SECP256K1_LATE_CFLAGS` and switch to Bitcoin Core's approach
    d7ae25ce6f Merge bitcoin-core/secp256k1#1550: fix: typos in secp256k1.c
    0e2fadb20c fix: typos in secp256k1.c
    69b2192ad4 Merge bitcoin-core/secp256k1#1545: cmake: Do not set `CTEST_TEST_TARGET_ALIAS`
    5dd637f3cf Merge bitcoin-core/secp256k1#1548: README: mention ellswift module
    7454a53736 README: mention ellswift module
    4706be2cd0 cmake: Reimplement `SECP256K1_APPEND_CFLAGS` using Bitcoin Core approach
    c2764dbb99 cmake: Rename `SECP256K1_LATE_CFLAGS` to `SECP256K1_APPEND_CFLAGS`
    f87a3589f4 cmake: Do not set `CTEST_TEST_TARGET_ALIAS`
    158f9e5eae cmake: Do not modify build types when integrating by downstream project
    35c0fdc86b Merge bitcoin-core/secp256k1#1529: cmake: Fix cache issue when integrating by downstream project
    4392f0f717 Merge bitcoin-core/secp256k1#1533: tests: refactor: tidy up util functions (#1491)
    bedffd53d8 Merge bitcoin-core/secp256k1#1488: ci: Add native macOS arm64 job
    4b8d5eeacf Merge bitcoin-core/secp256k1#1532: cmake: Disable eager MSan in ctime_tests
    f55703ba49 autotools: Delete unneeded compiler test
    396e885886 autotools: Align MSan checking code with CMake's implementation
    abde59f52d cmake: Report more compiler details in summary
    7abf979a43 cmake: Disable `ctime_tests` if build with `-fsanitize=memory`
    4d9645bee0 cmake: Remove "AUTO" value of `SECP256K1_ECMULT_GEN_KB` option
    a06805ee74 cmake: Remove "AUTO" value of `SECP256K1_ECMULT_WINDOW_SIZE` option
    1791f6fce4 Merge bitcoin-core/secp256k1#1517: autotools: Disable eager MSan in ctime_tests
    26b94ee92a autotools: Remove "auto" value of `--with-ecmult-gen-kb` option
    122dbaeb37 autotools: Remove "auto" value of `--with-ecmult-window` option
    e73f6f8fd9 tests: refactor: drop `secp256k1_` prefix from testrand.h functions
    0ee7453a99 tests: refactor: add `testutil_` prefix to testutil.h functions
    0c6bc76dcd tests: refactor: move `random_` helpers from tests.c to testutil.h
    0fef8479be tests: refactor: rename `random_field_element_magnitude` -> `random_fe_magnitude`
    59db007f0f tests: refactor: rename `random_group_element_...` -> `random_ge_...`
    ebfb82ee2f ci: Add job with -fsanitize-memory-param-retval
    e1bef0961c configure: Move "experimental" warning to bottom
    55e5d975db autotools: Disable eager MSan in ctime_tests
    ec4c002faa cmake: Simplify `PROJECT_IS_TOP_LEVEL` emulation
    cae9a7ad14 cmake: Do not set emulated PROJECT_IS_TOP_LEVEL as cache variable
    218f0cc93b ci: Add native macOS arm64 job
    
    git-subtree-dir: src/secp256k1
    git-subtree-split: 4af241b32099067464e015fa66daac5096206dea
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    411aef6 View commit details
    Browse the repository at this point in the history
  149. depends: switch libevent to CMake

    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a273890 View commit details
    Browse the repository at this point in the history
  150. depends: update doc in Qt pwd patch

    Now that upstream has gotten around to fixing this. We don't need any
    more of the patch, and it likely wont apply to our version of Qt in any
    case. See:
    qt/qtbase@3388de6.
    fanquake authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    abc08c7 View commit details
    Browse the repository at this point in the history
  151. contrib: Fixup verify-binaries OS platform parsing

    Parse platform strings with "-" or '.' correctly such as "linux-gnu" or
    "x86_64-linux-gnu.tar.gz" to download the matching files or file. String
    partition() is used to tolerate more dashes. Update `VERSION_EXAMPLE`
    with a new string parsed correctly now. Fix "-aarch64" interpreted as a
    release candidate due to sub-string "rc", causing all downloads to fail.
    Now "rc" must immediately follow first "-" to indicate an [-rc] string.
    Local variables `version_rc`, `version_os` renamed to `rc`, `platform`.
    If "-rcN" is specified, `platform` is reassigned to remove the '-rcN'.
    
    Changes are useful to only download one bitcoin core binary on slow
    connections. Making `verify.py pub` more intuitive, robust, and
    versatile. Closes #30145
    
    When user types a platform string not found in any filename lets help
    and say the platform closest to what they typed in a `f"No files
    matched the platform specified. Did you mean: {closest_match}"` log.
    Improves UX when unaware how we name our files.
    Uses the difflib Python built-in which was already imported elsewhere.
    
    Update test.py to test single file verification
    verify-binaries/verify.py can accept an entire filename filter for its
    "-platform" parameter now so let us test that it succeeds and downloads
    and verifies only one file. `verify.py pub 22.0-x86_64-linux-gnu.tar.gz`
    should get and verify only the requested binary. It is placed before the
    existing <version> wide verification as it is a faster test and possibly
    easier to break.
    
    Update doc with examples now possible after bugfix
    Add example to show release candidates now work with "-platform" strings
    containing "-" and string provided can be from the middle of filename:
    `./contrib/verify-binaries/verify.py --json pub 23.0-rc5-linux-gnu`
    Change example 5 to not match example 3.
    New examples to show platform can now be provided specifically enough to
    download only a single binary down to its file extension:
    `./contrib/verify-binaries/verify.py pub 25.2-x86_64-linux`
    `./contrib/verify-binaries/verify.py pub 24.1-rc1-darwin`
    `./contrib/verify-binaries/verify.py pub 27.0-win64-setup.exe`
    This is the most common use if not verifying all files so users see it
    as the first example for "only download the binaries for a certain
    architecture and/or platform". Downloading one file is intuitively what
    most will think this meant and this change delivers on that expectation.
    
    Co-authored-by: stickies-v
    BenWestgate authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    d10bfd3 View commit details
    Browse the repository at this point in the history
  152. ci: test-each-commit merge base optional

    The ci "test-each-commit" job fetches the PR branch being tested with a depth of (# of commits in PR + 2), and then tries to run tests on commits after the most recent merge commit.
    
    When a PR is opened against a bitcoin core branch, a merge commit is always guaranteed to exist within the fetch depth, because bitcoin core branches always point at merge commits.
    
    However, in fork repositories, pull requests can be opened based on other branches that don't contain recent merge commits, and this will currently cause git rev-list to fail with fatal: bad revision '^^@'.
    
    Work around this problem by not requiring a recent merge commit, and just testing on all fetched commits if a merge commit can't be found.
    
    Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    4d41d33 View commit details
    Browse the repository at this point in the history
  153. Configuration menu
    Copy the full SHA
    187ea2b View commit details
    Browse the repository at this point in the history
  154. rest: don't copy data when sending binary response

    Also, change `HTTPRequest::WriteReply` to accept `std::span`.
    romanz authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    706e895 View commit details
    Browse the repository at this point in the history
  155. Configuration menu
    Copy the full SHA
    90d44e7 View commit details
    Browse the repository at this point in the history
  156. Configuration menu
    Copy the full SHA
    2ed43f2 View commit details
    Browse the repository at this point in the history
  157. Add missing include for mining interface

    Needed for std::unique_ptr
    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    28e1c1e View commit details
    Browse the repository at this point in the history
  158. Configuration menu
    Copy the full SHA
    86ebe43 View commit details
    Browse the repository at this point in the history
  159. build: Bump clang minimum supported version to 16

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    eb9c592 View commit details
    Browse the repository at this point in the history
  160. fuzz: Clarify Apple-Clang-16 workaround

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    b94f8e3 View commit details
    Browse the repository at this point in the history
  161. refactor: Remove no longer needed clang-15 workaround for std::span

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    853b374 View commit details
    Browse the repository at this point in the history
  162. kernel: remove mempool_persist.cpp

    DumpMempool/LoadMempool are not necessary for the kernel
    theuni authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    0daf449 View commit details
    Browse the repository at this point in the history
  163. Change MigrateLegacyToDescriptor to reopen wallet as BERKELEY_RO

    When we reopen the wallet to do the migration, instead of opening using
    BDB, open it using the BerkeleyRO implementation.
    achow101 authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    43f856f View commit details
    Browse the repository at this point in the history
  164. Configuration menu
    Copy the full SHA
    9ecf2e8 View commit details
    Browse the repository at this point in the history
  165. Drop unneeded lock from createNewBlock

    This was added in 4bf2e361da1964f7c278b4939967a0e5afde20b0, but
    BlockAssembler::CreateNewBlock already locks cs_main internally.
    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    3c3e76a View commit details
    Browse the repository at this point in the history
  166. Configuration menu
    Copy the full SHA
    c180e8c View commit details
    Browse the repository at this point in the history
  167. Have testBlockValidity hold cs_main instead of caller

    The goal of interfaces is to eventually run in their own process,
    so we can't use EXCLUSIVE_LOCKS_REQUIRED in their declaration.
    
    However TestBlockValidaty will crash (in its call to ConnectBlock)
    if the tip changes from under the proposed block.
    
    Have the testBlockValidity implementation  hold the lock instead,
    and non-fatally check for this condition.
    Sjors authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    42cbf2d View commit details
    Browse the repository at this point in the history
  168. util: add perm string helper functions

    PermsToSymbolicString will convert from fs::perms to string type
    'rwxrwxrwx'.
    
    InterpretPermString will convert from a user-supplied "perm string" such
    as 'owner', 'group' or 'all, into appropriate fs::perms.
    willcl-ark authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    08ceca4 View commit details
    Browse the repository at this point in the history
  169. init: add option for rpccookie permissions

    Add a bitcoind launch option `-rpccookieperms` to configure the file
    permissions of the cookie on Unix systems.
    willcl-ark authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    0b84337 View commit details
    Browse the repository at this point in the history
  170. test: add rpccookieperms test

    Tests various perms on non-Windows OSes
    willcl-ark authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    4a461be View commit details
    Browse the repository at this point in the history
  171. doc: detail -rpccookieperms option

    Co-authored-by: tdb3 <106488469+tdb3@users.noreply.github.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    82e0022 View commit details
    Browse the repository at this point in the history
  172. Configuration menu
    Copy the full SHA
    63abb56 View commit details
    Browse the repository at this point in the history
  173. doc: Fix outdated dev comment about logging

    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    a6d255b View commit details
    Browse the repository at this point in the history
  174. scripted-diff: Log parameter interaction not thrice

    -BEGIN VERIFY SCRIPT-
     sed -i 's/LogPrintf("%s: \(parameter interaction: .*\)", __func__/LogInfo("\1"/g' ./src/init.cpp
    -END VERIFY SCRIPT-
    MarcoFalke authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9031387 View commit details
    Browse the repository at this point in the history
  175. test: p2p: check that connecting to ourself leads to disconnect

    The "connect to ourself" detection logic has been first introduced
    by Satoshi in October 2009, together with a couple of other changes
    and a version bump to "v0.1.6 BETA" (see commit
    cc0b4c3b62367a2aebe5fc1f4d0ed4b97e9c2ac9).
    theStack authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    db2ac66 View commit details
    Browse the repository at this point in the history
  176. p2p: Start downloading historical blocks from common ancestor

    Otherwise, if the background tip is not an ancestor of the snapshot, blocks in between that ancestor up to the height of the background tip will never be requested.
    
    Co-authored-by: Martin Zumsande <mzumsande@gmail.com>
    Co-authored-by: Alfonso Roman Zubeldia <19962151+alfonsoromanz@users.noreply.github.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    64cf766 View commit details
    Browse the repository at this point in the history
  177. Configuration menu
    Copy the full SHA
    2302098 View commit details
    Browse the repository at this point in the history
  178. Moved the repeated -printpriority fetching out of AddToBlock

    AddToBlock was called repeatedly from `addPackageTxs` where the constant value of `printpriority` is recalculated every time.
    Since its behavior was changed in 400b151, I've named the variable accordingly.
    
    This showed up during profiling of AssembleBlock, fetching it once in the constructor results in a measurable speed increase for many iterations.
    
    > ./src/bench/bench_bitcoin --filter='AssembleBlock' --min-time=1000
    
    before:
    |               ns/op |                op/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |          155,558.97 |            6,428.43 |    0.1% |      1.10 | `AssembleBlock`
    
    after:
    |               ns/op |                op/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |          148,083.68 |            6,752.94 |    0.1% |      1.10 | `AssembleBlock`
    
    Co-authored-by: furszy <mfurszy@protonmail.com>
    2 people authored and janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9e35ff2 View commit details
    Browse the repository at this point in the history
  179. Update files

    janus committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    4621522 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2024

  1. Update test/functional

    wu-emma committed Aug 4, 2024
    Configuration menu
    Copy the full SHA
    6103478 View commit details
    Browse the repository at this point in the history
  2. Update README.md

    wu-emma committed Aug 4, 2024
    Configuration menu
    Copy the full SHA
    8e03ec1 View commit details
    Browse the repository at this point in the history
  3. Update version

    wu-emma committed Aug 4, 2024
    Configuration menu
    Copy the full SHA
    138cd95 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b841bf4 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. functional/rpc_psbt.py fix

    janus committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    455292a View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2024

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

Commits on Aug 18, 2024

  1. Update test/functional

    wu-emma committed Aug 18, 2024
    Configuration menu
    Copy the full SHA
    b2b18d5 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2024

  1. Configuration menu
    Copy the full SHA
    bd3d205 View commit details
    Browse the repository at this point in the history
  2. Update mocks/signer.py

    janus committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    3af2932 View commit details
    Browse the repository at this point in the history
  3. Update mocks/invalid_signer.py

    janus committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    b38353a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2f9dea4 View commit details
    Browse the repository at this point in the history
  5. Update files

    janus committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    e5d9e95 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2024

  1. add windows build changes

    VanOrton committed Aug 26, 2024
    Configuration menu
    Copy the full SHA
    425d055 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #137 from BitgesellOfficial/release-0.1.13-winpatch

    add windows build changes
    wu-emma authored Aug 26, 2024
    Configuration menu
    Copy the full SHA
    77d9ab3 View commit details
    Browse the repository at this point in the history
  3. fix minor typo in README.md

    (cherry picked from commit 75f4daa)
    naftalimurgor authored and wu-emma committed Aug 26, 2024
    Configuration menu
    Copy the full SHA
    625d8a1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2f7d635 View commit details
    Browse the repository at this point in the history