laanwj 0dd3477333
Merge bitcoin/bitcoin#25458: guix: parallelize LIEF build
8d25926643cb84805bf3a9fbb289b269198898a8 guix: parallelize LIEF build (fanquake)

Pull request description:

  Even though it's (re)built infrequently, the LIEF build currently runs with a single job, and thus takes much longer to build than it should. This change modifies our packge so that the cmake invocation is done with multiple jobs, using [`parallel-job-count`](https://git.savannah.gnu.org/cgit/guix.git/tree/build-aux/compile-all.scm#n49). On a 6 core arm64 machine, this results in a ~80% speed up, and reduces the time taken to build the LIEF packge from ~19m to ~4m.

  Guix Build (x86_64):
  ```bash
  ba12c164915ec3f5bd916c99f75e074b935028acc7b65914d109b19caf8f86e7  guix-build-8d25926643cb/output/aarch64-linux-gnu/SHA256SUMS.part
  09d062446d8e8edd1c312da83d8fb1a4998880b028afe0bef40336bc0971358f  guix-build-8d25926643cb/output/aarch64-linux-gnu/bitcoin-8d25926643cb-aarch64-linux-gnu-debug.tar.gz
  74f1dad26cca571ee4eafba70537067be610059f770408460ae0216fd2fa4f7f  guix-build-8d25926643cb/output/aarch64-linux-gnu/bitcoin-8d25926643cb-aarch64-linux-gnu.tar.gz
  900e37dd5216f06b6e32af065336a6d1aff2fead13b3394fa521401eefa5b388  guix-build-8d25926643cb/output/arm-linux-gnueabihf/SHA256SUMS.part
  4c8361225f9408cd44e08421ba39a13758bbba2159a4c3f1a5562e83175904af  guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf-debug.tar.gz
  4780381b4e51ed99f6967975291703584e71dd2a22ea6bc77716d597f09bdbdd  guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf.tar.gz
  46e178b38ca9a47ebcd4dd3d037f08c49bf79faf09c032e3a0ec99974bc47bcd  guix-build-8d25926643cb/output/arm64-apple-darwin/SHA256SUMS.part
  e44a9fa027b912a13ceb12708eaf864f5fed896887de8ec157c9c3bba24f9d64  guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.dmg
  82bd6c2995f1c707b0204c618f7f16a90a80b5378a856cb287bad4cdf2191467  guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.tar.gz
  9b28de51d7adea26ffae22f9a4db517643297aeab24467efe4916088fda496d0  guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin.tar.gz
  71d86ffaf1b54b1dfb0ee6a978c2d3c800742d82a7845967becdd88b1ba4cbf4  guix-build-8d25926643cb/output/dist-archive/bitcoin-8d25926643cb.tar.gz
  9c19a5dd32586fa1a3e82a1d7882ac248dc4bd7fe525c0282b245f04d9618e4b  guix-build-8d25926643cb/output/powerpc64-linux-gnu/SHA256SUMS.part
  a091e4dce267164a757067c279d7df609b112867944a3689fbd9b6fefa9dcd40  guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu-debug.tar.gz
  195c8d6596acfe78f1f250b4ec8598c9b8c1e3420b96b8dd16529f194f4f5602  guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu.tar.gz
  78fe3b028498818532ce2120d7262ddddd2533ee58d3d04fc7908d2a3384eac9  guix-build-8d25926643cb/output/powerpc64le-linux-gnu/SHA256SUMS.part
  52fba781d6637751500febb1470dd653933da2cf8f7ae052416438a80a925d7a  guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu-debug.tar.gz
  4cb12dce174a58ccb46381efcfc27f9d49ea275cfbda68f334a73c2fa92fe18e  guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu.tar.gz
  c8f5eb94bbf9577f59ae2a679e6807ba65380356656cc335d1e13390e17878bc  guix-build-8d25926643cb/output/riscv64-linux-gnu/SHA256SUMS.part
  97e28f9033341f08ab16a4116d593fb4b63da8838da62af49f64f9d6f26b8276  guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu-debug.tar.gz
  1fb6c289347fbc6c13a7eb189b2a1bdf84c94b16f38dd786bdcc2a8ee0b6d136  guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu.tar.gz
  1080f0e8e6ee9aff33b47fe90f3f55df368cd3b464bc60eebc1e0092a37bc957  guix-build-8d25926643cb/output/x86_64-apple-darwin/SHA256SUMS.part
  7cd7d4b68e2ec47bcec035b77c956a832453ac1589c7f552285623f5ea84a354  guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.dmg
  9283cfe406694d7f1edc78acaddd817aebb7f2c7397b21687e4410ab71078773  guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.tar.gz
  e96b0ad265db5f990c087bc857272c7d6ede32cd89dc8fd201c4fd25b9bdf072  guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin.tar.gz
  a3ff233ea536e9e6c19eecca54a7703dad901b4aab9b9606a2203af844be7f57  guix-build-8d25926643cb/output/x86_64-linux-gnu/SHA256SUMS.part
  b48d92a330f20cc9cfb8d9574c2e0190e5ee497120f7dbd0bb00e5001605ef3a  guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu-debug.tar.gz
  d06d54c2bdd66e7031e1ed2da411343c665763e43312eee87a7f575db799a450  guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu.tar.gz
  7164b2b3caa3ca56dc10098474325f92c328355fee7f1464069b99b72853bab1  guix-build-8d25926643cb/output/x86_64-w64-mingw32/SHA256SUMS.part
  f01a344bd8715479955911a465097bb196daffa04c8c334cab41e22529ad2f5c  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-debug.zip
  5ae8999fdc66ef75ce87e1824b3fcbbb2278104f3e2a7b50a90d10e92c974673  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-setup-unsigned.exe
  6beb94dbf0c843d80480901880074e7d1bdf9b9dce2153ac8980c27b484d1fe5  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-unsigned.tar.gz
  de36858355e4053cd2870782072a073d1d2e39627b4ff7c3d48699f419966d20  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  51703356187e978d0b6a2cafd7533554b9860f1bf934547ea2fa6e673d8c2009  guix-build-8d25926643cb/output/arm-linux-gnueabihf/SHA256SUMS.part
  e66aad4e90f7c88e839fe9c8c322b204d9c480812e5890d6b385aeb67893e3a0  guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf-debug.tar.gz
  382c99aa79a92d9e6854490ee184ac8e7bf1ac1b9ddcab98421d959ba4c4797c  guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf.tar.gz
  82f81c109a11a16cf56a5d4029cf7636c34a351f39902ec99d9b2da40e5b3073  guix-build-8d25926643cb/output/arm64-apple-darwin/SHA256SUMS.part
  e62438b4cb68a5123f2e91c8711b5cd24e1567693b142174321a79c5c9c3e040  guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.dmg
  3bd0bc61c2f1d8b30db8dc0fb25a6f73d95416115ccd101922e962852d2f2fd4  guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.tar.gz
  3b987efd79203b0257b1590926106b890d08a0e3d3b0c9ea6e3194c3f4d9cab5  guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin.tar.gz
  71d86ffaf1b54b1dfb0ee6a978c2d3c800742d82a7845967becdd88b1ba4cbf4  guix-build-8d25926643cb/output/dist-archive/bitcoin-8d25926643cb.tar.gz
  bcfbdf2389275b7982a0f0f02ce6a0032b6c4688a56dee882f0b4da5985bffa5  guix-build-8d25926643cb/output/powerpc64-linux-gnu/SHA256SUMS.part
  61ec34aa20de6281c4749961e09cbdd133e46397bee882fd2c211554b311bc9b  guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu-debug.tar.gz
  8b96152ec8dfde4f2b2046f2c54bd13ea066170a4eaa6b63054fe6e9eabf0427  guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu.tar.gz
  78ae0da590b2c174e3875aceccbd8b3195578408770f4c1c29c2d135aa19d638  guix-build-8d25926643cb/output/powerpc64le-linux-gnu/SHA256SUMS.part
  e755b3cf2a3c2a1671d3d312ab8b45abc0e544e978b01c7645939bb2d5d16a63  guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu-debug.tar.gz
  4bdafdc83c7a81cfa152036a5366c09862559002257e1727ff7f930e7f6e6c91  guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu.tar.gz
  64bfcba320ebcc81bdaecf932807a6f487b32a52b7ddccb6c794c4f2e0c3e1c3  guix-build-8d25926643cb/output/riscv64-linux-gnu/SHA256SUMS.part
  c0eebeb9e1fb441db397c33b833138facdde0e984c5a3d48b3957487867c98c7  guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu-debug.tar.gz
  97b2b432cf7c628c9960768057f9c46754c01860c3e77a8baca29465f18ad120  guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu.tar.gz
  1080f0e8e6ee9aff33b47fe90f3f55df368cd3b464bc60eebc1e0092a37bc957  guix-build-8d25926643cb/output/x86_64-apple-darwin/SHA256SUMS.part
  7cd7d4b68e2ec47bcec035b77c956a832453ac1589c7f552285623f5ea84a354  guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.dmg
  9283cfe406694d7f1edc78acaddd817aebb7f2c7397b21687e4410ab71078773  guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.tar.gz
  e96b0ad265db5f990c087bc857272c7d6ede32cd89dc8fd201c4fd25b9bdf072  guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin.tar.gz
  74ee4531452feffa90874cfd8c96d3b941627bd5cbb4a6977d393a2b08a13e47  guix-build-8d25926643cb/output/x86_64-linux-gnu/SHA256SUMS.part
  15815a3269a2a71047afe635765f79d9b31ba08b62cad09bad17ca865f522afb  guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu-debug.tar.gz
  6146bf0ffba945d4a21e36fa0857c5bedc091e953a79ad5782008d759b579c94  guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu.tar.gz
  4c0fbf62b7b76ec14b41eb10cd2f0ae4ef27028044e029a02abad3aa290a6123  guix-build-8d25926643cb/output/x86_64-w64-mingw32/SHA256SUMS.part
  241955fd1c457ba4206814bfdd7652cd4975d68ec905ec9d80a45d3ddd69e0bf  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-debug.zip
  5ae8999fdc66ef75ce87e1824b3fcbbb2278104f3e2a7b50a90d10e92c974673  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-setup-unsigned.exe
  6beb94dbf0c843d80480901880074e7d1bdf9b9dce2153ac8980c27b484d1fe5  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-unsigned.tar.gz
  0eeacc664ad0fb89f177fa6271f8aa573e177804121a7ef2391f06cd56cdc74a  guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64.zip
  ```

ACKs for top commit:
  laanwj:
    Code review ACK 8d25926643cb84805bf3a9fbb289b269198898a8

Tree-SHA512: 2da8037cc60b28ff210c392785e750f33893d9e0b223ac8c5a66cc3eec8f0558c2af7c31494b6075974180fd0fcf34675b5071fe19ad112f379a7489ef1a1a9a
2022-06-25 08:26:19 +02:00
2022-06-23 12:01:00 +01:00
2022-01-03 04:48:41 +08:00
2022-05-05 08:44:08 -05:00

Bitcoin Core integration/staging tree

https://bitcoincore.org

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.

Description
Bitcoin Core integration/staging tree
Readme 2.3 GiB
Languages
C++ 64.1%
Python 19.9%
C 12.2%
CMake 1.1%
Shell 0.9%
Other 1.7%