31ca698f20Disallow encryption of watchonly wallets (Andrew Chow)da9578da80build, qt: bump Qt5 version to 5.15.3 (Pavol Rusnak) Pull request description: Backports: -ef20add4c9from bitcoin/bitcoin#24668 to address bitcoin/bitcoin#24939 and bitcoin-core/gui#638 - bitcoin-core/gui#631 Guix builds on `x86_64`: ``` 773f3555a1c6179d35a7a0b3971ced8eaf5a5e4bef5c08313216509506fe618d guix-build-31ca698f2017/output/aarch64-linux-gnu/SHA256SUMS.part ef3977b92daabffc2d153e15963a5703839bc04250d2784bc00dc1104112e79e guix-build-31ca698f2017/output/aarch64-linux-gnu/bitcoin-31ca698f2017-aarch64-linux-gnu-debug.tar.gz 65b2351c61d226a8b10fda36cc963fda1f5fb89ea6b463d7351fdcd67bd57c3e guix-build-31ca698f2017/output/aarch64-linux-gnu/bitcoin-31ca698f2017-aarch64-linux-gnu.tar.gz 41c3489300f81f714033aa45ca3a807c5005be0625ebf58234fd89f3cdc65a1d guix-build-31ca698f2017/output/arm-linux-gnueabihf/SHA256SUMS.part 45e6e4c9e2e35430c41bca6df36d5ed2f9a857934da46bfd920a499e03bddb61 guix-build-31ca698f2017/output/arm-linux-gnueabihf/bitcoin-31ca698f2017-arm-linux-gnueabihf-debug.tar.gz cf08e2a62c5a9bfdeaeee6ce69263dde8b56033aab650bb9ffafe8e9b9241519 guix-build-31ca698f2017/output/arm-linux-gnueabihf/bitcoin-31ca698f2017-arm-linux-gnueabihf.tar.gz 7d1f3e185fbb6843a1b5c47f7ff2a4452aa4a1f533bd7171f7fc8a13e65fde53 guix-build-31ca698f2017/output/arm64-apple-darwin/SHA256SUMS.part 6395ee2e17fd5a8891fc70d97e7d75810d677293b6ad8581334b2e289024210d guix-build-31ca698f2017/output/arm64-apple-darwin/bitcoin-31ca698f2017-arm64-apple-darwin-unsigned.dmg 1658de08323b366f0f39e9ed02d68072ee3bef2db2252235e71d8fd206b4e609 guix-build-31ca698f2017/output/arm64-apple-darwin/bitcoin-31ca698f2017-arm64-apple-darwin-unsigned.tar.gz c4fdf8d5563bdfc0390dec7adce2a0608f8e5b8d0d82b648ef38aed8ab72d996 guix-build-31ca698f2017/output/arm64-apple-darwin/bitcoin-31ca698f2017-arm64-apple-darwin.tar.gz 709470d5d1a4a44022cd3e7b162c8cf6c492c6bb9996eb31f12a121351ad081f guix-build-31ca698f2017/output/dist-archive/bitcoin-31ca698f2017.tar.gz 6f809a8bdd10fc62143b5d265ea9c2eae37a1b18cf573d4a3743b2b026c0d038 guix-build-31ca698f2017/output/powerpc64-linux-gnu/SHA256SUMS.part ff2f87a29f7581d9ce1fccb8749f4473d03532de2194373de0fcdcd3bf0d380a guix-build-31ca698f2017/output/powerpc64-linux-gnu/bitcoin-31ca698f2017-powerpc64-linux-gnu-debug.tar.gz ab5ec4203ff59c0d4885f5df1c91191a03a3c104ed8ca0e98e19f531914cd2ad guix-build-31ca698f2017/output/powerpc64-linux-gnu/bitcoin-31ca698f2017-powerpc64-linux-gnu.tar.gz beb0ed7d9940718351301cb27dda1ae7891092c85664e2f9473e81c02479c951 guix-build-31ca698f2017/output/powerpc64le-linux-gnu/SHA256SUMS.part 286121e5698b726abbfc24d972c00d9f16f6d841fab245980a376a51e8dd85bc guix-build-31ca698f2017/output/powerpc64le-linux-gnu/bitcoin-31ca698f2017-powerpc64le-linux-gnu-debug.tar.gz 04a12dfe6a036477d212877f301ee425dcf063abf0fd892b8fbc0497ee5612fc guix-build-31ca698f2017/output/powerpc64le-linux-gnu/bitcoin-31ca698f2017-powerpc64le-linux-gnu.tar.gz d229041d43c40a49bbebcb5b0700c540456e058e0cb7be0d3ac414a80018e4f9 guix-build-31ca698f2017/output/riscv64-linux-gnu/SHA256SUMS.part 981268b93caaf1c450f1f3cec4d70efd2b4779e17917a4ab424447743628519e guix-build-31ca698f2017/output/riscv64-linux-gnu/bitcoin-31ca698f2017-riscv64-linux-gnu-debug.tar.gz acfef50476d9141ec29855216e60974d6307307a02784e7217942ee281d69c76 guix-build-31ca698f2017/output/riscv64-linux-gnu/bitcoin-31ca698f2017-riscv64-linux-gnu.tar.gz 5482b0c34069be1e40a96a173f984c67eb983860a4f5f4d9d927638caf72eed5 guix-build-31ca698f2017/output/x86_64-apple-darwin/SHA256SUMS.part fe4847edbc3ad1c747663a67f0daf2ed8b38818d1d1960617d85c851b0dded2f guix-build-31ca698f2017/output/x86_64-apple-darwin/bitcoin-31ca698f2017-x86_64-apple-darwin-unsigned.dmg 2b1899804035508f90eef57e1f068120509e7680877c8ae6cb5cb5beed84607c guix-build-31ca698f2017/output/x86_64-apple-darwin/bitcoin-31ca698f2017-x86_64-apple-darwin-unsigned.tar.gz 7a82ab62d1db4141b13ac566bc985eca5fa1da982be29427dd74f7098059932c guix-build-31ca698f2017/output/x86_64-apple-darwin/bitcoin-31ca698f2017-x86_64-apple-darwin.tar.gz 3e943a6e11930ac1dcd7339bcdfbcf310b09f03d1e2544fce314e656b3552b7a guix-build-31ca698f2017/output/x86_64-linux-gnu/SHA256SUMS.part 0e0155ce76ffe8af19a74ecb74b813ce7ca4817bf3535a2b5813ae9e229804dc guix-build-31ca698f2017/output/x86_64-linux-gnu/bitcoin-31ca698f2017-x86_64-linux-gnu-debug.tar.gz b66f9a25e963db98b3b8eed79e6d280d0ae7902d1f7e2cdee8481bacfc94ed96 guix-build-31ca698f2017/output/x86_64-linux-gnu/bitcoin-31ca698f2017-x86_64-linux-gnu.tar.gz bdc9cdd0ba739c3aba3d355f6e9ea88af99b09dd666cf40c7986212b355d2a09 guix-build-31ca698f2017/output/x86_64-w64-mingw32/SHA256SUMS.part 815d4b70b257932a3e32e14d8bb53960efd5e71500e7349ac53d13303f4b5335 guix-build-31ca698f2017/output/x86_64-w64-mingw32/bitcoin-31ca698f2017-win64-debug.zip 4b248df85b0b5de00631756839bc53e9e64c764b4da900afad34f871e2afe995 guix-build-31ca698f2017/output/x86_64-w64-mingw32/bitcoin-31ca698f2017-win64-setup-unsigned.exe b26008ed9fa0db1d32220087c2f0828788f0f9f784c981622f5e76c63c98fb9a guix-build-31ca698f2017/output/x86_64-w64-mingw32/bitcoin-31ca698f2017-win64-unsigned.tar.gz 4dd03a68ac2d742681d6b8c42b15e6f9d4ce46084ff18ebb0f1313109a867205 guix-build-31ca698f2017/output/x86_64-w64-mingw32/bitcoin-31ca698f2017-win64.zip ``` ACKs for top commit: jarolrod: ACK31ca698f20Tree-SHA512: 596c2979e070d3574c744ac89961ba157e9e01c2e1a3ce7d33cc369ad2cf1c2e16aa23209b382667dbd100545b5c17530771855b380eeb7345deebfa695a3be6
Bitcoin Core integration/staging tree
For an immediately usable, binary version of the Bitcoin Core software, see https://bitcoincore.org/en/download/.
Further information about Bitcoin Core is available in the doc folder.
What is Bitcoin?
Bitcoin is an experimental digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Bitcoin Core is the name of open source software which enables the use of this currency.
For more information read the original Bitcoin whitepaper.
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.