Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add bip-halt-unrequested-txn-processing #1664

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
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
53 changes: 53 additions & 0 deletions bip-halt-unrequested-txn-processing.mediawiki
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<pre>
BIP: YYY
Layer: Peer Services
Title: Unrequested Transactions Processing
Author: Antoine Riard <[email protected]>
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 mechanism to halt the processing of unrequested transations

Check warning on line 16 in bip-halt-unrequested-txn-processing.mediawiki

View workflow job for this annotation

GitHub Actions / Typo Checks

"transations" should be "transitions" or "transactions" or "translations".
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This BIP proposes a new mechanism to halt the processing of unrequested transations
This BIP proposes a new mechanism to halt the processing of unrequested transactions

received by a node from its bitcoin networks peers.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
received by a node from its bitcoin networks peers.
received by a node from its bitcoin network peers.


==Motivation==

Historically, nodes have been exchanging transactions on the Bitcoin peer-to-peer
network by sending an inv, and if the transaction has not been discovered and processed
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest wrapping p2p message types throughout this draft either in double quotes (i.e. "inv" in BIPs 33, 35, 130, 133, 330, 331), or in code blocks (i.e. inv in BIPs 37, 140, 157), and appending "message" when it helps clarity.

Suggested change
network by sending an inv, and if the transaction has not been discovered and processed
network by sending an inv message, and if the transaction has not been discovered and processed

yet by the other peer, sending a dedicated tx message.

Sending an unnannounced tx message has always been considered in conformity with
the protocol, however this behavior creates a denanonymization vector if leveraged
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the protocol, however this behavior creates a denanonymization vector if leveraged
the protocol; however, this behavior can create a de-anonymization vector if leveraged

by mass connectors.

We can eliminate this concern by nodes rejecting unrequested transactions.

==Specification==

TODO: segment the protocol version by sub-categories of traffic class (eg tx, addr, block ?)

#. The protocol version of nodes implementing this BIP must be set to 70017 or higher.

#. After a node received a transaction from a peer
## If this transaction has been previously fetch with a getdata request, the node MUST process the transaction
## If this transaction has not been previously fetch with a getdata request, the node SHOULD reject the transaction

TODO: add a policy rule to disconnect protocol violation ?

==Backward compatibility==

This mechanism only applies to network peers signaling NODE_TXRELAY_V2 as a node service bit.

==Implementation==

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

==Copyright==

This BIP is licensed under the GPLv2.
Loading