Skip to main content

P2P-NETWORK-BOOTSTRAPPING

Introduction

Nomos network bootstrapping is the process by which a new node discovers peers and synchronizes with the existing decentralized network. It ensures that a node can:

  1. Discover Peers – Find other active nodes in the network.
  2. Establish Connections – Securely connect to trusted peers.
  3. Negotiate (libp2p) Protocols - Ensure that other peers operate in the same protocols as the node needs.

Overview

The Nomos P2P network bootstrapping strategy relies on a designated subset of bootstrap nodes to facilitate secure and efficient node onboarding. These nodes serve as the initial entry points for new network participants.

Key Design Principles

Trusted Bootstrap Nodes

A curated set of publicly announced and highly available nodes ensures reliability during initial peer discovery. These nodes are configured with elevated connection limits to handle a high volume of incoming bootstrapping requests from new participants.

Node Configuration & Onboarding

New node operators must explicitly configure their instances with the addresses of bootstrap nodes. This configuration may be preloaded or dynamically fetched from a trusted source to minimize manual setup.

Network Integration

Upon initialization, the node establishes connections with the bootstrap nodes and begins participating in Nomos networking protocols. Through these connections, the node discovers additional peers, synchronizes with the network state, and engages in protocol-specific communication (e.g., consensus, block propagation).

Security & Decentralization Considerations

Trust Minimization: While bootstrap nodes provide initial connectivity, the network rapidly transitions to decentralized peer discovery to prevent over-reliance on any single entity.

Authenticated Announcements: The identities and addresses of bootstrap nodes are publicly verifiable to mitigate impersonation attacks. From libp2p documentation:

> To authenticate each others' peer IDs, peers encode their peer ID into a self-signed certificate, which they sign using their host's private key.

Dynamic Peer Management: After bootstrapping, nodes continuously refine their peer lists to maintain a resilient and distributed network topology.

This approach ensures rapid, secure, and scalable network participation while preserving the decentralized ethos of the Nomos protocol.

Protocol

Protocol Overview

The bootstrapping protocol follows libp2p conventions for peer discovery and connection establishment. Implementation details are handled by the underlying libp2p stack with Nomos-specific configuration parameters.

Bootstrapping Process

Step-by-Step bootstrapping process

  1. Node Initial Configuration: New nodes load pre-configured bootstrap node addresses. Addresses may be IP or DNS embedded in a compatible libp2p PeerId multiaddress. Node operators may chose to advertise more than one address. This is out of the scope of this protocol. For example:

    /ip4/198.51.100.0/udp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N or

    /dns/foo.bar.net/udp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N

  2. Secure Connection: Nodes establish connections to bootstrap nodes announced addresses. Verifies network identity and protocol compatibility.

  3. Peer Discovery: Requests and receives validated peer lists from bootstrap nodes. Each entry includes connectivity details as per the peer discovery protocol engaging after the initial connection.

  4. Network Integration: Iteratively connects to discovered peers. Gradually build peer connections.

  5. Protocol Engagement: Establishes required protocol channels (gossip/consensus/sync). Begins participating in network operations.

  6. Ongoing Maintenance: Continuously evaluates and refreshes peer connections. Ideally removes the connection to the bootstrap node itself. Bootstrap nodes may chose to remove the connection on their side to keep high availability for other nodes.

Implementation Details

The bootstrapping process for the Nomos p2p network uses the QUIC transport as specified in the Nomos network specification.

Bootstrapping is separated from the network's peer discovery protocol. It assumes that there is one protocol that would engage as soon as the connection with the bootstrapping node triggers. Currently Nomos network uses kademlia as the current first approach for the Nomos p2p network, this comes granted.

Bootstrap Node Requirements

Bootstrap nodes MUST fulfill the following requirements:

  • High Availability: Maintain uptime of 99.5% or higher
  • Connection Capacity: Support minimum 1000 concurrent connections
  • Geographic Distribution: Deploy across multiple regions
  • Protocol Compatibility: Support all required Nomos network protocols
  • Security: Implement proper authentication and rate limiting

Network Configuration

Bootstrap node addresses are distributed through:

  • Hardcoded addresses in node software releases
  • DNS seeds for dynamic address resolution
  • Community-maintained lists with cryptographic verification

Security Considerations

Trust Model

Bootstrap nodes operate under a minimal trust model:

  • Nodes verify peer identities through cryptographic authentication
  • Bootstrap connections are temporary and replaced by organic peer discovery
  • No single bootstrap node can control network participation

Attack Mitigation

Sybil Attack Protection: Bootstrap nodes implement connection limits and peer verification to prevent malicious flooding.

Eclipse Attack Prevention: Nodes connect to multiple bootstrap nodes and rapidly diversify their peer connections.

Denial of Service Resistance: Rate limiting and connection throttling protect bootstrap nodes from resource exhaustion attacks.

Performance Characteristics

Bootstrapping Metrics

  • Initial Connection Time: Target < 30 seconds to first bootstrap node
  • Peer Discovery Duration: Discover minimum viable peer set within 2 minutes
  • Network Integration: Full protocol engagement within 5 minutes

Resource Requirements

Bootstrap Nodes

  • Memory: Minimum 4GB RAM
  • Bandwidth: 100 Mbps sustained
  • Storage: 50GB available space

Regular Nodes

  • Memory: 512MB for bootstrapping process
  • Bandwidth: 10 Mbps during initial sync
  • Storage: Minimal requirements

References

Copyright and related rights waived via CC0.