fdaf6565a974fb65a290618b0f3b0f5268481795 doc: update release notes for v30.x (fanquake) 0202ae341f8d23f3dfa1054f86783162d53b925b doc: Update Guix install for Debian/Ubuntu (MarcoFalke) 2d035b1d4f277ab91a773d40d9ad7db135b9638a guix: use a temporary file over sponge (fanquake) dca7700269bd4be3d6688fae0522a37fc6c9b01e test: valgrind --trace-children=yes for bitcoin wrapper (MarcoFalke) dd8924909a5bbc4698624b8e0f3b7c083e2e54a0 test: Remove redundant warning about missing binaries (MarcoFalke) 6993b1be781d32a908128a954ad076e8bb5dde3f test: Fix broken --valgrind handling after bitcoin wrapper (MarcoFalke) d54d7dfe9ff07b10c9cb206c4a10bf701aebda0c wallet: rpc: manpage: fix example missing `fee_rate` argument (SomberNight) 412725b7a34ecf7cec767686dbb6948646354aae net: reduce log level for PCP/NAT-PMP NOT_AUTHORIZED failures (ANAVHEOBA) 85f8d28fac057fb3458e6478569853d7bdd1167d build: avoid exporting secp256k1 symbols (Cory Fields) b7a182c7494ef58560853e88a00297c927594453 doc: fix broken bpftrace installation link (jayvaliya) 1a757af7ea7455197324773c5e33d76f22053771 ci: Print verbose build error message in test-each-commit (MarcoFalke) f5d4dc941964dda09ec4695db95a5378b2c8b2d3 ci: [refactor] Allow overwriting check option in run helper (MarcoFalke) 7317a0ba1f6561ff0a4d9e1ff5eec2adaf76e085 ci: Always print low ccache hit rate notice (MarcoFalke) 0a768d4a5a89e2c1b31e7b9d4187d187bb5f3795 fuzz: Use `__AFL_SHM_ID` for naming test directories (marcofleon) 48749cf4c7cd39ebb48c9ad81069aba15bd27807 miniscript: correct and_v() properties (Antoine Poinsot) 19b3e2e50e84d7d034b1750bc1402e40dc5351d0 test: use ModuleNotFoundError in interface_ipc.py (fanquake) Pull request description: Backports: * #34409 * #34434 * #34445 * #34453 * #34461 * #34510 * #34549 * #34554 * #34561 * #34608 * #34627 * #34671 ACKs for top commit: willcl-ark: ACK fdaf6565a974fb65a290618b0f3b0f5268481795 marcofleon: lgtm ACK fdaf6565a974fb65a290618b0f3b0f5268481795 Tree-SHA512: dc0ca9a6298519e1dc69d37985f82d87765b6857b491285e3ff77eac5870bf72c662f18ab90b35d3df595dc75f9b0762299259e53588efb7f4994797fdd07213
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/license/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 during the generation of the build system) with: ctest. 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: build/test/functional/test_runner.py
(assuming build is your build directory).
The CI (Continuous Integration) systems make sure that every pull request is tested on Windows, Linux, and macOS. The CI must pass on all commits before merge to avoid unrelated CI failures on new pull requests.
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.