9077f214f55386af12419235deaff52b23446856 depends: fix unusable memory_resource in macos qt build (fanquake)
dccacf0bf7d5815036c64d4c040b5702ad890cd8 build, macos: Fix `qt` package build with new Xcode 15 linker (Hennadii Stepanov)
43596499b2c2b8cc0a51c0b9db9153047c266627 ci: Switch to `amd64` container in "ARM" task (Hennadii Stepanov)
805f98b79aa9e5ecda70516578296bd0a065a707 ci: Nuke Android APK task, Use credits for tsan (MarcoFalke)
cb5512da2336c9145a670c287f1abecc372906b9 test: ensure old fee_estimate.dat not read on restart and flushed (ismaelsadeeq)
01f8ee48efc1f46563f2841c0a7125b20b0df159 tx fees, policy: read stale fee estimates with a regtest-only option (ismaelsadeeq)
1c98029b3913a99e7bfe563d8ded2a5074e75fa1 tx fees, policy: do not read estimates of old fee_estimates.dat (ismaelsadeeq)
77979e0172d0bc86bfbc60f6a652e26c77722e29 tx fees, policy: periodically flush fee estimates to fee_estimates.dat (ismaelsadeeq)
67b6d99aead0d1b2030bc3e88256d279477894b5 Do not use std::vector = {} to release memory (Pieter Wuille)
defdc1502372863f700720e8d5cde69190371a64 ci: Use podman stop over podman kill (MarcoFalke)
7f1357de5136bd6f80758f1f31e6dba21acb9954 ci: Use podman for persistent workers (MarcoFalke)
0db69a3d500020e11fd67c55732e0d02eb606204 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN (MarcoFalke)
Pull request description:
Backports to the 24.x branch. Currently:
* https://github.com/bitcoin/bitcoin/pull/27622
* https://github.com/bitcoin/bitcoin/pull/27777
* https://github.com/bitcoin/bitcoin/pull/27834
* https://github.com/bitcoin/bitcoin/pull/27844
* https://github.com/bitcoin/bitcoin/pull/27886
* https://github.com/bitcoin/bitcoin/pull/28452
* https://github.com/bitcoin/bitcoin/pull/28543
* https://github.com/bitcoin/bitcoin/pull/28571
ACKs for top commit:
stickies-v:
ACK 9077f214f5
Tree-SHA512: abaafc9a048b67b494993134fd332457ea52695ec007b963c283f962ec40c3b6b3a7e98407481be55d3271a595088a0281cc84b79dad4f24d260381ea0153076
Bitcoin Core integration/staging tree
For an immediately usable, binary version of the Bitcoin Core software, see https://bitcoincore.org/en/download/.
What is Bitcoin Core?
Bitcoin Core connects to the Bitcoin peer-to-peer network to download and fully validate blocks and transactions. It also includes a wallet and graphical user interface, which can be optionally built.
Further information about Bitcoin Core is available in the doc folder.
License
Bitcoin Core is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.
Development Process
The master branch is regularly built (see doc/build-*.md for instructions) and tested, but it is not guaranteed to be
completely stable. Tags are created
regularly from release branches to indicate new official, stable release versions of Bitcoin Core.
The https://github.com/bitcoin-core/gui repository is used exclusively for the development of the GUI. Its master branch is identical in all monotree repositories. Release branches and tags do not exist, so please do not fork that repository unless it is for development reasons.
The contribution workflow is described in CONTRIBUTING.md and useful hints for developers can be found in doc/developer-notes.md.
Testing
Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people lots of money.
Automated Testing
Developers are strongly encouraged to write unit tests for new code, and to
submit new unit tests for old code. Unit tests can be compiled and run
(assuming they weren't disabled in configure) with: make check. Further details on running
and extending unit tests can be found in /src/test/README.md.
There are also regression and integration tests, written
in Python.
These tests can be run (if the test dependencies are installed) with: test/functional/test_runner.py
The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS, and that unit/sanity tests are run automatically.
Manual Quality Assurance (QA) Testing
Changes should be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. It is useful to add a test plan to the pull request description if testing the changes is not straightforward.
Translations
Changes to translations as well as new translations can be submitted to Bitcoin Core's Transifex page.
Translations are periodically pulled from Transifex and merged into the git repository. See the translation process for details on how this works.
Important: We do not accept translation changes as GitHub pull requests because the next pull from Transifex would automatically overwrite them again.