Enable mplex by default and change --enable-mplex to take bool (#9476)

Enable Mplex by default, and let `--enable-mplex` take a bool argument.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
This commit is contained in:
Daniel Knopik
2026-06-16 08:53:25 +02:00
committed by GitHub
parent 58e35bc96f
commit 41dff2d965
5 changed files with 54 additions and 11 deletions

View File

@@ -125,7 +125,7 @@ pub struct Config {
/// Whether light client protocols should be enabled.
pub enable_light_client_server: bool,
/// Whether to enable the deprecated mplex multiplexer alongside yamux.
/// Whether to enable the mplex multiplexer alongside yamux. Enabled by default.
pub enable_mplex: bool,
/// Configuration for the outbound rate limiter (requests made by this node).
@@ -365,7 +365,7 @@ impl Default for Config {
proposer_only: false,
metrics_enabled: false,
enable_light_client_server: true,
enable_mplex: false,
enable_mplex: true,
outbound_rate_limiter_config: None,
invalid_block_storage: None,
inbound_rate_limiter_config: None,

View File

@@ -390,9 +390,12 @@ pub fn cli_app() -> Command {
.arg(
Arg::new("enable-mplex")
.long("enable-mplex")
.action(ArgAction::SetTrue)
.help_heading(FLAG_HEADER)
.help("Enables mplex multiplexer alongside yamux. Yamux is preferred when both are available.")
.value_name("BOOLEAN")
.action(ArgAction::Set)
.num_args(0..=1)
.default_value("true")
.default_missing_value("true")
.help("Enables the mplex multiplexer alongside yamux. Yamux is preferred when both are available. Enabled by default; set to \"false\" to disable.")
.display_order(0)
)
.arg(

View File

@@ -7,7 +7,7 @@ use beacon_chain::graffiti_calculator::GraffitiOrigin;
use bls::PublicKeyBytes;
use clap::{ArgMatches, Id, parser::ValueSource};
use clap_utils::flags::DISABLE_MALLOC_TUNING_FLAG;
use clap_utils::{parse_flag, parse_required};
use clap_utils::{parse_flag, parse_optional, parse_required};
use client::{ClientConfig, ClientGenesis};
use directory::{DEFAULT_BEACON_NODE_DIR, DEFAULT_NETWORK_DIR, DEFAULT_ROOT_DIR};
use environment::RuntimeContext;
@@ -1434,8 +1434,8 @@ pub fn set_network_config(
config.disable_quic_support = true;
}
if parse_flag(cli_args, "enable-mplex") {
config.enable_mplex = true;
if let Some(enable_mplex) = parse_optional(cli_args, "enable-mplex")? {
config.enable_mplex = enable_mplex;
}
if parse_flag(cli_args, "disable-upnp") {

View File

@@ -84,6 +84,10 @@ Options:
--discovery-port6 <PORT>
The UDP port that discovery will listen on over IPv6 if listening over
both IPv4 and IPv6. Defaults to `port6`
--enable-mplex [<BOOLEAN>]
Enables the mplex multiplexer alongside yamux. Yamux is preferred when
both are available. Enabled by default; set to "false" to disable.
[default: true]
--enr-address <ADDRESS>...
The IP address/ DNS address to broadcast to other peers on how to
reach this node. If a DNS address is provided, the enr-address is set
@@ -489,9 +493,6 @@ Flags:
Sets the local ENR IP address and port to match those set for
lighthouse. Specifically, the IP address will be the value of
--listen-address and the UDP port will be --discovery-port.
--enable-mplex
Enables mplex multiplexer alongside yamux. Yamux is preferred when
both are available.
--enable-partial-columns
Enable partial messages for data columns. This can reduce the amount
of data sent over the network. Enabled by default on Hoodi and

View File

@@ -2785,6 +2785,45 @@ fn invalid_block_roots_default_mainnet() {
})
}
#[test]
fn enable_mplex_default() {
CommandLineTest::new()
.run_with_zero_port()
.with_config(|config| {
assert!(config.network.enable_mplex);
})
}
#[test]
fn enable_mplex_true() {
CommandLineTest::new()
.flag("enable-mplex", Some("true"))
.run_with_zero_port()
.with_config(|config| {
assert!(config.network.enable_mplex);
})
}
#[test]
fn enable_mplex_false() {
CommandLineTest::new()
.flag("enable-mplex", Some("false"))
.run_with_zero_port()
.with_config(|config| {
assert!(!config.network.enable_mplex);
})
}
#[test]
fn enable_mplex_no_value() {
CommandLineTest::new()
.flag("enable-mplex", None)
.run_with_zero_port()
.with_config(|config| {
assert!(config.network.enable_mplex);
})
}
#[test]
fn partial_columns() {
CommandLineTest::new()