bitcoin/doc
MarcoFalke 8bb40d5f56
Merge #20560: fuzz: Link all targets once
fa13e1b0c5 build: Add option --enable-danger-fuzz-link-all (MarcoFalke)
44444ba759 fuzz: Link all targets once (MarcoFalke)

Pull request description:

  Currently the linker is invoked more than 150 times when compiling with `--enable-fuzz`. This is problematic for several reasons:

  * It wastes disk space north of 20 GB, as all libraries and sanitizers are linked more than 150 times
  * It wastes CPU time, as the link step can practically not be cached (similar to ccache for object files)
  * It makes it a blocker to compile the fuzz tests by default for non-fuzz builds #19388, for the aforementioned reasons
  * The build file is several thousand lines of code, without doing anything meaningful except listing each fuzz target in a highly verbose manner
  * It makes writing new fuzz tests unnecessarily hard, as build system knowledge is required; Compare that to boost unit tests, which can be added by simply editing an existing cpp file
  * It encourages fuzz tests that re-use the `buffer` or assume the `buffer` to be concatenations of seeds, which increases complexity of seeds and complexity for the fuzz engine to explore; Thus reducing the effectiveness of the affected fuzz targets

  Fixes #20088

ACKs for top commit:
  practicalswift:
    Tested ACK fa13e1b0c5
  sipa:
    ACK fa13e1b0c5. Reviewed the code changes, and tested the 3 different test_runner.py modes (run once, merge, generate). I also tested building with the new --enable-danger-fuzz-link-all

Tree-SHA512: 962ab33269ebd51810924c51266ecc62edd6ddf2fcd9a8c359ed906766f58c3f73c223f8d3cc49f2c60f0053f65e8bdd86ce9c19e673f8c2b3cd676e913f2642
2020-12-15 19:00:36 +01:00
..
man doc: Remove generated manual pages from master branch 2020-11-18 11:12:46 +01:00
release-notes doc: Add historical release notes for 0.20.1 2020-08-01 14:17:14 +02:00
.gitignore
assets-attribution.md
benchmarking.md Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
bips.md docs: mention BIPs 340-342 in doc/bips.md 2020-10-15 14:20:20 -07:00
bitcoin_logo_doxygen.png
bitcoin-conf.md doc: add default bitcoin.conf locations 2019-08-19 19:34:57 +02:00
build-freebsd.md doc: mention MAKE=gmake workaround when building on a BSD 2020-03-18 07:55:07 +08:00
build-netbsd.md doc: mention MAKE=gmake workaround when building on a BSD 2020-03-18 07:55:07 +08:00
build-openbsd.md doc: Add bash as an OpenBSD dependency 2020-11-26 21:34:25 +01:00
build-osx.md doc: Update wallet database installation guide for macOS 2020-12-07 13:25:06 +02:00
build-unix.md Allow disabling BDB in configure with --without-bdb 2020-11-18 11:56:12 -05:00
build-windows.md Add Windows WSL build recommendation to temporarily disable Win32 PE support. 2020-06-29 13:25:59 +01:00
dependencies.md doc: Document current boost dependency as 1.71.0 2020-11-24 10:36:07 +01:00
descriptors.md docs/descriptors.md: Remove hardened marker in the path after xpub 2020-11-06 14:27:47 +05:00
developer-notes.md util: Add Assume() identity function 2020-11-24 09:47:29 +01:00
dnsseed-policy.md
Doxyfile.in [doc] include Doxygen comments for HAVE_BOOST_PROCESS 2020-07-31 13:38:10 +02:00
files.md Merge #20152: doc: Update wallet files in files.md 2020-10-27 15:43:53 +08:00
fuzzing.md fuzz: Link all targets once 2020-12-10 07:15:42 +01:00
gitian-building.md
init.md fixing documentation to not require rpcpassword 2020-03-21 19:51:31 +05:30
JSON-RPC-interface.md Replace hidden service with onion service 2020-08-07 14:55:02 +02:00
multiprocess.md build: multiprocess autotools changes 2020-05-12 09:47:06 -04:00
productivity.md doc: Drop protobuf stuff 2020-05-23 10:14:18 +03:00
psbt.md doc: fix/improve analyzepsbt in doc/psbt.md 2019-05-19 17:31:37 +02:00
README_doxygen.md doc: Improve doxygen readme navigation section 2019-09-23 19:22:06 -04:00
README_windows.txt
README.md doc: Update webchat URLs in README.md 2020-04-02 13:09:55 +00:00
reduce-memory.md doc: block-relay-only is not blocksonly 2020-03-30 09:09:12 -04:00
reduce-traffic.md doc: Use precise permission flags where possible 2020-07-10 15:37:42 +02:00
release-notes-19776.md doc: release note for new getpeerinfo fields "bip152_hb_{from,to}" 2020-09-29 00:42:06 +02:00
release-notes.md Merge #20461: rpc: Validate -rpcauth arguments 2020-12-02 09:37:37 +01:00
release-process.md Drop the leading 0 from the version number 2020-11-18 12:00:57 -05:00
REST-interface.md Merge #19390: doc/REST-interface: Remove stale info 2020-06-29 13:32:01 +08:00
shared-libraries.md doc: libbitcoinconsensus: add missing error code description, fix NBitcoin link 2020-12-05 13:37:00 +01:00
tor.md [doc] Tidy up Tor doc (more stringent) 2020-12-07 05:17:26 +01:00
translation_process.md build: Factor out qt translations from build system 2019-09-29 14:24:54 +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: Adjust ZMQ usage to support multiple interfaces 2020-09-23 23:14:28 +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.