You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ban peers that send transactions that could never have been valid (due to misconfiguration of the peer for example).
Summary
ResponseCheckTx should be extended with a txNeverValid field that allows the application to inform CometBFT that the transaction could never have been valid. If CometBFT receives this code, it will disconnect from and ban the peer that sent this transaction.
The main motivation for the implementation of this feature is to prevent a node being spammed with transactions that could never be valid. As whether a transaction could never have been valid, is application specific, we allow the application to inform us via a special code.
Implementing this can increase the vulnerability of a node in case of a bug with the CheckTx call that would ban all peers. For more details, please read the RFC and the discussion around it.
Proposal
After users raised potential security issues that could be resolved by having this features, and operators foreseeing much quicker debugging of issues that could cause gossip of transactions that are never valid, we decided to implement this feature.
However, as the the p2p specification is still in development, and we are not able to clearly foresee the potential effects of peer banning on overall network connectivity, we will implement this feature in two phases:
abci: Add txNeverValid field to ResponseCheckTx and output error #624
Add another field to CheckTx signalling that a transaction could never have been valid. CometBFT will output a special log message (containing information on the sending peer) in case this flag is set, thus allowing operators to quickly discover potentially faulty nodes. We should decide, whether we want to forward this log message to the sending peer itself.
Phase 2: In addition to outputting a log message, ban the sending peer and disconnect from him.
The text was updated successfully, but these errors were encountered:
Uh oh!
There was an error while loading. Please reload this page.
Feature Request
Ban peers that send transactions that could never have been valid (due to misconfiguration of the peer for example).
Summary
ResponseCheckTx
should be extended with atxNeverValid
field that allows the application to inform CometBFT that the transaction could never have been valid. If CometBFT receives this code, it will disconnect from and ban the peer that sent this transaction.Problem Definition
This issue is the result of RFC101.
The main motivation for the implementation of this feature is to prevent a node being spammed with transactions that could never be valid. As whether a transaction could never have been valid, is application specific, we allow the application to inform us via a special code.
Implementing this can increase the vulnerability of a node in case of a bug with the
CheckTx
call that would ban all peers. For more details, please read the RFC and the discussion around it.Proposal
After users raised potential security issues that could be resolved by having this features, and operators foreseeing much quicker debugging of issues that could cause gossip of transactions that are never valid, we decided to implement this feature.
However, as the the p2p specification is still in development, and we are not able to clearly foresee the potential effects of peer banning on overall network connectivity, we will implement this feature in two phases:
txNeverValid
field toResponseCheckTx
and output error #624Add another field to
CheckTx
signalling that a transaction could never have been valid. CometBFT will output a special log message (containing information on the sending peer) in case this flag is set, thus allowing operators to quickly discover potentially faulty nodes. We should decide, whether we want to forward this log message to the sending peer itself.The text was updated successfully, but these errors were encountered: