bitcoin/doc
fanquake 6bde42e29e
Merge bitcoin/bitcoin#23511: release: require glibc 2.18+
5b93e65f6a build: remove D__STDC_FORMAT_MACROS from CPPFLAGS (fanquake)
dbfca4a815 build: require glibc 2.18+ for release builds (fanquake)

Pull request description:

  This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the [end of 2020](https://wiki.centos.org/About/Product). It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic.

  It was mentioned in #22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for `thread_local` (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see #23489).

  Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with `--disable-threadlocal`. However we wouldn't make any guarantees on how long that workaround might exist for.

  glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html.
  > Add support for calling C++11 thread_local object destructors on thread
    and program exit.  This needs compiler support for offloading C++11
    destructor calls to glibc.

  The last time we increased our runtime glibc requirement for release builds was in #17538 (0.20 release), where we moved from a 2.11 requirement to 2.17.

  Guix builds:
  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
  5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
  db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
  db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
  58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
  9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
  254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
  cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
  8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
  de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
  ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
  65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
  40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
  a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
  581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
  6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
  ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
  c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
  e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
  f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
  2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
  5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
  2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
  0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
  53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
  7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
  9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
  a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK ACK ACK ACK ACK 5b93e65f6a
  hebasto:
    re-ACK 5b93e65f6a, only suggested changes since my [previous](https://github.com/bitcoin/bitcoin/pull/23511#pullrequestreview-806276081) review.

Tree-SHA512: e9c57b11881204ee7c4e3d474d64722bc1bd4409cf8511f2914360205158946a327aa7234bbcbae40c43c0373954d0571c28583d90c280dca53614372891ddde
2021-11-17 08:06:38 +08:00
..
man scripted-diff: Fix typo in stub manual pages 2021-01-12 16:46:55 +01:00
release-notes doc: Add historical release notes for 22.0 2021-09-14 13:20:48 +02:00
.gitignore Ignore Doxyfile generated from Doxyfile.in template. 2017-04-07 16:28:12 +02:00
assets-attribution.md [doc] Merge doc/assets-attribution.md into contrib/debian/copyright 2015-09-18 18:14:42 +02:00
assumeutxo.md doc: add assumeutxo notes 2021-10-04 16:40:00 -04:00
benchmarking.md doc: update doc/benchmarking.md 2021-06-24 11:15:29 +02:00
bips.md doc: Add output script descriptors BIPs 380..386 2021-11-01 16:20:35 +02:00
bitcoin-conf.md doc: added info to bitcoin.conf doc 2021-07-06 09:32:37 -04:00
bitcoin_logo_doxygen.png Lossless image optimization 2013-12-02 10:10:22 +01:00
build-android.md doc: Add minimum supported Android NDK version 2021-11-10 18:51:33 +02:00
build-freebsd.md docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
build-netbsd.md docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
build-openbsd.md script, doc: guix touchups 2021-07-23 21:23:37 +05:30
build-osx.md doc: note that brew installed qt is not supported 2021-05-17 21:36:08 -04:00
build-unix.md Fix Arch linux dead link 2021-11-14 23:50:11 +00:00
build-windows.md doc: remove WSL install instructions and point to upstream 2021-09-17 11:24:55 +08:00
dependencies.md build: require glibc 2.18+ for release builds 2021-11-16 07:51:24 +08:00
descriptors.md Merge bitcoin/bitcoin#22067: Test and document a basic M-of-N multisig using descriptor wallets and PSBTs 2021-10-18 16:17:45 +02:00
developer-notes.md Add minisketch dependency 2021-10-21 09:38:55 +08:00
dnsseed-policy.md Correct spelling mistakes in doc folder 2015-10-18 06:25:43 +10:00
Doxyfile.in Generate doxygen documentation for test sources 2021-05-19 22:08:18 -07:00
external-signer.md Move external signer out of wallet module 2021-04-08 17:56:00 +02:00
files.md Ignore banlist.dat 2021-07-30 11:21:51 +02:00
fuzzing.md Add a brief overview of fuzzing/Bitcoin Core fuzzing 2021-11-10 11:10:04 -07:00
guix.md docs: Point to contrib/guix/README.md in doc/guix.md 2021-01-08 11:40:01 -05:00
i2p.md Improve doc/i2p.md regarding I2P router options/versions 2021-08-19 15:41:46 +02:00
init.md doc: Replace tabs for spaces 2021-02-04 12:06:13 +00:00
JSON-RPC-interface.md Update 'Secure string handling' 2020-12-29 01:49:30 +05:30
managing-wallets.md Document about wallet backup and restoration 2021-08-17 09:40:47 -03:00
multiprocess.md multiprocess: Add comments and documentation 2021-04-23 03:02:50 -05:00
productivity.md doc: Add libnatpmp stuff 2021-01-07 18:07:10 +02:00
psbt.md doc: M-of-N multisig using descriptor wallets and PSBTs, as well as a signing flow 2021-08-16 10:43:07 +05:00
README.md doc: add assumeutxo notes 2021-10-04 16:40:00 -04:00
README_doxygen.md doc: Improve doxygen readme navigation section 2019-09-23 19:22:06 -04:00
README_windows.txt doc: Remove version numbers from READMEs 2017-04-05 09:40:48 +02:00
reduce-memory.md doc: update reduce-memory.md peer connections info 2021-04-17 20:17:59 +02:00
reduce-traffic.md doc: Use precise permission flags where possible 2020-07-10 15:37:42 +02:00
release-notes-23093.md Add release notes for keypool flush changes 2021-09-26 15:35:54 +13:00
release-notes.md Merge bitcoin/bitcoin#22918: rpc: Add level 3 verbosity to getblock RPC call (#21245 modified) 2021-10-19 15:47:53 +02:00
release-process.md build_msvc/bitcoin_config.h is generated using build_msvc/msvc-autogen.py 2021-11-14 15:00:29 +01:00
REST-interface.md rpc: deprecate addresses and reqSigs from rpc outputs 2021-03-23 10:51:43 -04:00
shared-libraries.md doc: libbitcoinconsensus: add missing error code description, fix NBitcoin link 2020-12-05 13:37:00 +01:00
tor.md Merge bitcoin/bitcoin#22420: doc: Specifiy how to set the value of TORGROUP 2021-09-16 20:17:01 +02:00
tracing.md tracing: drop block_connected hash.toString() arg 2021-10-18 14:35:25 +02:00
translation_process.md doc: Remove unnecessary steps from translations update process 2021-07-03 21:31:29 +02:00
translation_strings_policy.md doc: Do not translate technical or extremely rare errors 2020-05-05 04:46:08 +03:00
zmq.md doc: Add IPv6 address to zmq example 2021-06-20 16:56:08 +02:00

Bitcoin Core

Setup

Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Bitcoin transactions, which requires a few hundred gigabytes of disk space. Depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.

To download Bitcoin Core, visit bitcoincore.org.

Running

The following are some helpful notes on how to run Bitcoin Core on your native platform.

Unix

Unpack the files into a directory and run:

  • bin/bitcoin-qt (GUI) or
  • bin/bitcoind (headless)

Windows

Unpack the files into a directory, and then run bitcoin-qt.exe.

macOS

Drag Bitcoin Core to your applications folder, and then run Bitcoin Core.

Need Help?

Building

The following are developer notes on how to build Bitcoin Core on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.

Development

The Bitcoin repo's root README contains relevant information on the development process and automated testing.

Resources

Miscellaneous

License

Distributed under the MIT software license.