bitcoin/doc
Wladimir J. van der Laan 22d11187ee
Merge #17398: build: Update leveldb to 1.22+
677fb8e923 test: Add ubsan surpression for crc32c (Wladimir J. van der Laan)
8e68bb1dde build: Disable msvc warning 4722 for leveldb build (Aaron Clauson)
be23949765 build: MSVC changes for leveldb update (Aaron Clauson)
9ebdf04757 build: CRC32C build system integration (Wladimir J. van der Laan)
402252a808 build: Add LCOV exception for crc32c (Wladimir J. van der Laan)
3a037d0067 test: Add crc32c exception to various linters and generation scripts (Wladimir J. van der Laan)
84ff1b2076 test: Add crc32c to subtree check linter (Wladimir J. van der Laan)
7cf13a5134 doc: Add crc32c subtree to developer notes (Wladimir J. van der Laan)
24d02a9ac0 build: Update build system for new leveldb (Wladimir J. van der Laan)
2e1819311a Squashed 'src/crc32c/' content from commit 224988680f7673cd7c769963d4035cb315aa3388 (Wladimir J. van der Laan)
66480821b3 Squashed 'src/leveldb/' changes from f545dfabff4c2e9836efed094dba99a34fbc6b88..f8ae182c1e5176d12e816fb2217ae33a5472fdd7 (Wladimir J. van der Laan)

Pull request description:

  This updates leveldb to currently newest upstream commit 0c40829872:

  - CRC32C hardware acceleration is now an external library [crc32c](https://github.com/google/crc32c). This adds acceleration on ARM, and should be faster on x86 because of using prefetch. It also makes it easy to support similar instruction sets on other platforms in the future.
  - Thread handling uses C++11, instead of platform specific code.
  - Native windows environment was added. No need to maintain our own hacky one, anymore.
  - Upstream now builds using CMake. This doesn't mean we need to use that (phew), but internal configuration changed to a a series of checks, instead of OS profiles. This means the blanket error "Cannot build leveldb for $host. Please file a bug report' is removed.

  All changes: a53934a3ae...0c40829872

  Pretty much all our changes have been subsumed by upstream, so we figured it was cleaner to start over with a new branch from upstream with the still-relevant patches applied: https://github.com/bitcoin-core/leveldb/tree/bitcoin-fork-new

  There's quite some testing to be done (see below). See https://github.com/bitcoin-core/leveldb/issues/25 and https://github.com/bitcoin-core/leveldb/pull/26 for more history and context.

  TODO:
  - [x] Subtree `crc32c`
  - [x] Make linters happy about crc32 subtree
  - [x] Integrate `crc32c` library into build system
  - [x] MSVC build system

ACKs for top commit:
  sipa:
    ACK 677fb8e923

Tree-SHA512: 37ee92a750e053e924bc4626b12bb3fd81faa9f8c5ebaa343931fee810c45ba05aa6051fdea82535fa351bf2be7297801b98af9469865fc5ead771650a5d6240
2020-02-10 11:36:09 +01:00
..
man doc: remove OpenSSL from build instructions and licensing info 2019-11-18 08:56:48 -05:00
release-notes doc: Add historical release notes for 0.19.0.1 2019-11-24 11:15:03 +01:00
.gitignore
assets-attribution.md
benchmarking.md [doc] fix Makefile target in benchmarking.md 2019-10-08 22:14:04 +02:00
bips.md doc: Update doc/bips.md with recent changes in master 2019-11-05 10:20:16 -05: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: remove OpenSSL from build instructions and licensing info 2019-11-18 08:56:48 -05:00
build-netbsd.md
build-openbsd.md
build-osx.md build: use macOS 10.14 SDK 2020-02-03 19:49:46 +08:00
build-unix.md doc: Remove ssl as a required dependency from build-unix 2019-11-19 15:03:44 +01:00
build-windows.md doc: compiling with Visual Studio is now supported on Windows 2019-11-01 15:25:52 -04:00
dependencies.md doc: Update dependencies.md 2019-12-29 13:07:50 +02:00
descriptors.md Output a descriptor in createmultisig and addmultisigaddress 2020-01-30 23:55:36 -05:00
developer-notes.md doc: Add crc32c subtree to developer notes 2020-01-28 17:01:48 +01:00
dnsseed-policy.md
Doxyfile.in test: Add crc32c exception to various linters and generation scripts 2020-01-28 17:01:48 +01:00
files.md doc: Add missing indexes/blockfilter/basic/ to doc/files.md 2019-10-11 08:31:18 -04:00
fuzzing.md doc: Improve fuzzing docs for macOS users 2020-01-29 00:46:21 +01:00
gitian-building.md
init.md doc: Fix whitespace errs in .md files, bitcoin.conf, Info.plist.in, and find_bdb48.m4 2019-09-17 03:21:22 -04:00
JSON-RPC-interface.md
productivity.md
psbt.md
rapidcheck.md doc: initial RapidCheck property-based testing documentation 2019-08-19 09:18:16 +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: Change doxygen URL to doxygen.bitcoincore.org 2019-11-25 19:20:49 +01:00
reduce-memory.md use preferred shebang approach for documentation 2019-12-17 12:18:13 -05:00
reduce-traffic.md
release-notes-15437.md [docs] Add release notes for removal of REJECT reasons 2019-10-10 13:31:57 -04:00
release-notes-15954.md remove old bootstrap relevant code 2019-11-05 16:47:26 +01:00
release-notes-17056.md Add release note 2019-10-08 13:56:56 -04:00
release-notes-17410.md doc: Add relase note for db→walletdb rename 2019-11-08 23:05:47 +01:00
release-notes-17437.md rpc: Expose block height of wallet transactions 2019-11-11 22:32:44 +00:00
release-notes-17578.md doc: update release notes with getaddressinfo label deprecation 2020-01-11 13:35:10 +01:00
release-notes.md util: Disallow network-qualified command line options 2019-12-19 16:27:15 -05:00
release-process.md Merge #17598: doc: Update release process with latest changes 2019-12-12 07:06:21 -05:00
REST-interface.md doc: Remove explicit network name references 2019-11-01 12:06:35 +01:00
shared-libraries.md
tor.md Elaborate on the need to re-login on Debian-based systems to use tor following usermod 2019-09-12 08:27:03 -05:00
translation_process.md build: Factor out qt translations from build system 2019-09-29 14:24:54 +02:00
translation_strings_policy.md
zmq.md doc: Add note regarding ZMQ block notification 2019-08-19 01:05:58 +01: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.