From 50e5dd27dc905fbe71778b00f62aad3490e47de5 Mon Sep 17 00:00:00 2001
From: Kazunobu Ndong <33208377+ndkazu@users.noreply.github.com>
Date: Thu, 12 Dec 2024 23:04:35 +0900
Subject: [PATCH] Remove collation-generation subsystem from validator nodes
 (#6832)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

# Description
Issue #6476
Collation-generation is not needed for validators node, and should be
removed.

## Implementation
Use a `DummySubsystem` for `collation_generation`

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: command-bot <>
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
---
 polkadot/node/service/src/overseer.rs |  9 +++++----
 prdoc/pr_6832.prdoc                   | 13 +++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)
 create mode 100644 prdoc/pr_6832.prdoc

diff --git a/polkadot/node/service/src/overseer.rs b/polkadot/node/service/src/overseer.rs
index 279b6ff8070..e4ea6efeaac 100644
--- a/polkadot/node/service/src/overseer.rs
+++ b/polkadot/node/service/src/overseer.rs
@@ -210,7 +210,7 @@ pub fn validator_overseer_builder<Spawner, RuntimeClient>(
 			AuthorityDiscoveryService,
 		>,
 		ChainApiSubsystem<RuntimeClient>,
-		CollationGenerationSubsystem,
+		DummySubsystem,
 		CollatorProtocolSubsystem,
 		ApprovalDistributionSubsystem,
 		ApprovalVotingSubsystem,
@@ -237,6 +237,7 @@ where
 	let network_bridge_metrics: NetworkBridgeMetrics = Metrics::register(registry)?;
 	let approval_voting_parallel_metrics: ApprovalVotingParallelMetrics =
 		Metrics::register(registry)?;
+
 	let builder = Overseer::builder()
 		.network_bridge_tx(NetworkBridgeTxSubsystem::new(
 			network_service.clone(),
@@ -295,7 +296,7 @@ where
 		))
 		.pvf_checker(PvfCheckerSubsystem::new(keystore.clone(), Metrics::register(registry)?))
 		.chain_api(ChainApiSubsystem::new(runtime_client.clone(), Metrics::register(registry)?))
-		.collation_generation(CollationGenerationSubsystem::new(Metrics::register(registry)?))
+		.collation_generation(DummySubsystem)
 		.collator_protocol({
 			let side = match is_parachain_node {
 				IsParachainNode::Collator(_) | IsParachainNode::FullNode =>
@@ -434,7 +435,7 @@ pub fn validator_with_parallel_overseer_builder<Spawner, RuntimeClient>(
 			AuthorityDiscoveryService,
 		>,
 		ChainApiSubsystem<RuntimeClient>,
-		CollationGenerationSubsystem,
+		DummySubsystem,
 		CollatorProtocolSubsystem,
 		DummySubsystem,
 		DummySubsystem,
@@ -519,7 +520,7 @@ where
 		))
 		.pvf_checker(PvfCheckerSubsystem::new(keystore.clone(), Metrics::register(registry)?))
 		.chain_api(ChainApiSubsystem::new(runtime_client.clone(), Metrics::register(registry)?))
-		.collation_generation(CollationGenerationSubsystem::new(Metrics::register(registry)?))
+		.collation_generation(DummySubsystem)
 		.collator_protocol({
 			let side = match is_parachain_node {
 				IsParachainNode::Collator(_) | IsParachainNode::FullNode =>
diff --git a/prdoc/pr_6832.prdoc b/prdoc/pr_6832.prdoc
new file mode 100644
index 00000000000..bd0abbfba85
--- /dev/null
+++ b/prdoc/pr_6832.prdoc
@@ -0,0 +1,13 @@
+# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
+# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
+
+title: "Remove collation-generation subsystem from validator nodes"
+
+doc:
+  - audience: Node Dev
+    description: |
+      Collation-generation is only needed for Collators, and therefore not needed for validators
+
+crates: 
+  - name: polkadot-service
+    bump: patch
\ No newline at end of file
-- 
GitLab