Drastic Network Disruptions After Connmgr Limit Reduce on a Single Node

Problem Description

We have implemented a blockchain network using libp2p, which has been running smoothly. However, we recently encountered a peculiar issue:


  • 14:32: Upgraded one of the nodes (total network approximately 200 nodes) and adjusted the connmgr connection limits from 200-500 to 30-60.
  • 21:24: Noticed a sudden significant decrease in pubsub messages within the p2p network, but still with enough connected peers
  • 22:10: Rolled back the upgrade and restarted the upgraded node.

After restarting a node, the messages in the entire p2p network returned to normal.

We attempted to reproduce the issue but were unsuccessful. We suspect there might be two potential issues:

  1. Why does a modification in one node within the p2p network have such a significant impact on the entire network?
  2. Is there any internal mechanism in libp2p causing this problem?

We kindly request information on any relevant changes or updates in libp2p starting from version v0.14.3 that might be related to the observed issue. Your assistance and insights into resolving this matter would be greatly appreciated.

Environment and Dependencies

  • libp2p Version:
    • go-libp2p v0.14.3
    • go-libp2p-connmgr v0.2.4
  • other tools:
    • go-libp2p-circuit v0.4.0
    • go-libp2p-core v0.8.5
    • go-libp2p-discovery v0.5.0
    • go-libp2p-kad-dht v0.11.1
    • go-libp2p-pubsub v0.4.1
    • go-libp2p-secio v0.2.2
    • go-libp2p-transport-upgrader v0.4.2
    • go-libp2p-yamux v0.5.4
    • go-tcp-transport v0.2.3

This seems like a more technical issues. You’ll probably have more luck asking in the Github go-libp2p discussion forum: libp2p/go-libp2p · Discussions · GitHub