pull down to refresh
10 sats \ 2 replies \ @k00b 24 Jun \ on: Notes on 'DoS due to inv-to-send sets growing too large' from May 2023 bitcoin
I'm a little confused about spy node amplification. Why would they have larger sets than normal peers? Is it because they never acknowledge which txs they have, so it's always assumed they have none?
Relevant section:
Other than banlists for these nodes, shouldn't we drop connections to nodes that never acknowledge the transactions they've received? Do non-spy nodes do this under some circumstances too?
Transaction relay between nodes works by announcing (
inv
msg) that there is a transaction with (w)txid X, the peer requesting X (getdata
msg), and us sending X (tx
msg).A spy node only every receives INVs and records where they heard X first. They never request the transaction as they for now only care about the (w)txid.
They also (normally) never INV any transactions to us, as this would mean we don't INV the transaction to them (so giving them less data).
Maybe we can automatically disconnect or ban peers that behave like spy nodes, but there is always the risk that a heuristic is off or a peer behaves like a spy node due to an edge case. For example, a peer might already have all transactions you announce, and doesn't have any to announce to you. This would look like a spy node to use (at least on a shortish time frame, until the peer learns about a tx we don't yet have and can announce to us), but is actually a worthwhile peer to keep.
I'm a little confused about spy node amplification.
Thanks for the feedback. I think I can expand on this in the post a bit. I seem to have assumed that all readers are familiar with transaction relay with spy nodes, which is probably something I should explain.