diff --git a/polkadot/cli/src/cli.rs b/polkadot/cli/src/cli.rs
index be6e64b9d8a4818c4050938164dbb17820e4eb52..c837d2b416e7b9b829b5dd9615f10a38a934ff10 100644
--- a/polkadot/cli/src/cli.rs
+++ b/polkadot/cli/src/cli.rs
@@ -83,7 +83,10 @@ pub struct RunCmd {
 	#[structopt(long = "force-rococo")]
 	pub force_rococo: bool,
 
-	/// Enable the authority discovery module on validator or sentry nodes.
+	/// Disable the authority discovery module on validator or sentry nodes.
+	///
+	/// Enabled by default on validator and sentry nodes. Always disabled on non
+	/// validator or sentry nodes.
 	///
 	/// When enabled:
 	///
@@ -94,8 +97,8 @@ pub struct RunCmd {
 	/// (2) As a validator or sentry node: Discover addresses of validators or
 	///     addresses of their sentry nodes and maintain a permanent connection
 	///     to a subset.
-	#[structopt(long = "enable-authority-discovery")]
-	pub authority_discovery_enabled: bool,
+	#[structopt(long = "disable-authority-discovery")]
+	pub authority_discovery_disabled: bool,
 
 	/// Setup a GRANDPA scheduled voting pause.
 	///
diff --git a/polkadot/cli/src/command.rs b/polkadot/cli/src/command.rs
index d4fcb5aaab0859e1967682d0bf121c98c112b891..7a98cda71aa888272b006f01a94d0e05ad6a62d0 100644
--- a/polkadot/cli/src/command.rs
+++ b/polkadot/cli/src/command.rs
@@ -126,7 +126,7 @@ pub fn run() -> Result<()> {
 
 			set_default_ss58_version(chain_spec);
 
-			let authority_discovery_enabled = cli.run.authority_discovery_enabled;
+			let authority_discovery_disabled = cli.run.authority_discovery_disabled;
 			let grandpa_pause = if cli.run.grandpa_pause.is_empty() {
 				None
 			} else {
@@ -148,7 +148,7 @@ pub fn run() -> Result<()> {
 					Role::Light => service::build_light(config).map(|(task_manager, _)| task_manager),
 					_ => service::build_full(
 						config,
-						authority_discovery_enabled,
+						authority_discovery_disabled,
 						grandpa_pause,
 					).map(|full| full.task_manager),
 				}
@@ -164,7 +164,7 @@ pub fn run() -> Result<()> {
 
 			set_default_ss58_version(chain_spec);
 
-			let authority_discovery_enabled = cli.run.authority_discovery_enabled;
+			let authority_discovery_disabled = cli.run.authority_discovery_disabled;
 			let grandpa_pause = if cli.run.grandpa_pause.is_empty() {
 				None
 			} else {
@@ -188,7 +188,7 @@ pub fn run() -> Result<()> {
 					network_status_sinks,
 					..
 				} = service::build_full(
-					config, authority_discovery_enabled, grandpa_pause,
+					config, authority_discovery_disabled, grandpa_pause,
 				)?;
 				let client = Arc::new(client);
 
diff --git a/polkadot/node/service/src/lib.rs b/polkadot/node/service/src/lib.rs
index f173bd2b41ce49f4734ddf4b64ad5e217760a459..858ab87d38be7d83bb3166d560ae739c806b0e6b 100644
--- a/polkadot/node/service/src/lib.rs
+++ b/polkadot/node/service/src/lib.rs
@@ -329,7 +329,7 @@ impl<C> NewFull<C> {
 #[cfg(feature = "full-node")]
 pub fn new_full<RuntimeApi, Executor>(
 	mut config: Configuration,
-	authority_discovery_enabled: bool,
+	authority_discovery_disabled: bool,
 	grandpa_pause: Option<(u32, u32)>,
 ) -> Result<NewFull<Arc<FullClient<RuntimeApi, Executor>>>, Error>
 	where
@@ -537,7 +537,7 @@ pub fn new_full<RuntimeApi, Executor>(
 		use sc_network::Event;
 		use futures::StreamExt;
 
-		if authority_discovery_enabled {
+		if !authority_discovery_disabled {
 			let (sentries, authority_discovery_role) = match role {
 				Role::Authority { ref sentry_nodes } => (
 					sentry_nodes.clone(),
@@ -744,31 +744,31 @@ pub fn build_light(config: Configuration) -> Result<(TaskManager, RpcHandlers),
 #[cfg(feature = "full-node")]
 pub fn build_full(
 	config: Configuration,
-	authority_discovery_enabled: bool,
+	authority_discovery_disabled: bool,
 	grandpa_pause: Option<(u32, u32)>,
 ) -> Result<NewFull<Client>, ServiceError> {
 	if config.chain_spec.is_rococo() {
 		new_full::<rococo_runtime::RuntimeApi, RococoExecutor>(
 			config,
-			authority_discovery_enabled,
+			authority_discovery_disabled,
 			grandpa_pause,
 		).map(|full| full.with_client(Client::Rococo))
 	} else if config.chain_spec.is_kusama() {
 		new_full::<kusama_runtime::RuntimeApi, KusamaExecutor>(
 			config,
-			authority_discovery_enabled,
+			authority_discovery_disabled,
 			grandpa_pause,
 		).map(|full| full.with_client(Client::Kusama))
 	} else if config.chain_spec.is_westend() {
 		new_full::<westend_runtime::RuntimeApi, WestendExecutor>(
 			config,
-			authority_discovery_enabled,
+			authority_discovery_disabled,
 			grandpa_pause,
 		).map(|full| full.with_client(Client::Westend))
 	} else {
 		new_full::<polkadot_runtime::RuntimeApi, PolkadotExecutor>(
 			config,
-			authority_discovery_enabled,
+			authority_discovery_disabled,
 			grandpa_pause,
 		).map(|full| full.with_client(Client::Polkadot))
 	}
diff --git a/polkadot/node/test-service/src/lib.rs b/polkadot/node/test-service/src/lib.rs
index 33969bb7dfb038fb2aed4646a226f9706ee3fef1..2b333a78bc1b2a562b1ca8192802d4d5957884f2 100644
--- a/polkadot/node/test-service/src/lib.rs
+++ b/polkadot/node/test-service/src/lib.rs
@@ -61,14 +61,14 @@ native_executor_instance!(
 /// Create a new Polkadot test service for a full node.
 pub fn polkadot_test_new_full(
 	config: Configuration,
-	authority_discovery_enabled: bool,
+	authority_discovery_disabled: bool,
 ) -> Result<
 	NewFull<Arc<FullClient<polkadot_test_runtime::RuntimeApi, PolkadotTestExecutor>>>,
 	ServiceError,
 > {
 	new_full::<polkadot_test_runtime::RuntimeApi, PolkadotTestExecutor>(
 		config,
-		authority_discovery_enabled,
+		authority_discovery_disabled,
 		None,
 	).map_err(Into::into)
 }
@@ -192,9 +192,9 @@ pub fn run_test_node(
 > {
 	let config = node_config(storage_update_func, task_executor, key, boot_nodes);
 	let multiaddr = config.network.listen_addresses[0].clone();
-	let authority_discovery_enabled = false;
+	let authority_discovery_disabled = true;
 	let NewFull {task_manager, client, network, rpc_handlers, overseer_handler, ..} =
-		polkadot_test_new_full(config, authority_discovery_enabled)
+		polkadot_test_new_full(config, authority_discovery_disabled)
 			.expect("could not create Polkadot test service");
 
 	let peer_id = network.local_peer_id().clone();