bitcoin/doc
Wladimir J. van der Laan 487dcbe80c
Merge #13002: Do not treat bare multisig outputs as IsMine unless watched
7d0f80b Use anonymous namespace instead of static functions (Pieter Wuille)
b61fb71 Mention removal of bare multisig IsMine in release notes (Pieter Wuille)
9c2a8b8 Do not treat bare multisig as IsMine (Pieter Wuille)
08f3228 Optimization: only test for witness scripts at top level (Pieter Wuille)
3619735 Track difference between scriptPubKey and P2SH execution in IsMine (Pieter Wuille)
ac6ec62 Switch to a private version of SigVersion inside IsMine (Pieter Wuille)
19fc973 Do not expose SigVersion argument to IsMine (Pieter Wuille)
fb1dfbb Remove unused IsMine overload (Pieter Wuille)
952d821 Make CScript -> CScriptID conversion explicit (Pieter Wuille)

Pull request description:

  Currently our wallet code will treat bare multisig outputs (meaning scriptPubKeys with multiple public keys + `OP_CHECKMULTISIG` operator in it) as ours without the user asking for it, as long as all private keys in it are in our wallet.

  This is a pointless feature. As it only works when all private keys are in one place, it's useless compared to single key outputs (P2PK, P2PKH, P2WPKH, P2SH-P2WPKH), and worse in terms of space, cost, UTXO size, and ability to test (due to lack of address format for them).

  Furthermore, they are problematic in that producing a list of all `scriptPubKeys` we accept is not tractable (it involves all combinations of all public keys that are ours). In further wallet changes I'd like to move to a model where all scriptPubKeys that are treated as ours are explicit, rather than defined by whatever keys we have. The current behavior of the wallet is very hard to model in such a design, so I'd like to get rid of it.

  I think there are two options:
  * Remove it entirely (do not ever accept bare multisig outputs as ours, unless watched)
  * Only accept bare multisig outputs in situations where the P2SH version of that output would also be acceptable

  This PR implements the first option. The second option was explored in #12874.

Tree-SHA512: 917ed45b3cac864cee53e27f9a3e900390c576277fbd6751b1250becea04d692b3b426fa09065a3399931013bd579c4f3dbeeb29d51d19ed0c64da75d430ad9a
2018-04-26 20:10:12 +02:00
..
man doc: Update manpages to 0.16.99 2018-01-30 14:24:59 +01:00
release-notes doc: Add historical release notes for 0.16.0 2018-02-26 12:25:01 +01: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
benchmarking.md Updating benchmarkmarking.md with an updated sample output and help options 2018-01-19 11:41:56 -06:00
bips.md List support for BIP173 in bips.md 2018-04-23 16:31:05 -07:00
bitcoin_logo_doxygen.png Lossless image optimization 2013-12-02 10:10:22 +01:00
build-netbsd.md [doc] Create build-netbsd.md 2018-01-30 07:47:27 +08:00
build-openbsd.md doc: Update OpenBSD build instructions for 6.2 2017-12-22 10:08:53 +01:00
build-osx.md doc: add qrencode to brew install instructions 2018-04-07 16:59:49 +02:00
build-unix.md doc: Mention configure without wallet in FreeBSD instructions 2018-03-06 22:07:20 +01:00
build-windows.md [doc] build-windows: Switch to Artful, since Zesty is EOL 2018-04-16 11:44:54 -04:00
dependencies.md Merge #12607: depends: Remove ccache 2018-03-07 21:12:47 -05:00
developer-notes.md Fix inconsistent namespace formatting guidelines 2018-04-13 15:37:20 -04:00
dnsseed-policy.md Correct spelling mistakes in doc folder 2015-10-18 06:25:43 +10:00
Doxyfile.in doc: Make build system insert version in Doxyfile 2017-04-05 09:40:56 +02:00
files.md [doc] Include txindex changes in the release notes. 2018-04-25 11:25:19 -07:00
fuzzing.md [test] Speed up fuzzing by ~200x when using afl-fuzz 2017-05-19 07:28:46 +02:00
gitian-building.md doc: move gitian building to external repo 2017-09-25 15:45:38 +02:00
init.md docs: clarified systemd installation instructions in init.md for Ubuntu users. 2018-02-17 17:23:06 -07:00
README_osx.md Fix typos and cleanup 2018-03-02 23:00:25 +02:00
README_windows.txt doc: Remove version numbers from READMEs 2017-04-05 09:40:48 +02:00
README.md Add NetBSD build instruction links 2018-01-30 21:03:58 +00:00
reduce-traffic.md Remove maxuploadtargets recommended minimum 2016-09-13 18:08:17 +02:00
release-notes-pr12823.md Add config changes to release notes 2018-04-11 23:15:28 +10:00
release-notes-pr12892.md [docs] Add release notes for deprecated 'account' API 2018-04-17 14:20:28 -04:00
release-notes-pr13033.md [doc] Include txindex changes in the release notes. 2018-04-25 11:25:19 -07:00
release-notes.md Merge #13002: Do not treat bare multisig outputs as IsMine unless watched 2018-04-26 20:10:12 +02:00
release-process.md Give hint about gitian not able to download 2018-03-06 17:14:29 -05:00
REST-interface.md Fix typos and cleanup 2018-03-02 23:00:25 +02:00
shared-libraries.md Add NULLDUMMY verify flag in bitcoinconsensus.h 2016-09-30 23:09:19 +08:00
tor.md doc: Use bitcoind in Tor documentation 2018-04-05 09:40:20 +02:00
translation_process.md Fix typos and cleanup 2018-03-02 23:00:25 +02:00
translation_strings_policy.md Init: Cleanup error and warning strings 2015-10-28 22:11:43 +01:00
travis-ci.md [doc] Rework docs 2016-10-04 13:27:38 +02:00
zmq.md Fix typos and cleanup 2018-03-02 23:00:25 +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 is currently more than 100 GBs); 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 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.

OS X

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 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. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. This product includes cryptographic software written by Eric Young (eay@cryptsoft.com), and UPnP software written by Thomas Bernard.