"If I were starting from scratch, how would I get up to speed on what package relay and the v3 proposals are?"
- What is policy and what are pinning attacks: Basics Talk, L2 Talk
- What is package relay + some history: see "Background and Motivation" section of post
- What is RBF and why is it designed the way it is: docs, code
- BIP 331, Ancestor Package Relay: bips PR
- Pinning and Limitations with RBF: ML post
- What fee-bumping options do we have, what does package relay solve and not solve: slidedeck
- Summary of v3 policy proposal
- Some familiarity with mempool code (
MemPoolAccept
,CTxMemPool
) - V3 and package RBF PR
- Some familiarity with tx relay code (
TxRequestTracker
,TxOrphanage
,Peer::TxRelay
) - Package Relay PR
- BIP 331: bitcoin/bips#1382
- WIP implementation: glozow/bitcoin#8
- https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020493.html
- https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019817.html
- Ancestor Package Tracking in mempool: bitcoin/bitcoin#7594
- Feerate-with-ancestors mining algorithm: bitcoin/bitcoin#7600
- Earliest mention of package relay I've found: bitcoin/bitcoin#6455 (comment)
- Package Relay design questions: bitcoin/bitcoin#14895
- Strawman proposal: https://gist.github.com/sdaftuar/8756699bfcad4d3806ba9f3396d4e66a
- MemPoolAccept::AcceptMultipleTransactions and ProcessNewPackage: bitcoin/bitcoin#20833
- Package Package Limits: bitcoin/bitcoin#21800
- Package CPFP: bitcoin/bitcoin#22674
Most of these PRs have associated Review Club notes. Also see the optech topic page for summaries of PRs and discussions.
These may help with context
- CPFP Carve out (one extra descendant): bitcoin/bitcoin#15681
- RBF Carve out: bitcoin/bitcoin#16421
- Package Relay "lite" (no protocol changes): bitcoin/bitcoin#16401
Please feel free to comment questions to make this list more comprehensive.
Q: Wait... Bitcoin Core RBF policy isn't BIP125?
bitcoin/bitcoin#25775 (comment)
Q: Why not use shortids to specify transactions in packages?
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-June/020539.html
Q: Have people thought about other methods of adding fees?
- ANYONECANPAY: Revault design and problem
- More: bitcoin/bitcoin#23121 (review)
- SIGHASH_GROUP (soft fork proposal): https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-July/019243.html https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-April/015862.html
- Sponsors (soft fork proposal): https://gist.github.com/JeremyRubin/92a9fc4c6531817f66c2934282e71fdf
A slidedeck discussing problems with each approach: https://docs.google.com/presentation/d/135HlLsOZT4qAjTIlUwVdnoo41t_4ByXPFMTHCELlbWY/edit?usp=sharing
Q: Why is this centered around orphan resolution instead of sending packages to peers?
See "Sender-initiated vs receiver-initiated package relay" section: https://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2022-10-11-package-relay/
Q: This is too hard, can't we just delete mempool?
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-October/019578.html