Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions bip-txrelayv2.mediawiki
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<pre>
BIP: XXX
Layer: Peer Services
Title: Transaction Relay V2
Author: Antoine Riard <btc@ariard.me>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0XXX
Status: Draft
Type: Standards Track
Created: 2024-09-05
License: GPLv2
</pre>

==Abstract==

This BIP proposes a new Bitcoin transaction relay protocol by introducing new
signaling support, which can be further used by nodes to negotiate new transaction
relay mechanisms and policies.

==Motivation==

Historically, upgrades to the transaction relay protocols have been done by updating
the protocol version number, and upgraded peers expecting support for new p2p messages
processing or alteration in current processing of p2p messages from equivalently upgraded
peers.

This upgrade mechanism raise issues if new processing of current p2p messages is sanctioned
by an upgraded peer at the peering level by a disconnection of the violating non-upgraded peers.
Non-upgraded peers and clients can see their transaction broadcast silently failing for a subset
of their opened connections.

We can improve the current upgrade mechanism of the transaction relay protocol by introducing a new
node service bit to signal support for a new v2 transaction relay protocol. Within this protocol,
nodes can negotiate new transaction relay mechanisms and policies.

==Specification==

Peers supporting the v2 transaction relay protocol SHOULD support the Version 2 P2P Encrypted
Transport Protocol as specified by BIP324.

Peers supporting the v2 transaction relay protocol signal support by advertising
the 13th bit service flag in the addr p2p messages (`ADDR` and `ADDRV2`).

==Backward compatibility==

Older clients remain fully compatible and interoperable after this change.

==Implementation==

https://github.com/bitcoin/bitcoin/pull/30572

==Copyright==

This BIP is licensed under the GPLv2.