bitcoin/doc
fanquake 2eacc61ad7
Merge bitcoin/bitcoin#25970: Add headerssync tuning parameters optimization script to repo
3d420d8f28 Add instructions for headerssync-params.py to release-process.md (Pieter Wuille)
53d7d35b58 Update parameters in headerssync.cpp (Pieter Wuille)
7899402cff Add headerssync-params.py script to the repository (Pieter Wuille)

Pull request description:

  Builds upon #25946, as it incorporates changes based on the selected values there.

  This adds the headerssync tuning parameters optimization script from https://gist.github.com/sipa/016ae445c132cdf65a2791534dfb7ae1 to the repository, updates the parameters based on its output, and adds release process instructions for doing this update in the future.

  A few considerations:
  * It would be a bit cleaner to have these parameters be part of `CChainParams`, but due to the nature of the approach, it really only applies to chains with unforgeable proof-of-work, which we really can only reasonably expect from mainnet, so I think it's fine to keep them local to `headerssync.cpp`. Keeping them as compile-time evaluatable constants also has a (likely negligible) performance impact (avoiding runtime modulo operations).
  * If we want to make sure the chainparams and headerssync params don't go out of date, it could be possible to run the script in CI, and and possibly even have the parameters be generated automatically at build time. I think that's overkill for how unfrequently these need to change, and running the script has non-trivial cost (~minutes in the normal python interpreter).
  * A viable alternative is just leaving this out-of-repo entirely, and just do ad-hoc updating from time to time. Having it in the repo and release notes does make sure it's not forgotten, though adds a cost to contributors/maintainers who follow the process.

ACKs for top commit:
  ajtowns:
    reACK 3d420d8f28

