What increases a node's banscore? What factors contribute to the banscore? Does a node sending bad transactions increase its banscore? Does its using unnecessarily too much bandwidth also increase its banscore?
There are many facts that can increase a node's banscore. A node's banscore is updated in the Misbehaving function from main.cpp. Some of the reasons that trigger such update are:
- Sending invalid blocks.
- Sending duplicate version messages.
- Not sending first a version message (before other communication).
- Sending addr messages with more than 1000 addresses.
- Sending inv messages with more than 50000 elements.
- Sending header messages with more than 2000 elements.
- Sending too large bloom filters.
Regarding transactions, it seems that they also may increase the banscore:
// Punish peer that gave us an invalid orphan tx
That's good that they're punished for sending invalid transactions, that way there can't be any lazy nodes out there.– GeremiaJun 27, 2016 at 21:49
does broadcasting double spend transaction also increases the banscore ? thanks– user10603Sep 4, 2017 at 7:58
No, it doesn't (see bitcoin.stackexchange.com/a/28159/3041)– cpsolaSep 5, 2017 at 10:57
1Could continuously re-broadcasting a transaction that is already in all nodes' mempools increase banscore?– deezyMar 3, 2021 at 15:38
@deezy iiuc all nodes are continually re-broadcasting the transactions in their mempools, in order to make sure that their mempools line up with the rest of the network– tjr226May 3, 2021 at 16:11