npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mesh-protocol

v1.0.5

Published

Peer discovery system in a p2p network that uses websockets

Readme

PeerManager: The Backbone of a Decentralized Network

The Thought Process: Building a Self-Sustaining Web

Imagine a network where a node needs to know only one other peer, and from that single connection, it discovers and links to every other node. Eventually, the node will be connected to all other nodes and the other nodes will eventually be connected to this node. This is the foundation of PeerManager—a self-expanding, decentralized WebSocket-based network that is resilient, autonomous, and infinitely scalable.

At its core, each node in this network plays a dual role:

  1. WebSocket Server: Accepts connections from new peers.
  2. WebSocket Client: Actively connects to known peers.

This creates a mesh network where every node can reach every other node, ensuring high redundancy, auto-healing connections, and seamless peer discovery—all without a central authority.

The Design: A Dynamic and Adaptive System

1. Self-Discovery: The Network That Grows Itself

A node starts with a single known peer, but the moment it joins the network:

  • It broadcasts its presence.
  • It receives a list of other known peers.
  • It connects to them dynamically, further expanding the web.

In essence, a single connection is enough to snowball into a fully connected network.

2. Every Node is Both Server and Client

This bidirectional connectivity is what makes the system so powerful. A node doesn’t just wait to be discovered—it actively reaches out, constantly expanding the network without relying on a central registry.

3. Event-Based Communication: A Language for Peers

Nodes communicate using structured events, enabling flexible messaging, peer management, and future extensibility. The system can be adapted for secure key storage, real-time messaging, decentralized databases, and more.

4. Resilient & Self-Healing

If a peer disconnects, the network adapts:

  • Other nodes attempt to reconnect.
  • If a connection is lost, peers are reintroduced dynamically.
  • The system remains functional even if multiple nodes go offline.

Use Cases: The Power Behind the Framework

Some potential applications include:

1. Decentralized Key Management Network (DKMN)

  • Nodes store shards of a cryptographic key, split using Shamir’s Secret Sharing (SSS).
  • A threshold of nodes must cooperate to reconstruct the original key.
  • Ideal for secure password management, cryptocurrency wallets, and sensitive data storage.

2. Peer-to-Peer Messaging & Communication

  • A serverless chat network where messages propagate directly between users.
  • No single point of failure, ensuring privacy and resilience.

3. Blockchain Node Discovery & Syncing

  • Quickly connects blockchain nodes without relying on static lists.
  • Facilitates transaction relay, block propagation, and state synchronization.

4. IoT Networks & Distributed Sensor Systems

  • IoT devices automatically discover and communicate without a central controller.
  • Data is shared, processed, and stored across the entire network.

The Code: Breaking Down the Magic

1. Initializing the PeerManager

const peerManager = new PeerManager("ws://localhost:8080");
  • Starts a WebSocket server that listens for incoming connections.

2. Handling New Peer Connections

client.send(
  JSON.stringify({
    event: "KNOWN_PEERS",
    data: {
      value: this.peers.map((p) => p.peerUrl).concat(this.current_node_url),
    },
  })
);
  • When a node connects, it shares its list of known peers, accelerating network expansion.

3. Dynamic Peer Discovery

this.broadcast("REQUEST_KNOWN_PEERS", { requester: this.current_node_url });
  • Periodically asks for known peers, ensuring constant growth and reconnection.

4. Event-Based Message Handling

if (!isPeerEvent(parsedData)) {
  console.warn("Received invalid peer event:", parsedData);
  return;
}
const handler = this.eventHandlers.get(event);
if (handler) {
  handler(client, data);
} else {
  console.warn(`No handler registered for event: ${event}`);
}
  • Validates messages and routes them to appropriate handlers.

5. Auto-Reconnecting Disconnected Peers

setTimeout(() => this.addPeer(peerUrl), 5000);
  • If a peer goes offline, a reconnection attempt is made after 5 seconds, ensuring self-healing connections.

Why This System is Revolutionary

1. Minimal Setup, Maximum Connectivity

  • A node only needs one known peer to eventually reach the entire network.
  • No manual configuration required.

2. Fully Decentralized & Self-Sustaining

  • Peers dynamically discover, connect, and maintain links without central servers.
  • The network grows naturally over time.

3. Robust and Fault-Tolerant

  • If nodes drop off, others fill in the gaps.
  • Automatic reconnections make the system highly resilient to failures.

4. Scalable and Extensible

  • The event-based architecture makes it easy to add new functionality.
  • Can be adapted for various decentralized applications beyond peer management.

Improvements & Future Enhancements

1. Security Enhancements

  • Implement end-to-end encryption for private messaging.
  • Introduce peer authentication to prevent Sybil attacks.

2. Performance & Scalability Upgrades

  • Optimize peer discovery with Distributed Hash Tables (DHTs).
  • Introduce a hierarchical topology for better large-scale performance.

3. Fault Tolerance Enhancements

  • Implement exponential backoff for reconnections.
  • Store peer data persistently to avoid excessive network overhead.

4. Data Integrity & Validation

  • Use cryptographic signatures to authenticate messages.
  • Implement checksum validation to detect tampered data.

This system isn’t just a WebSocket peer manager—it’s the blueprint for next-generation decentralized applications. Whether for secure key management, real-time messaging, IoT networking, or blockchain node discovery, PeerManager unlocks the true potential of decentralized networking.

By refining its security, scalability, and efficiency, this framework can power unstoppable, self-healing, and infinitely scalable networks—shaping the future of decentralized computing. 🚀