0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-13 11:25:02 -05:00
bitcoin-bitcoin-core/doc
MacroFake 8f3ab9a1b1
Merge bitcoin/bitcoin#24931: Strengthen thread safety assertions
ce893c0497 doc: Update developer notes (Anthony Towns)
d2852917ee sync.h: Imply negative assertions when calling LOCK (Anthony Towns)
bba87c0553 scripted-diff: Convert global Mutexes to GlobalMutexes (Anthony Towns)
a559509a0b sync.h: Add GlobalMutex type (Anthony Towns)
be6aa72f9f qt/clientmodel: thread safety annotation for m_cached_tip_mutex (Anthony Towns)
f24bd45b37 net_processing: thread safety annotation for m_tx_relay_mutex (Anthony Towns)

Pull request description:

  This changes `LOCK(mutex)` for non-global, non-recursive mutexes to be annotated with the negative capability for the mutex it refers to, to prevent . clang applies negative capabilities recursively, so this helps avoid forgetting to annotate functions.

  This can't reasonably be used for globals, because clang would require every function to be annotated with `EXCLUSIVE_LOCKS_REQUIRED(!g_mutex)` for each global mutex; so this introduces a trivial `GlobalMutex` subclass of `Mutex`, and reduces the annotations for both `GlobalMutex`  to `LOCKS_EXCLUDED` which only catches trivial errors (eg (`LOCK(x); LOCK(x);`).

ACKs for top commit:
  MarcoFalke:
    review ACK ce893c0497 🐦
  hebasto:
    ACK ce893c0497

Tree-SHA512: 5c35e8c7677ce3d994a7e3774f4344adad496223a51b3a1d1d3b5f20684b2e1d5cff688eb3fbc8d33e1b9940dfa76e515f9434e21de6f3ce3c935e29a319f529
2022-06-10 16:42:53 +02:00
..
man scripted-diff: Fix typo in stub manual pages 2021-01-12 16:46:55 +01:00
policy [docs] package feerate 2022-04-01 14:14:57 -04:00
release-notes Add RPC to get mempool txs spending outputs 2022-05-05 14:56:48 +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
assumeutxo.md doc: add assumeutxo notes 2021-10-04 16:40:00 -04:00
benchmarking.md doc: update doc/benchmarking.md 2021-06-24 11:15:29 +02:00
bips.md doc: Mention missing BIP157 in bips.md 2022-02-22 18:16:43 +01:00
bitcoin-conf.md doc: update bitcoin-conf.md 2022-05-02 15:56:49 +02: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 doc: mention that BDB is for the legacy wallet in build-freebsd.md 2022-03-23 15:35:29 +00:00
build-netbsd.md Add link to NetBSD release 2022-05-18 14:48:01 +02:00
build-openbsd.md doc: Fix command in "OpenBSD Build Guide" 2022-06-07 23:04:20 +02:00
build-osx.md Merge bitcoin/bitcoin#24585: doc: mention that BDB is for the legacy wallet in build-osx.md 2022-03-17 21:13:39 +01:00
build-unix.md doc: clarify that BDB is only required for the legacy wallet 2022-03-18 10:27:49 +00:00
build-windows.md doc: Install only "-posix" MinGW compiler when possible 2022-02-02 19:29:01 +02:00
cjdns.md Add and improve informational links in doc/cjdns.md 2022-04-01 16:11:14 +02:00
dependencies.md doc: add minimum required kernel version to dependencies.md 2022-04-28 09:56:03 +01:00
descriptors.md Merge bitcoin/bitcoin#24043: Add (sorted)multi_a descriptor for k-of-n multisig inside tr 2022-03-04 07:28:23 -05:00
developer-notes.md Merge bitcoin/bitcoin#24931: Strengthen thread safety assertions 2022-06-10 16:42:53 +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 fuzz: parse the command line arguments in fuzz tests 2022-01-11 11:53:34 +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: update i2p.md with cjdns, improve local addresses section 2022-03-22 12:54:23 +01:00
init.md doc: Replace tabs for spaces 2021-02-04 12:06:13 +00:00
JSON-RPC-interface.md Update 'Secure string handling' 2020-12-29 01:49:30 +05:30
managing-wallets.md Update doc to match new default wallet type 2022-02-09 07:38:48 +00:00
multiprocess.md multiprocess: Add comments and documentation 2021-04-23 03:02:50 -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 libnatpmp stuff 2021-01-07 18:07:10 +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, init: add links to doc/cjdns.md 2022-03-24 20:12:32 +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: update reduce-memory.md peer connections info 2021-04-17 20:17:59 +02:00
reduce-traffic.md doc: Use precise permission flags where possible 2020-07-10 15:37:42 +02:00
release-notes-24098.md Add release notes 2022-04-05 13:19:37 -04:00
release-notes-24118.md Add sendall RPC née sweep 2022-03-29 16:37:47 -04:00
release-notes-24198.md doc: add wtxid info in release-notes 2022-02-09 21:15:19 -03:00
release-notes-24494.md [doc] release notes for random change target 2022-03-25 11:57:51 +00:00
release-notes-empty-template.md doc: Add template for empty release notes 2022-03-17 14:15:07 +01:00
release-notes.md doc: add release note about removal of deprecatedrpc=fees flag 2022-05-27 17:29:06 +02:00
release-process.md Merge bitcoin/bitcoin#24424: doc: release process chainparams updates 2022-05-30 15:55:12 +02:00
REST-interface.md doc: add reference to getrawmempool RPC in /mempool/contents REST doc 2022-04-20 18:12:39 -03: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: update tor.md with cjdns and getnodeaddresses, fix tor grep, 2022-03-22 12:54:21 +01:00
tracing.md doc: document coin selection tracepoints 2022-04-21 11:11:02 -04: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 Update zmq.md: Fix parameter in hwm example block 2022-05-25 23:49:15 +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.