5750355139eb7fc2bd11124adf46bf053be6b690 ci: link against -lstdc++ in native fuzz with msan job (fanquake) 78d93effd03278b46e21ae8ef79f61f4ec32f855 ci: Checkout latest merged pulls (MarcoFalke) 4a034cbeb42763c6b7a82089973c4a30cb0cd1c4 ci: reduce runner sizes on various jobs (will) 6ded1fe11752372c52169d2aec7f0658bf9b0455 ci: remove un-needed lint_run*.sh files (willcl-ark) 4e8b64b181e1bb7d82789699eaac24dc1242afa3 ci: fix annoying docker warning (will) 773e4cda9446a03c0b23468ef8a9e38496b4566b ci: add ccache hit-rate warning when < 75% (will) 4339787379d2d246846e60f10ab9582805a6845e doc: Detail configuration of hosted CI runners (will) c7f290b826fc4928c6e1e0a9649da85d4752717b ci: dynamically match makejobs with cores (will) a08c3cc51c6875ba67f25c85143fdb61a8ba3e03 ci: remove .cirrus.yml (will) 06424fb004f916b06e4f0ab90fd6f7623049a360 ci: port lint (will) 0f0378fe3c590e835aa30be092f37109ddd63b86 ci: port msan-depends (will) 643385b22d9908f7665bf2addc734ba0323967b0 ci: port tsan-depends (will) 3b2dcc8b9aea8706a25690a0cd08ba60896d3542 ci: port tidy (will) b4286cf354a8111ed54fb63547dc1a7be7257b92 ci: port centos-depends-gui (will) 5057b9a6ffd360dbd96ad8585e10852961392361 ci: port previous-releases-depends-debug (will) 85ec6c6882b40adb35c9cb88d37d22e3e58eaa68 ci: port fuzzer-address-undefined-integer-nodepends (will) 544f902b2a9cf14cd0445f27802cd11c5c945b00 ci: port i686-multiprocess-DEBUG (will) e826c3daa55d3b4cbd0e2c13765f9158eb225bfd ci: port nowallet-libbitcoinkernel (will) 835b5b8bb18a318026ada74d3c63b89d6aab742b ci: port mac-cross-gui-notests (will) a91567a980adb93a05f12ec63b628ee3faaa4681 ci: force reinstall of kernel headers in asan (will) 819ee09af31687dedd38de68aef98b0ecc19608f ci: update asan-lsan-ubsan (will) 894a3cbe42bf900788b858faf59b3d97412e7d47 ci: update windows-cross job (will) 82c60a31515a2004976faaa26f8caad9e2bb022d ci: port arm 32-bit job (will) 849993377d76c64cc5ea14336e6523434608deb3 ci: add job to determine runner type (will) f9f3e8b68616dfb9e18082d191b87a457c4100da ci: add Cirrus cache host (will) af086431e86c82a5e40b05270f39c70cfe413c7b ci: have base install run in right dir (will) 0a649d07c994b1a6957131c8bb3a1d2e8d53e559 ci: use docker build cache arg directly (will) f3089fb2cfdba533fba1298e909628e5fe7dabb9 ci: use buildx in ci (will) 1faf918a169b76e69a486eb7fc8d88429b77b4b6 ci: add configure-docker action (will) 954c1a55e4a6322267071f5bffeb3188a6ac7d59 ci: add REPO_USE_CIRRUS_RUNNERS (will) 301aa5d814b620287b65d93399a20a794659cc79 ci: add caching actions (will) f63b8e960d5d06cdbbc360aaf781c13fd5aca172 ci: add configure environment action (will) Pull request description: Backports #32989 to the 29.x branch ACKs for top commit: m3dwards: ACK 5750355139eb7fc2bd11124adf46bf053be6b690 Tree-SHA512: c0509903043acd1c1e62f6382d9373a5c7a51377a76cbe6ea0cacf83cb03b10e658b8fd0dc2080acb9d6361f0a7883feb0134acd9bc53d164561364d42e111e7
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 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 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.