Skip to content

p2p: make safety limits configurable (caps + per-peer budgets + relay cache bounds) #246

@TheNewAutonomy

Description

@TheNewAutonomy

Goal

Make P2P safety limits tunable per network (dev/testnet/mainnet) without code changes, while keeping strict validation and safe defaults.

Context

We implemented conservative hard defaults for:

  • libp2p gossipsub message caps + per-peer budgets (crates/catalyst-network/src/service.rs)
  • simple TCP frame caps + per-connection budgets (crates/catalyst-network/src/simple.rs)
  • relay dedup cache bounding (RelayCache in crates/catalyst-cli/src/node.rs)

This ticket is to move those knobs into config and validate them.

Scope

  • Add config fields (with safe defaults) for:
    • max gossip message bytes
    • per-peer msgs/sec and bytes/sec
    • max TCP frame bytes
    • per-connection msgs/sec and bytes/sec
    • relay cache max/target size and retention window
  • Validate bounds on startup (refuse unsafe/unbounded values).
  • Document recommended defaults for public testnet vs mainnet.

Acceptance criteria

  • Operators can tune limits in config.toml.
  • Nodes enforce configured limits deterministically.
  • Invalid configs are rejected with actionable errors.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions