Skip to content

Commit cd87d23

Browse files
committed
add connection logs
1 parent 9259f1a commit cd87d23

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

pkg/p2p/client.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ type Client struct {
6464
ps *pubsub.PubSub
6565
started bool
6666

67+
seedPeers []peer.AddrInfo
68+
6769
maintenanceCancel context.CancelFunc
6870
maintenanceWg sync.WaitGroup
6971
connectSem chan struct{}
@@ -185,6 +187,7 @@ func (c *Client) startWithHost(ctx context.Context, h host.Host) error {
185187

186188
c.started = true
187189

190+
c.host.Network().Notify(c.newDisconnectNotifee())
188191
c.startConnectionMaintenance()
189192

190193
return nil
@@ -267,6 +270,38 @@ func (c *Client) Peers() []PeerConnection {
267270
return res
268271
}
269272

273+
type disconnectNotifee struct {
274+
c *Client
275+
}
276+
277+
func (n disconnectNotifee) Connected(_ network.Network, conn network.Conn) {
278+
p := conn.RemotePeer()
279+
for _, sp := range n.c.seedPeers {
280+
if sp.ID == p {
281+
n.c.logger.Info().Str("peer", p.String()).Msg("connected to seed peer")
282+
return
283+
}
284+
}
285+
}
286+
func (n disconnectNotifee) OpenedStream(_ network.Network, _ network.Stream) {}
287+
func (n disconnectNotifee) ClosedStream(_ network.Network, _ network.Stream) {}
288+
func (n disconnectNotifee) Listen(_ network.Network, _ multiaddr.Multiaddr) {}
289+
func (n disconnectNotifee) ListenClose(_ network.Network, _ multiaddr.Multiaddr) {}
290+
291+
func (n disconnectNotifee) Disconnected(_ network.Network, conn network.Conn) {
292+
p := conn.RemotePeer()
293+
for _, sp := range n.c.seedPeers {
294+
if sp.ID == p {
295+
n.c.logger.Info().Str("peer", p.String()).Msg("disconnected from seed peer")
296+
return
297+
}
298+
}
299+
}
300+
301+
func (c *Client) newDisconnectNotifee() disconnectNotifee {
302+
return disconnectNotifee{c: c}
303+
}
304+
270305
// startConnectionMaintenance launches a background goroutine that periodically
271306
// refreshes peer discovery via DHT. This ensures P2P connectivity recovers after
272307
// transient network failures and discovers new peers without requiring a full node restart.
@@ -337,6 +372,7 @@ func (c *Client) listen() (host.Host, error) {
337372

338373
func (c *Client) setupDHT(ctx context.Context) error {
339374
peers := c.parseAddrInfoList(c.conf.Peers)
375+
c.seedPeers = peers
340376
if len(peers) == 0 {
341377
c.logger.Info().Msg("no peers - only listening for connections")
342378
}

0 commit comments

Comments
 (0)