bitcoin/doc
Ava Chow 1861030bea
Merge bitcoin/bitcoin#30469: index: Fix coinstats overflow
c767974811 clang-tidy: Fix critical warnings (Fabian Jahr)
54dc34ec22 index: Remove unused coinstatsindex recovery code (Fabian Jahr)
37c4fba1f4 index: Check BIP30 blocks when rewinding Coinstatsindex (Fabian Jahr)
51df9de8e5 doc: Add release note for 30469 (Fabian Jahr)
bb8d673183 test: Add coinstatsindex compatibility test (Fabian Jahr)
b2e8b64ddc index, refactor: Append blocks to coinstatsindex without db read (Fabian Jahr)
431a076ae6 index: Fix coinstatsindex overflow issue (Fabian Jahr)
84e813a02b index, refactor: DRY coinbase check (Fabian Jahr)
fab842b324 index, refactor: Rename ReverseBlock to RevertBlock (Fabian Jahr)

Pull request description:

  Closes https://github.com/bitcoin/bitcoin/issues/26362

  This continues the work that was started with #26426. It fixes the overflow issue by switching the tracked values that are in danger of overflowing from `CAmount` to `arith_uint256`.

  The current approach opts for a simple solution to ensure compatibility with datadirs including the previous version of the index: The new version of the index goes into a separate location in the datadir (`index/coinstatsindex/` rather than `index/coinstats/` before, the new naming is more consistent with the naming of the other indexes). There is no explicit concept of versioning of the index which earlier versions of this PR had. Having the two different versions of the index in separate places allows for downgrading of the node without having to rebuild the index. However, there will be a warning printed in the logs if the new code (v30) detects the old index still being present. A future version could delete a left-over legacy index automatically.

  The PR also includes several minor improvements but most notably it lets new entries be calculated and stored without needing to read any DB records.

ACKs for top commit:
  achow101:
    ACK c767974811
  TheCharlatan:
    ACK c767974811
  mzumsande:
    Tested / Code Review ACK c767974811

