bitcoin/doc
Ava Chow 41544b8f96
Merge bitcoin/bitcoin#28984: Cluster size 2 package rbf
94ed4fbf8e Add release note for size 2 package rbf (Greg Sanders)
afd52d8e63 doc: update package RBF comment (Greg Sanders)
6e3c4394cf mempool: Improve logging of replaced transactions (Greg Sanders)
d3466e4cc5 CheckPackageMempoolAcceptResult: Check package rbf invariants (Greg Sanders)
316d7b63c9 Fuzz: pass mempool to CheckPackageMempoolAcceptResult (Greg Sanders)
4d15bcf448 [test] package rbf (glozow)
dc21f61c72 [policy] package rbf (Suhas Daftuar)
5da3967815 PackageV3Checks: Relax assumptions (Greg Sanders)

Pull request description:

  Allows any 2 transaction package with no in-mempool ancestors to do package RBF when directly conflicting with other mempool clusters of size two or less.

  Proposed validation steps:
  1) If the transaction package is of size 1, legacy rbf rules apply.
  2) Otherwise the transaction package consists of a (parent, child) pair with no other in-mempool ancestors (or descendants, obviously), so it is also going to create a cluster of size 2. If larger, fail.
  3) The package rbf may not evict more than 100 transactions from the mempool(bip125 rule 5)
  4) The package is a single chunk
  5) Every directly conflicted mempool transaction is connected to at most 1 other in-mempool transaction (ie the cluster size of the conflict is at most 2).
  6) Diagram check: We ensure that the replacement is strictly superior, improving the mempool
  7) The total fee of the package, minus the total fee of what is being evicted, is at least the minrelayfee * size of the package (equivalent to bip125 rule 3 and 4)

  Post-cluster mempool this will likely be expanded to general package rbf, but this is what we can safely support today.

ACKs for top commit:
  achow101:
    ACK 94ed4fbf8e
  glozow:
    reACK 94ed4fbf8e via range-diff
  ismaelsadeeq:
    re-ACK 94ed4fbf8e
  theStack:
    Code-review ACK 94ed4fbf8e
  murchandamus:
    utACK 94ed4fbf8e

Tree-SHA512: 9bd383e695964f362f147482bbf73b1e77c4d792bda2e91d7f30d74b3540a09146a5528baf86854a113005581e8c75f04737302517b7d5124296bd7a151e3992
2024-06-17 17:22:43 -04:00
..
design doc: Clarify distinction between util and common libraries in libraries.md 2024-05-16 10:16:08 -05:00
man
policy Merge bitcoin/bitcoin#28984: Cluster size 2 package rbf 2024-06-17 17:22:43 -04:00
release-notes doc: archive release notes for v27.1 2024-06-12 16:58:24 +01:00
.gitignore
assets-attribution.md
benchmarking.md
bips.md [doc] update bips.md for 431 2024-06-02 20:21:56 +02:00
bitcoin_logo_doxygen.png
bitcoin-conf.md system: use %LOCALAPPDATA% as default datadir on windows 2024-04-30 11:03:04 -04:00
build-freebsd.md doc: suggest only necessary Qt packages for installation on FreeBSD 2024-04-24 14:14:18 +02:00
build-netbsd.md doc: Update NetBSD Build Guide 2024-05-20 12:59:15 +01:00
build-openbsd.md doc: Suggest only necessary Qt packages for installation on OpenBSD 2024-04-24 09:17:48 +01:00
build-osx.md doc: add LLVM instruction for macOS < 13 2024-04-29 10:33:21 +02:00
build-unix.md Merge bitcoin/bitcoin#29756: doc: Override -g properly to skip debugging information 2024-04-01 16:54:44 +02:00
build-windows.md
cjdns.md
dependencies.md doc: fixup deps doc after #30198 2024-06-05 10:08:35 +01:00
descriptors.md doc: Add example of mixing private and public keys in descriptors 2024-03-15 16:28:43 +03:00
developer-notes.md build: Remove --enable-gprof 2024-06-09 22:45:29 +02:00
dnsseed-policy.md Update the developer mailing list address. 2024-04-02 15:38:40 -03:00
Doxyfile.in
external-signer.md wallet: compare address returned by displayaddress 2024-04-16 17:47:43 +02:00
files.md system: use %LOCALAPPDATA% as default datadir on windows 2024-04-30 11:03:04 -04:00
fuzzing.md doc: remove references to disable-asm option now that it's gone 2024-02-29 19:10:31 +00:00
guix.md
i2p.md doc: i2p: improve -i2pacceptincoming mention 2024-04-04 18:32:39 -03:00
init.md Link to gen-bitcoin-conf.sh instead of bitcoin.conf placeholder 2024-05-23 19:14:06 -04:00
JSON-RPC-interface.md minor: remove unnecessary semicolons from RPC content type examples 2024-06-07 10:47:24 -04:00
managing-wallets.md Merge bitcoin/bitcoin#27064: system: use %LOCALAPPDATA% as default datadir on windows 2024-05-23 12:11:55 -04:00
multiprocess.md doc: Add multiprocess design doc 2023-12-22 16:23:33 -05:00
multisig-tutorial.md
offline-signing-tutorial.md doc: update signet faucet link in offline-signing-tutorial.md 2024-03-04 00:14:29 +07:00
p2p-bad-ports.md
productivity.md
psbt.md
README_doxygen.md
README_windows.txt
README.md build, test, doc: Temporarily remove Android-related stuff 2024-05-06 11:29:14 +01:00
reduce-memory.md
reduce-traffic.md
release-28984.md Add release note for size 2 package rbf 2024-06-13 09:52:59 -04:00
release-notes-27101.md doc: update and link for JSON-RPC 2.0 2024-06-07 09:26:50 -04:00
release-notes-27114.md docs: add release notes for #27114 2024-02-28 10:05:56 -03:00
release-notes-27375.md doc: add release notes and help text for unix sockets 2024-03-01 14:47:29 -05:00
release-notes-27679.md doc: release notes for PR 27679 2024-04-16 14:14:42 -04:00
release-notes-29091-29165.md doc: add release note for 29091 and 29165 2024-06-10 14:25:08 +01:00
release-notes-29612.md doc: Add release notes for #29612 2024-05-24 12:42:06 +02:00
release-notes-29845.md rpc: return warnings as an array instead of just a single one 2024-05-01 14:44:57 +01:00
release-notes-30058.md introduce and use the generalized node::Warnings interface 2024-06-13 11:20:48 +01:00
release-notes-30192.md build: remove --enable-lcov-branch-coverage 2024-05-30 10:36:55 +01:00
release-notes-empty-template.md
release-process.md [doc] update release-process.md and backports section of CONTRIBUTING 2024-04-18 17:07:57 +01:00
REST-interface.md
tor.md
tracing.md
translation_process.md doc: Update translation_process.md 2024-02-14 21:39:39 -03:00
translation_strings_policy.md
zmq.md

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.