Package relay
Also covering BIP331
Package relay is a proposed feature for Bitcoin relay nodes that would allow them to send and receive packages of related transactions which would be accepted or rejected based on the feerate of the overall package rather than having each individual transaction in the package accepted or rejected based only on its own feerate.
Without package relay, it’s not possible to effectively CPFP fee bump a transaction that’s below the minimum feerate nodes accept. Nodes will reject the parent transaction for its too low feerate and then ignore the fee-bumping child transaction because the parent transaction is needed in order to validate the child. This is especially problematic because the minimum feerate that a node accepts depends on the contents of its mempool, so a parent transaction that could previously be fee bumped might not be bumpable now. This has significant security implications for LN and other time-sensitive contract protocols that want to depend on CPFP fee bumping.
The main obstacle to adding package relay support to the Bitcoin P2P protocol is ensuring that an implementation of it doesn’t create any new vectors for denial-of-service attacks.
Primary code and documentation
- BIP331
- Bitcoin Core Draft Implementation
- Bitcoin Core Project Tracking Issue
- Package Relay Proposal
- Package relay strawman proposal
- Package relay design questions
Optech newsletter and website mentions
2024
- Guide for Wallets Employing Bitcoin Core 28.0 Policies: one parent one child (1P1C) package relay
- Bitcoin Core #28984 adds support for a limited version of package replace-by-fee
- Bitcoin Core #30000 indexes orphan txes by wtxid, removing a problem with orphan-based package relay
- Bitcoin Core #28970 adds support for one-parent-one-child (1p1c) package relay with no P2P changes
- BIP331 assigned to ancestor package relay proposal
- Bitcoin Core #29242 lays the groundwork for package replace by fee
2023
- Bitcoin Core #27609 makes the submitpackage RPC available on non-regtest networks
- LN developer discussion about multiple relay policy topics, including package relay
- Suggestion to perform package relay using Nostr protocol
- Summaries of Bitcoin Core developers in-person meeting
2022
- 2022 year-in-review: package relay
- Suggest to use CPFP with package relay to address RBF-related free option problem
- CoreDev.tech transcript of discussion about package relay and v3 transactions
- New proposed v3 transactions designed for use with package relay
- Bitcoin Core #24836 adds a regtest-only RPC,
submitpackage
, to help test package relay - Continued discussion of proposed package relay BIP
- BIP proposed for package relay
- Bitcoin Core #22674 adds logic for validating packages of transactions against relay policy
2021
- 2021 year-in-review: mempool package acceptance and package relay
- Proposal of initial rules for mempool package acceptance before implementing package relay
- Bitcoin Core #21800 implements ancestor and descendant limits for mempool package acceptance
- Bitcoin Core #20833 allows
testmempoolaccept
to evaluate descendant transaction chains - Upcoming relay policy workshop to discuss package relay and other topics
2020
- Discussion of solutions for attacks against LN, including package relay
- Change to orphan parent fetching, may be replaced by package relay
- New BIP339 wtxid transaction announcements simplifies package relay
- New LN attack; full solution requires package relay
2019
2018
See also
Previous Topic:
Output script descriptors
Next Topic:
Pay-to-Contract (P2C) protocols