mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Enable passive squelching (#5358)
This change updates the squelching logic to accept squelch messages for untrusted validators. As a result, servers will also squelch untrusted validator messages reducing duplicate traffic they generate. In particular: * Updates squelch message handling logic to squelch messages for all validators, not only trusted ones. * Updates the logic to send squelch messages to peers that don't squelch themselves * Increases the threshold for the number of messages that a peer has to deliver to consider it as a candidate for validator messages.
This commit is contained in:
@@ -45,8 +45,8 @@ static constexpr auto IDLED = std::chrono::seconds{8};
|
|||||||
// of messages from the validator. We add peers who reach
|
// of messages from the validator. We add peers who reach
|
||||||
// MIN_MESSAGE_THRESHOLD to considered pool once MAX_SELECTED_PEERS
|
// MIN_MESSAGE_THRESHOLD to considered pool once MAX_SELECTED_PEERS
|
||||||
// reach MAX_MESSAGE_THRESHOLD.
|
// reach MAX_MESSAGE_THRESHOLD.
|
||||||
static constexpr uint16_t MIN_MESSAGE_THRESHOLD = 9;
|
static constexpr uint16_t MIN_MESSAGE_THRESHOLD = 19;
|
||||||
static constexpr uint16_t MAX_MESSAGE_THRESHOLD = 10;
|
static constexpr uint16_t MAX_MESSAGE_THRESHOLD = 20;
|
||||||
// Max selected peers to choose as the source of messages from validator
|
// Max selected peers to choose as the source of messages from validator
|
||||||
static constexpr uint16_t MAX_SELECTED_PEERS = 5;
|
static constexpr uint16_t MAX_SELECTED_PEERS = 5;
|
||||||
// Wait before reduce-relay feature is enabled on boot up to let
|
// Wait before reduce-relay feature is enabled on boot up to let
|
||||||
|
|||||||
@@ -112,10 +112,7 @@ PeerImp::PeerImp(
|
|||||||
headers_,
|
headers_,
|
||||||
FEATURE_TXRR,
|
FEATURE_TXRR,
|
||||||
app_.config().TX_REDUCE_RELAY_ENABLE))
|
app_.config().TX_REDUCE_RELAY_ENABLE))
|
||||||
, vpReduceRelayEnabled_(peerFeatureEnabled(
|
, vpReduceRelayEnabled_(app_.config().VP_REDUCE_RELAY_ENABLE)
|
||||||
headers_,
|
|
||||||
FEATURE_VPRR,
|
|
||||||
app_.config().VP_REDUCE_RELAY_ENABLE))
|
|
||||||
, ledgerReplayEnabled_(peerFeatureEnabled(
|
, ledgerReplayEnabled_(peerFeatureEnabled(
|
||||||
headers_,
|
headers_,
|
||||||
FEATURE_LEDGER_REPLAY,
|
FEATURE_LEDGER_REPLAY,
|
||||||
@@ -2705,16 +2702,6 @@ PeerImp::onMessage(std::shared_ptr<protocol::TMSquelch> const& m)
|
|||||||
}
|
}
|
||||||
PublicKey key(slice);
|
PublicKey key(slice);
|
||||||
|
|
||||||
// Ignore non-validator squelch
|
|
||||||
if (!app_.validators().listed(key))
|
|
||||||
{
|
|
||||||
fee_.update(Resource::feeInvalidData, "squelch non-validator");
|
|
||||||
JLOG(p_journal_.debug())
|
|
||||||
<< "onMessage: TMSquelch discarding non-validator squelch "
|
|
||||||
<< slice;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ignore the squelch for validator's own messages.
|
// Ignore the squelch for validator's own messages.
|
||||||
if (key == app_.getValidationPublicKey())
|
if (key == app_.getValidationPublicKey())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -705,10 +705,7 @@ PeerImp::PeerImp(
|
|||||||
headers_,
|
headers_,
|
||||||
FEATURE_TXRR,
|
FEATURE_TXRR,
|
||||||
app_.config().TX_REDUCE_RELAY_ENABLE))
|
app_.config().TX_REDUCE_RELAY_ENABLE))
|
||||||
, vpReduceRelayEnabled_(peerFeatureEnabled(
|
, vpReduceRelayEnabled_(app_.config().VP_REDUCE_RELAY_ENABLE)
|
||||||
headers_,
|
|
||||||
FEATURE_VPRR,
|
|
||||||
app_.config().VP_REDUCE_RELAY_ENABLE))
|
|
||||||
, ledgerReplayEnabled_(peerFeatureEnabled(
|
, ledgerReplayEnabled_(peerFeatureEnabled(
|
||||||
headers_,
|
headers_,
|
||||||
FEATURE_LEDGER_REPLAY,
|
FEATURE_LEDGER_REPLAY,
|
||||||
|
|||||||
Reference in New Issue
Block a user