bitcoin/doc
MeshCollider 44d8172323
Merge #13756: wallet: "avoid_reuse" wallet flag for improved privacy
5ebc6b0eb2 bitcoind: update -avoidpartialspends description to account for auto-enable for avoid_reuse wallets (Karl-Johan Alm)
ada258f8c8 doc: release notes for avoid_reuse (Karl-Johan Alm)
27669551da wallet: enable avoid_partial_spends by default if avoid_reuse is set (Karl-Johan Alm)
8f2e208f7c test: add test for avoidreuse feature (Karl-Johan Alm)
0bdfbd34cf wallet/rpc: add 'avoid_reuse' option to RPC commands (Karl-Johan Alm)
f904723e0d wallet/rpc: add setwalletflag RPC and MUTABLE_WALLET_FLAGS (Karl-Johan Alm)
8247a0da3a wallet: enable avoid_reuse feature (Karl-Johan Alm)
eec15662fa wallet: avoid reuse flags (Karl-Johan Alm)
58928098c2 wallet: make IsWalletFlagSet() const (Karl-Johan Alm)
129a5bafd9 wallet: rename g_known_wallet_flags constant to KNOWN_WALLET_FLAGS (Karl-Johan Alm)

Pull request description:

  Add a new wallet flag called `avoid_reuse` which, when enabled, will keep track of when a specific destination has been spent from, and will actively "blacklist" any new UTXOs which send to an already-spent-from destination.

  This improves privacy, as a payer could otherwise begin tracking a payee's wallet by regularly peppering a known UTXO with dust outputs, which would then be scooped up and used in payments by the payee, allowing the payer to map out (1) the inputs owned by the payee and (2) the destinations to which the payee is making payments.

  This replaces #10386 and together with the (now merged) #12257 it addresses #10065 in full. The concerns raised in https://github.com/bitcoin/bitcoin/pull/10386#issuecomment-302361381 are also addressed due to #12257.

  ~~Note: this builds on top of #15780.~~ (merged)

ACKs for commit 5ebc6b:
  jnewbery:
    ACK 5ebc6b0eb
  laanwj:
    Concept and code-review ACK 5ebc6b0eb2
  meshcollider:
    Code review ACK 5ebc6b0eb2
  achow101:
    ACK 5ebc6b0eb2 modulo above nits

Tree-SHA512: fdef45826af544cbbb45634ac367852cc467ec87081d86d08b53ca849e588617e9a0a255b7e7bb28692d15332de58d6c3d274ac003355220e4213d7d9070742e
2019-06-19 11:33:03 +12:00
..
man Remove -mempoolreplacement to prevent needless block prop slowness. 2019-06-08 09:32:33 -04:00
release-notes Fix spelling errors identified by codespell 1.15.0 2019-06-11 17:18:16 +02:00
.gitignore Ignore Doxyfile generated from Doxyfile.in template. 2017-04-07 16:28:12 +02:00
assets-attribution.md
benchmarking.md trivial: Fixed typos and cleaned up language 2018-08-02 21:27:16 +08:00
bips.md Update bips.md for 0.18.0 2019-04-06 08:37:07 -07:00
bitcoin_logo_doxygen.png
bitcoin-conf.md Add doc/bitcoin-conf.md 2018-10-19 01:13:57 +03:00
build-freebsd.md doc: update FreeBSD build guide for 12.0 2019-02-15 19:54:59 +08:00
build-netbsd.md doc: update NetBSD build instructions for 8.0 2018-12-13 12:05:45 +08:00
build-openbsd.md Merge #14515: doc: Update OpenBSD build guide for 6.4 2018-11-05 13:26:37 +01:00
build-osx.md doc: mention creating application support bitcoin folder on OSX 2019-04-12 09:18:41 -05:00
build-unix.md doc: Remove ppa from linux build instructions 2019-03-03 11:37:40 -05:00
build-windows.md Remove Windows 32 bit build 2019-05-03 13:41:27 -04:00
dependencies.md [depends] boost: update to 1.70 2019-05-03 13:22:17 +01:00
descriptors.md Mention new descriptor RPCs in descriptors.md 2019-04-06 08:17:51 -07:00
developer-notes.md Fix spelling errors identified by codespell 1.15.0 2019-06-11 17:18:16 +02:00
dnsseed-policy.md
Doxyfile.in doc: Make build system insert version in Doxyfile 2017-04-05 09:40:56 +02:00
files.md Add nice table to files.md 2018-12-11 22:24:09 +01:00
fuzzing.md qa: Add test/fuzz/test_runner.py 2019-02-13 17:12:28 -05:00
gitian-building.md doc: move gitian building to external repo 2017-09-25 15:45:38 +02:00
init.md init: Modify docs and add release note for 12255 2019-02-04 09:18:28 -05:00
JSON-RPC-interface.md doc: Clarify RPC versioning 2019-04-15 11:20:16 -04:00
productivity.md docs: Add productivity notes for "dummy rebases" 2019-05-15 14:12:45 -04:00
psbt.md doc: fix/improve analyzepsbt in doc/psbt.md 2019-05-19 17:31:37 +02:00
README_windows.txt doc: Remove version numbers from READMEs 2017-04-05 09:40:48 +02:00
README.md travis: Properly cache and error on timeout 2019-04-05 13:35:27 -04:00
reduce-traffic.md doc: Mention blocksonly in reduce-traffic.md, unhide option 2019-05-13 10:44:46 -04:00
release-notes-13756.md doc: release notes for avoid_reuse 2019-05-29 18:40:31 +09:00
release-notes-14054.md [docs] release note for disabling reject messages by default 2019-03-15 09:16:12 -04:00
release-notes-14802.md rpc: faster getblockstats using BlockUndo data 2019-05-10 08:33:14 -04:00
release-notes-14954.md docs: add release note for 14954 2019-05-28 14:17:31 -04:00
release-notes-15006.md Add option to create an encrypted wallet 2019-05-13 22:49:34 -04:00
release-notes-15566.md cli: replace testnet with chain and return network name as per BIP70. 2019-03-09 16:35:26 +08:00
release-notes-15620.md doc: Add release notes for 15620 2019-03-19 17:06:43 -04:00
release-notes-15637.md rpc: Rename size to vsize in mempool related calls 2019-03-24 12:01:43 +08:00
release-notes-15730.md doc: Add release notes for 15730 2019-05-02 11:39:07 +01:00
release-notes-15849.md threads: prefix log messages with thread names 2019-04-29 13:49:15 -04:00
release-notes.md doc: Add release notes for 14897 & 15834 2019-06-14 15:54:52 -04:00
release-process.md doc: Remove explicit mention of version from SECURITY.md 2019-06-14 06:39:17 -04:00
REST-interface.md rpc: Expose g_is_mempool_loaded via getmempoolinfo and /rest/mempool/info.json 2019-03-22 02:31:20 -07:00
shared-libraries.md doc: correct bitcoinconsensus_version in shared-libraries 2019-04-07 21:42:32 +08:00
tor.md doc: describe onlynet option in doc/tor.md 2019-04-11 14:05:02 +02:00
translation_process.md docs: Update Transifex links 2019-03-02 17:42:33 +08:00
translation_strings_policy.md A few textual improvements 2019-02-08 09:47:50 +01:00
zmq.md ZMQ: add options to configure outbound message high water mark, aka SNDHWM 2018-10-19 07:36:13 -04: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. 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.