131 / 691PKG

Package Relay

Transaction package relay

Relaying dependent unconfirmed transactions so a child’s fee can help its parent satisfy mempool policy.

Package Relay transfers related unconfirmed transactions between nodes, enabling joint assessment of a parent and child for mempool admission. Data transport, local admission policy and miner block selection are separate steps; a package does not change the consensus validity of individual transactions.

A low-feerate parent may be rejected before a node sees its higher-fee child. CPFP only provides an economic incentive if the necessary transactions reach the miner. Package Relay helps bridge this transport gap; it cannot replace signatures or input validation. [BIP 331 — Ancestor Package Relay]

An illustrative parent has 200 vB and a 200 sat fee; its child has 100 vB and a 1300 sat fee. Together they pay 1500 / 300 = 5 sat/vB, not the average of their individual rates of 1 and 13. This example assumes exactly these two unconfirmed transactions without further ancestors; actual admission also depends on node policy and conflicts. [BIP 331 — Ancestor Package Relay]

A child spends a parent’s output. In a topologically sorted list, parents must precede children; a high fee cannot repair missing ancestors or conflicting spends. Limits on package size, count and shape protect node resources and are not universal consensus parameters. [Bitcoin Core 28.0 — submitpackage]

BIP 331 describes support negotiation and dedicated messages for ancestor information and transaction downloads. Bitcoin Core 28.0 instead documented limited opportunistic pairing of one parent with one child over the existing relay protocol. Multiple parents allowed by local RPC do not imply equivalent P2P support; these details describe version 28.0, not a promise for every version or peer. [BIP 331 — Ancestor Package Relay] [Bitcoin Core 28.0 — release notes]

submitpackage 28.0 validates and submits transactions to the local node. Inspect both package_msg and individual tx-results: the operation may accept part of a package, so it does not atomically roll everything back on failure. Even complete success does not prove that neighbors accepted the package or a miner will include it in time. [Bitcoin Core 28.0 — submitpackage]

In a separate test environment, record the version, mempool settings, dependency order, sizes and fees. testmempoolaccept checks without broadcasting; do not equate its result with a submitpackage guarantee. Also observe admission on another node. Time-sensitive Lightning transactions still need a margin: package support alone does not eliminate pinning, congestion or block delays. [Bitcoin Core 28.0 — testmempoolaccept] [Bitcoin Core 28.0 — release notes]

For the clearest picture, read this entry together with Mempool, CPFP (Child Pays for Parent), Fee Rate, Replace-by-Fee (RBF), Lightning Network. The reverse links also lead from CPFP (Child Pays for Parent), Gloria Zhao.

DOC · 001BIP 331 — Ancestor Package RelaySpecificationDOC · 002Bitcoin Core 28.0 — release notesDocumentationDOC · 003Bitcoin Core 28.0 — submitpackageDocumentationDOC · 004Bitcoin Core 28.0 — testmempoolacceptDocumentation
Source-first · No investment advice