CPFP carve out is a transaction relay policy implemented in Bitcoin Core that allows a single transaction to moderately exceed the node’s maximum package size and depth limits if that transaction only has one unconfirmed ancestor.
This makes it possible for two-party contract protocols (such as the current LN protocol) to ensure both parties get a chance to use Child-Pays-For-Parent (CPFP) fee bumping. The first party can use fee bumping up to the package limits, but can’t pin the transaction because the second party is able to use CPFP carve out.
Primary code and documentation
- CPFP carve-out proposal
- Bitcoin Core PR#15681: [mempool] Allow one extra single-ancestor transaction per package
Optech newsletter and website mentions
- 2019-11-27 Bitcoin Core 0.19 released with CPFP carve-out
- 2019-11-06 Continued discussion of LN anchor outputs using CPFP carve-out
- 2019-10-30 LN simplified commitments using CPFP carve-out
- 2019-09-11 Bitcoin Core #16421 merged allowing carve outs to be RBF replaced
- 2019-07-24 Bitcoin Core #15681 merged with CPFP carve out
- 2019-06-12 Proposal to override some BIP125 conditions, alternative to carve out
- 2018-12-04 CPFP carve out proposal