bitcoin/doc
W. J. van der Laan c7dd9ff71b
Merge bitcoin/bitcoin#22051: Basic Taproot derivation support for descriptors
2667366aaa tests: check derivation of P2TR (Pieter Wuille)
7cedafc541 Add tr() descriptor (derivation only, no signing) (Pieter Wuille)
90fcac365e Add TaprootBuilder class (Pieter Wuille)
5f6cc8daa8 Add XOnlyPubKey::CreateTapTweak (Pieter Wuille)
2fbfb1becb Make consensus checking of tweaks in pubkey.* Taproot-specific (Pieter Wuille)
a4bf84039c Separate WitnessV1Taproot variant in CTxDestination (Pieter Wuille)
41839bdb89 Avoid dependence on CTxDestination index order (Pieter Wuille)
31df02a070 Change Solver() output for WITNESS_V1_TAPROOT (Pieter Wuille)
4b1cc08f9f Make XOnlyPubKey act like byte container (Pieter Wuille)

Pull request description:

  This is a subset of #21365, to aide review.

  This adds support `tr(KEY)` or `tr(KEY,SCRIPT)` or `tr(KEY,{{S1,{{S2,S3},...}},...})` descriptors, describing Taproot outputs with specified internal key, and optionally any number of scripts, in nested groups of 2 inside `{`/`}` if there are more than one. While it permits importing `tr(KEY)`, anything beyond that is just laying foundations for more features later.

  Missing:
  * Signing support (see #21365)
  * Support for more interesting scripts inside the tree (only `pk(KEY)` is supported for now). In particular, a multisig policy based on the new `OP_CHECKSIGADD` opcode would be very useful.
  * Inferring `tr()` descriptors from outputs (given sufficient information).
  * `getaddressinfo` support.
  * MuSig support. Standardizing that is still an ongoing effort, and is generally kind of useless without corresponding PSBT support.
  * Convenient ways of constructing descriptors without spendable internal key (especially ones that arent't trivially recognizable as such).

ACKs for top commit:
  Sjors:
    utACK 2667366 (based on https://github.com/bitcoin/bitcoin/pull/21365#issuecomment-846945215 review, plus the new functional test)
  achow101:
    Code Review ACK 2667366aaa
  lsilva01:
    Tested ACK 2667366aaa
  meshcollider:
    utACK 2667366aaa

Tree-SHA512: 61046fef22c561228338cb178422f0b782ef6587ec8208d3ce2bd07afcff29a664b54b35c6b01226eb70b6540b43f6dd245043d09aa6cb6db1381b6042667e75
2021-06-03 21:58:41 +02:00
..
man scripted-diff: Fix typo in stub manual pages 2021-01-12 16:46:55 +01:00
release-notes doc: Add doc/release-notes/release-notes-0.21.1.md 2021-05-02 09:59:14 +02:00
.gitignore Ignore Doxyfile generated from Doxyfile.in template. 2017-04-07 16:28:12 +02:00
assets-attribution.md
benchmarking.md Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
bips.md doc: Update bips.md for 0.21.1 2021-05-12 10:06:37 +02:00
bitcoin_logo_doxygen.png
bitcoin-conf.md doc: add signet to doc/bitcoin-conf.md 2021-03-08 00:44:54 +01:00
build-android.md Qt: add Android packaging support 2021-03-21 22:33:27 +01:00
build-freebsd.md docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
build-netbsd.md docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
build-openbsd.md docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
build-osx.md doc: note that brew installed qt is not supported 2021-05-17 21:36:08 -04:00
build-unix.md docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
build-windows.md doc: improve note on choosing posix mingw32 2021-05-27 19:00:34 -04:00
dependencies.md depends: Bump Qt version to 5.12.11 2021-05-27 14:53:18 +03:00
descriptors.md Add tr() descriptor (derivation only, no signing) 2021-05-24 12:14:16 -07:00
developer-notes.md refactor: Remove negative lock annotations from globals 2021-04-05 08:42:15 +02:00
dnsseed-policy.md Correct spelling mistakes in doc folder 2015-10-18 06:25:43 +10:00
Doxyfile.in configure: add --enable-external-signer 2021-02-21 16:27:10 +01:00
external-signer.md Move external signer out of wallet module 2021-04-08 17:56:00 +02:00
files.md doc: Remove mention of priority estimation 2021-05-11 11:52:32 +02:00
fuzzing.md doc: describe in fuzzing.md how to reproduce a CI crash 2021-05-25 15:18:50 +02:00
gitian-building.md doc: move gitian building to external repo 2017-09-25 15:45:38 +02:00
guix.md docs: Point to contrib/guix/README.md in doc/guix.md 2021-01-08 11:40:01 -05: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
multiprocess.md multiprocess: Add comments and documentation 2021-04-23 03:02:50 -05:00
productivity.md doc: Add libnatpmp stuff 2021-01-07 18:07:10 +02:00
psbt.md doc: fix/improve analyzepsbt in doc/psbt.md 2019-05-19 17:31:37 +02: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
README.md doc: Fix external links (IRC, ...) 2021-05-31 17:27:57 +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-20833.md [doc] add release note for package testmempoolaccept 2021-05-24 15:48:32 +01:00
release-notes-20867.md doc: add release notes for 20867 2021-04-28 10:00:31 +02:00
release-notes.md doc: release note for getnodeaddresses by network 2021-05-19 13:06:06 +02:00
release-process.md doc: Fix external links (IRC, ...) 2021-05-31 17:27:57 +02:00
REST-interface.md rpc: deprecate addresses and reqSigs from rpc outputs 2021-03-23 10:51:43 -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 doc: add -addrinfo troubleshooting section to tor.md 2021-04-22 13:00:21 +02:00
translation_process.md doc: Fix external links (IRC, ...) 2021-05-31 17:27:57 +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 doc: Adjust ZMQ usage to support multiple interfaces 2020-09-23 23:14:28 +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.