Tree-SHA512: 03188301c20423c72c1cbd008ccce89b93e2898edcbeecc561b2928a0d64e9a829ab0744dc3b017c23de8b02f3c107ae31e694302d3931f4dc3540e184de1963
2023-10-05 11:28:29 +01:00
..
design Merge bitcoin/bitcoin#27596: assumeutxo (2) 2023-10-02 17:09:44 -04:00
man scripted-diff: Fix typo in stub manual pages 2021-01-12 16:46:55 +01:00
policy typo: in packages.md 2023-10-03 11:22:46 -07:00
release-notes doc: Fix broken link in release notes 2023-05-26 09:47:15 +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
benchmarking.md doc: update doc/benchmarking.md 2021-06-24 11:15:29 +02:00
bips.md doc: mention BIP324 support in bips.md 2023-10-02 18:11:11 -04:00
bitcoin-conf.md Security config warning 2022-08-19 23:18:13 -04:00
bitcoin_logo_doxygen.png Lossless image optimization 2013-12-02 10:10:22 +01:00
build-android.md build, qt: Use Android NDK r23 LTS 2021-12-05 03:00:02 +02:00
build-freebsd.md Merge bitcoin/bitcoin#26773: doc: FreeBSD build doc updates to reflect removal of install_db4.sh 2023-02-16 14:50:00 +00:00
build-netbsd.md doc: update for NetBSD 9.2, add GUI Build Instructions 2022-07-06 21:27:05 -04:00
build-openbsd.md doc: update OpenBSD build docs for 7.3 (external signer support available) 2023-04-11 22:59:08 +02:00
build-osx.md build: remove dmg dependencies 2023-09-15 13:47:50 +01:00
build-unix.md doc: remove Fedora libdb4-*-devel install docs 2023-08-07 14:48:35 +02:00
build-windows.md doc: Correct linked Microsoft URLs 2022-12-31 16:54:13 +01:00
cjdns.md doc: update getnodeaddresses for CJDNS, I2P and Tor and rm link 2023-06-01 15:52:51 +02:00
dependencies.md build: Update qt package up to 5.15.10 2023-10-04 14:00:57 +01:00
descriptors.md doc: correct deriveaddresses RPC name 2022-10-30 18:11:45 +00:00
developer-notes.md doc: Remove confusing assert linter 2023-09-14 18:59:52 +02: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 docs: fixup honggfuzz patch 2023-07-03 11:00:57 +01:00
guix.md docs: Point to contrib/guix/README.md in doc/guix.md 2021-01-08 11:40:01 -05:00
i2p.md doc: simplify the router options in doc/i2p.md 2023-06-27 10:26:57 -06:00
init.md Remove -sysperms option 2023-02-05 08:09:16 +00:00
JSON-RPC-interface.md doc: document json rpc endpoints 2023-03-09 08:41:59 +00:00
managing-wallets.md Change dots to an ellipsis and fix capitalization 2023-01-12 11:15:02 -05:00
multisig-tutorial.md doc: update multisig-tutorial.md to default wallet type 2022-03-10 12:50:34 +01:00
p2p-bad-ports.md init, doc: improve -onlynet help and tor/i2p documentation 2022-03-03 16:14:01 +01:00
productivity.md doc: add distcc to productivity notes 2022-06-13 16:13:11 +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: consolidate & remove release-note fragments 2022-09-15 16:02:17 +01: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: Be vague instead of wrong about MALLOC_ARENA_MAX 2023-09-20 17:12:24 +00:00
reduce-traffic.md doc: Use precise permission flags where possible 2020-07-10 15:37:42 +02:00
release-notes-24914.md doc: Add release note for wallet loading changes 2023-06-27 11:08:06 -04:00
release-notes-25158.md doc: add release notes for abandoned field in gettransaction and listtransactions 2023-01-13 10:29:05 -03:00
release-notes-26076.md doc: clarify PR 26076 release note 2023-05-08 16:07:15 +02:00
release-notes-26094.md rpc: return block hash & height in getbalances, gettransaction & getwalletinfo JSONs 2023-04-26 16:07:47 +02:00
release-notes-26485.md RPC: Allow RPC methods accepting options to take named parameters 2023-05-03 11:27:51 -05:00
release-notes-27213.md doc: Add release note 2023-08-03 13:16:38 -06:00
release-notes-27302.md init: Error if ignored bitcoin.conf file is found 2023-04-21 06:53:23 -04:00
release-notes-27501.md [rpc] add getprioritisedtransactions 2023-05-10 21:10:44 +01:00
release-notes-27596.md rpc: add getchainstates 2023-09-30 06:41:23 -04:00
release-notes-27632.md doc: release note re raising on invalid -debug/debugexclude/loglevel 2023-06-15 10:27:56 -06:00
release-notes-27757.md doc: add release note about removal of deprecatedrpc=walletwarningfield flag 2023-06-04 23:53:26 +02:00
release-notes-28113.md doc: Correct release-notes for sighashtype exceptions 2023-07-27 09:16:11 +02:00
release-notes-28354.md doc: Release notes for testnet defaulting to -acceptnonstdtxn=0 2023-08-28 22:09:39 +10:00
release-notes-28414.md doc: add release note 2023-09-15 16:53:59 +01:00
release-notes-28448.md rpc: Deprecate rpcserialversion=0 2023-09-11 17:21:53 +10:00
release-notes-empty-template.md depends: Bump MacOS minimum runtime requirement to 11.0 2023-06-22 15:28:47 +00:00
release-process.md Add instructions for headerssync-params.py to release-process.md 2023-09-28 12:11:30 -04:00
REST-interface.md Merge bitcoin/bitcoin#26207: rest: add verbose and mempool_sequence query params for mempool/contents 2023-03-15 19:39:30 -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#27719: doc: remove Tor link & generalize onion getnodeaddresses RPC 2023-06-01 15:24:23 +01:00
tracing.md Use int32_t type for most transaction size/weight values 2023-06-12 19:47:19 +01: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 validationinterface: only send zmq notifications for active 2023-09-30 06:38:47 -04: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.