From ecf736a59ca1bf789a288c536c455daf64d44c38 Mon Sep 17 00:00:00 2001
From: Sacha Froment <sfroment42@gmail.com>
Date: Thu, 9 Jan 2025 18:22:37 +0100
Subject: [PATCH] feat: add ping protocol to avoid connection monitor log

Signed-off-by: Sacha Froment <sfroment42@gmail.com>
---
 packages/network/package.json |  1 +
 packages/network/src/node.ts  |  2 ++
 pnpm-lock.yaml                | 15 +++++++++++++++
 3 files changed, 18 insertions(+)

diff --git a/packages/network/package.json b/packages/network/package.json
index 36fe16782..b856a8ae2 100644
--- a/packages/network/package.json
+++ b/packages/network/package.json
@@ -37,6 +37,7 @@
 		"@libp2p/dcutr": "^2.0.6",
 		"@libp2p/devtools-metrics": "^1.1.5",
 		"@libp2p/identify": "^3.0.6",
+		"@libp2p/ping": "2.0.9",
 		"@libp2p/pubsub-peer-discovery": "^11.0.0",
 		"@libp2p/webrtc": "^5.0.9",
 		"@libp2p/websockets": "^9.1.1",
diff --git a/packages/network/src/node.ts b/packages/network/src/node.ts
index 75ed00fd5..398835c76 100644
--- a/packages/network/src/node.ts
+++ b/packages/network/src/node.ts
@@ -22,6 +22,7 @@ import type {
 	Stream,
 	StreamHandler,
 } from "@libp2p/interface";
+import { ping } from "@libp2p/ping";
 import { pubsubPeerDiscovery } from "@libp2p/pubsub-peer-discovery";
 import { webRTC, webRTCDirect } from "@libp2p/webrtc";
 import { webSockets } from "@libp2p/websockets";
@@ -101,6 +102,7 @@ export class DRPNetworkNode {
 			: [_pubsubPeerDiscovery];
 
 		const _node_services = {
+			ping: ping(),
 			autonat: autoNAT(),
 			dcutr: dcutr(),
 			identify: identify(),
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 16ab6be15..32dc8fa51 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -190,6 +190,9 @@ importers:
       '@libp2p/identify':
         specifier: ^3.0.6
         version: 3.0.14
+      '@libp2p/ping':
+        specifier: 2.0.9
+        version: 2.0.9
       '@libp2p/pubsub-peer-discovery':
         specifier: ^11.0.0
         version: 11.0.1
@@ -1635,6 +1638,9 @@ packages:
   '@libp2p/peer-store@11.0.13':
     resolution: {integrity: sha512-KieXSY8ysyC7ROJ7GI7dtQkowRFDuG2jk5HQedSXNUe74JurG0uI/HddFF8yij+HgY/kZiBwWUQbKrTC4Cewbw==}
 
+  '@libp2p/ping@2.0.9':
+    resolution: {integrity: sha512-esS6crF51u0GwKooTdpFGaEvIA0+UDRyiTnZicUg44WhcM2xpo8kSZh7QTFgEgy1lGD/K/a5KDuSSac4+3EqNA==}
+
   '@libp2p/pubsub-peer-discovery@11.0.1':
     resolution: {integrity: sha512-bT7UO7tQ4mZCPFE0eS8Fx19B8MGzxjbTNR6SwcLGcOqOqUTvc2CLByMvcy3iMXuKjmds6G+VUf5ZMhvjGLTznA==}
 
@@ -6816,6 +6822,15 @@ snapshots:
       uint8arraylist: 2.4.8
       uint8arrays: 5.1.0
 
+  '@libp2p/ping@2.0.9':
+    dependencies:
+      '@libp2p/crypto': 5.0.8
+      '@libp2p/interface': 2.3.0
+      '@libp2p/interface-internal': 2.2.1
+      '@multiformats/multiaddr': 12.3.4
+      it-byte-stream: 1.1.0
+      uint8arrays: 5.1.0
+
   '@libp2p/pubsub-peer-discovery@11.0.1':
     dependencies:
       '@libp2p/crypto': 5.0.8