elements/doc
Andrew Chow 832fa2d238
Merge bitcoin/bitcoin#25574: validation: Improve error handling when VerifyDB dosn't finish successfully
0af16e7134 doc: add release note for #25574 (Martin Zumsande)
57ef2a4812 validation: report if pruning prevents completion of verification (Martin Zumsande)
0c7785bb25 init, validation: Improve handling if VerifyDB() fails due to insufficient dbcache (Martin Zumsande)
d6f781f1cf validation: return VerifyDBResult::INTERRUPTED if verification was interrupted (Martin Zumsande)
6360b5302d validation: Change return value of VerifyDB to enum type (Martin Zumsande)

Pull request description:

  `VerifyDB()` can fail to complete due to insufficient dbcache at the level 3 checks. This PR improves the error handling in this case in the following ways:
  - The rpc `-verifychain` now returns false if the check can't be completed due to insufficient cache
  - During init, we only log a warning if the default values for `-checkblocks` and `-checklevel` are taken and the check doesn't complete. However, if the user actively specifies one of these args, we return with an InitError if we can't complete the check.

  This PR also changes `-verifychain` RPC to return `false` if the verification didn't finish due to missing block data (pruning) or due to being interrupted by the node being shutdown.

  Previously, this PR also included a fix for a possible assert during verification - this was done in #27009 (now merged).

ACKs for top commit:
  achow101:
    ACK 0af16e7134
  ryanofsky:
    Code review ACK 0af16e7134. Only small suggested changes since the last review, like renaming some of the enum values. I did leave more suggestions, but they are not very important and could be followups
  john-moffett:
    ACK 0af16e7134
  MarcoFalke:
    lgtm re-ACK 0af16e7134 🎚

Tree-SHA512: 84b4f767cf9bfbafef362312757c9bf765b41ae3977f4ece840e40c52a2266b1457832df0cdf70440be0aac2168d9b58fc817238630b0b6812f3836ca950bc0e
2023-02-22 14:19:44 -05:00
..
design
man
policy
release-notes
.gitignore
assets-attribution.md
benchmarking.md
bips.md
bitcoin-conf.md
bitcoin_logo_doxygen.png
build-android.md
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
build-openbsd.md contrib: remove install_db4.sh 2023-01-18 16:59:02 +00:00
build-osx.md
build-unix.md build: remove --enable-upnp-default from configure 2023-01-28 15:27:23 +00:00
build-windows.md doc: Correct linked Microsoft URLs 2022-12-31 16:54:13 +01:00
cjdns.md
dependencies.md Merge bitcoin/bitcoin#27029: guix: consolidate to glibc 2.27 for Linux builds 2023-02-17 10:40:57 +00:00
descriptors.md
developer-notes.md Merge bitcoin/bitcoin#23810: docs: avoid C-style casts; use modern C++ casts 2023-02-08 10:36:43 +00:00
dnsseed-policy.md
Doxyfile.in
external-signer.md
files.md
fuzzing.md doc: use arch agnostic clang path in fuzzing doc (macOS) 2023-02-08 09:45:04 +00:00
guix.md
i2p.md doc: remove recommended I2P router versions 2023-01-09 08:18:58 -08:00
init.md Remove -sysperms option 2023-02-05 08:09:16 +00:00
JSON-RPC-interface.md
managing-wallets.md Change dots to an ellipsis and fix capitalization 2023-01-12 11:15:02 -05:00
multisig-tutorial.md
p2p-bad-ports.md
productivity.md
psbt.md
README.md
README_doxygen.md
README_windows.txt
reduce-memory.md doc: NetPermissionFlags for tx relay in blocksonly 2023-01-30 11:21:49 +00:00
reduce-traffic.md
release-notes-19762.md
release-notes-22087.md
release-notes-23395.md
release-notes-25375.md rpc: add minconf and maxconf options to sendall 2023-01-11 17:08:35 -05:00
release-notes-25412.md
release-notes-25574.md doc: add release note for #25574 2023-02-16 17:58:52 -05:00
release-notes-25730.md
release-notes-25934.md
release-notes-25957.md doc: add release note for #25957 (fast wallet rescan) 2023-01-19 13:40:26 +01:00
release-notes-26213.md
release-notes-26265.md
release-notes-26471.md doc: release note on mempool size in -blocksonly 2023-01-20 13:54:05 +00:00
release-notes-26618.md
release-notes-26628.md
release-notes-26646.md doc: move errant release note to doc/ 2023-01-12 09:28:34 +00:00
release-notes-26896.md doc: add release notes for 26896 2023-01-28 15:27:27 +00:00
release-notes-27037.md doc: release notes for #27037 2023-02-03 18:18:39 +01:00
release-notes-27068.md doc: Release notes for 27068 2023-02-21 14:40:59 -05:00
release-notes-empty-template.md
release-process.md contrib: remove builder keys 2022-12-19 17:21:35 +00:00
REST-interface.md
shared-libraries.md
tor.md
tracing.md
translation_process.md
translation_strings_policy.md
zmq.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 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.