From 2b34f2ddd4497376a002dee8c99709445427db34 Mon Sep 17 00:00:00 2001
From: "paritytech-cmd-bot-polkadot-sdk[bot]"
 <179002856+paritytech-cmd-bot-polkadot-sdk[bot]@users.noreply.github.com>
Date: Tue, 14 Jan 2025 18:01:15 +0100
Subject: [PATCH] [stable2412] Backport #7133: Sufix litep2p to the identify
 agent version for visibility (#7153)

Backport #7133 into `stable2412` from lexnv.

See the
[documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md)
on how to use this bot.

<!--
  # To be used by other automation, do not modify:
  original-pr-number: #${pull_number}
-->

Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
---
 prdoc/pr_7133.prdoc                               | 15 +++++++++++++++
 substrate/client/network/src/litep2p/discovery.rs |  2 +-
 2 files changed, 16 insertions(+), 1 deletion(-)
 create mode 100644 prdoc/pr_7133.prdoc

diff --git a/prdoc/pr_7133.prdoc b/prdoc/pr_7133.prdoc
new file mode 100644
index 00000000000..ca0d2bb0bd4
--- /dev/null
+++ b/prdoc/pr_7133.prdoc
@@ -0,0 +1,15 @@
+# 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: Sufix litep2p to the identify agent version for visibility
+
+doc:
+  - audience: [Node Dev, Node Operator]
+    description: |
+      This PR adds the `(litep2p)` suffix to the agent version (user agent) of the identify protocol.
+      The change is needed to gain visibility into network backends and determine exactly the number of validators that are running litep2p.
+      Using tools like subp2p-explorer, we can determine if the validators are running litep2p nodes.
+
+crates:
+- name: sc-network
+  bump: patch
diff --git a/substrate/client/network/src/litep2p/discovery.rs b/substrate/client/network/src/litep2p/discovery.rs
index 9043f9420e8..a48cf867743 100644
--- a/substrate/client/network/src/litep2p/discovery.rs
+++ b/substrate/client/network/src/litep2p/discovery.rs
@@ -246,7 +246,7 @@ impl Discovery {
 		_peerstore_handle: Arc<dyn PeerStoreProvider>,
 	) -> (Self, PingConfig, IdentifyConfig, KademliaConfig, Option<MdnsConfig>) {
 		let (ping_config, ping_event_stream) = PingConfig::default();
-		let user_agent = format!("{} ({})", config.client_version, config.node_name);
+		let user_agent = format!("{} ({}) (litep2p)", config.client_version, config.node_name);
 
 		let (identify_config, identify_event_stream) =
 			IdentifyConfig::new("/substrate/1.0".to_string(), Some(user_agent));
-- 
GitLab