Tree-SHA512: 3fa4a19dd1a01c1b01390247bc9daa6871eece7c1899eac976e0cc21ede09c79c65f758d14daafc46a43c4ddd7055c85fb28ff03029132d48936b248639c6ab9
2025-09-08 17:06:30 -07:00
..
design doc: fix a few obvious typos in the affected files 2025-07-23 22:00:40 -07:00
man build: Remove Autotools-based build system 2024-08-30 21:31:39 +01:00
policy doc: truc packages allow sub min feerate transactions 2025-09-03 01:11:33 +02:00
release-notes [doc] archive v29.1 release notes 2025-09-04 14:13:52 -04:00
CMakeLists.txt cmake: add USE_SOURCE_PERMISSIONS to all configure_file usage 2024-09-06 10:52:19 +01:00
Doxyfile.in build: Rename `PACKAGE_*` variables to `CLIENT_*` 2024-10-28 12:35:55 +00:00
JSON-RPC-interface.md doc: Mention bitcoin wrapper executable in documentation 2025-05-12 14:49:17 -04:00
README.md doc: Mention bitcoin wrapper executable in documentation 2025-05-12 14:49:17 -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
REST-interface.md doc: add `/spenttxouts` to REST-interface.md 2025-06-30 23:26:27 +02:00
assets-attribution.md
assumeutxo.md doc: fix assumeutxo design doc link 2024-09-04 22:53:34 +01:00
benchmarking.md Merge bitcoin/bitcoin#31161: cmake: Set top-level target output locations 2025-03-12 11:19:00 +08:00
bips.md doc: taproot became always active in v24.0 2025-06-19 11:15:00 +02:00
bitcoin-conf.md doc: Add some general documentation about negated options 2025-02-13 12:30:15 -05:00
bitcoin_logo_doxygen.png
build-freebsd.md doc: update build and dependencies docs for IPC 2025-08-14 20:59:51 +02:00
build-netbsd.md doc: update build and dependencies docs for IPC 2025-08-14 20:59:51 +02:00
build-openbsd.md doc: update build and dependencies docs for IPC 2025-08-14 20:59:51 +02:00
build-osx.md doc: update build and dependencies docs for IPC 2025-08-14 20:59:51 +02:00
build-unix.md doc: capnproto instruction for Alpine and Arch 2025-08-21 18:29:21 +02:00
build-windows-msvc.md doc: Add workaround for vcpkg issue with paths with embedded spaces 2025-07-02 15:45:00 +01:00
build-windows.md doc: clarify that the "-j N" goes after the "--build build" part 2025-07-01 18:00:31 +08:00
cjdns.md doc: Mention bitcoin wrapper executable in documentation 2025-05-12 14:49:17 -04:00
dependencies.md doc: link to capnp version bump PR 2025-08-21 12:10:06 +02:00
descriptors.md doc: Add musig() example 2025-06-24 13:43:32 -07:00
developer-notes.md doc: fix a few obvious typos in the affected files 2025-07-23 22:00:40 -07:00
dnsseed-policy.md Update the developer mailing list address. 2024-04-02 15:38:40 -03:00
external-signer.md doc: Mention bitcoin wrapper executable in documentation 2025-05-12 14:49:17 -04:00
files.md index: Fix coinstatsindex overflow issue 2025-09-07 17:21:00 +02:00
fuzzing.md Merge bitcoin/bitcoin#32175: fuzz: doc: add info about `afl-system-config` for macOS 2025-06-13 14:00:00 +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: i2p: improve `-i2pacceptincoming` mention 2024-04-04 18:32:39 -03:00
init.md Merge bitcoin/bitcoin#28167: init: Add option for rpccookie permissions (replace 26088) 2024-06-27 17:35:08 -04:00
managing-wallets.md doc: add note for watch-only wallet migration 2025-07-29 15:18:36 +05:30
multiprocess.md cmake: set ENABLE_IPC by default 2025-08-14 20:57:38 +02:00
multisig-tutorial.md doc: Mention bitcoin wrapper executable in documentation 2025-05-12 14:49:17 -04:00
offline-signing-tutorial.md doc: Mention bitcoin wrapper executable in documentation 2025-05-12 14:49:17 -04:00
p2p-bad-ports.md add more bad p2p ports 2025-06-30 06:24:00 -04:00
productivity.md doc: fix a few obvious typos in the affected files 2025-07-23 22:00:40 -07:00
psbt.md build, wallet, doc: Remove BDB 2025-05-06 12:21:32 -07:00
reduce-memory.md doc: Bring reduce-memory.md up to date 2025-03-04 15:37:59 +01:00
reduce-traffic.md doc: update/clarify max outbound connection count 2023-12-11 20:05:25 +01:00
release-notes-30469.md doc: Add release note for 30469 2025-09-07 17:21:19 +02:00
release-notes-empty-template.md doc: fix transifex 404s 2025-06-19 11:22:14 +01:00
release-process.md doc: fix transifex 404s 2025-06-19 11:22:14 +01:00
tor.md fix spelling in tor.md docs 2025-07-13 23:25:37 +01:00
tracing.md doc: fix typos 2025-08-07 09:01:55 +01:00
translation_process.md doc: fix transifex 404s 2025-06-19 11:22:14 +01:00
translation_strings_policy.md doc: Updating docs from autotools to cmake 2024-09-18 11:04:52 -04:00
zmq.md doc/zmq: fix unix socket path example 2025-07-26 13:58:01 +03:00

README.md

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 several hundred gigabytes or more of disk space. Depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to several days 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)
  • bin/bitcoin (wrapper command)

The bitcoin command supports subcommands like bitcoin gui, bitcoin node, and bitcoin rpc exposing different functionality. Subcommands can be listed with bitcoin help.

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.