Skip to content

Conversation

@RolandSherwin
Copy link
Member

Ontop of #3264

  • Removes the ExternalAddressManager as it is flawed and allowed a node to set multiple external addresses when it's port was rotating (as with symmetric nats).

grumbach and others added 11 commits October 23, 2025 10:58
This commit systematically removes libp2p relay functionality from the
Autonomi network, transitioning to a network architecture that relies
solely on direct QUIC connections and UPnP for NAT traversal.

Changes include:
- Remove "relay" feature from libp2p dependencies in Cargo.toml
- Remove relay_client field from NetworkConfig and NodeBuilder
- Simplify transport layer to use only QUIC (remove relay transport)
- Remove relay behaviors (relay_client, relay_server) from NodeBehaviour
- Remove RelayManager and connected_relay_clients from SwarmDriver
- Remove all relay event handling from swarm events
- Remove relay-specific metrics and monitoring
- Delete relay_manager.rs and relay_client.rs metrics files
- Remove relay CLI options and Python bindings
- Update UPnP to be enabled by default for non-local nodes
- Remove relay peer tracking and related statistics
- Simplify identify event handling to remove relay address crafting

This is a breaking change that simplifies the codebase and improves
direct peer-to-peer communication by removing relay bottlenecks.
Nodes behind restrictive NATs will need to rely on UPnP for connectivity.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- This is a non-breaking change as the NodeRegistry is unaffected
We want to know whether the node is properly being set to server mode.

If it is not, the node does not function as a KAD node, and this led to problems in the
`2025.7.1.1`/`2025.7.1.3` releases.
Not doing this means the node will not behave as a KAD node.

Previously we were getting this behaviour from the external address manager, which has since been
removed.
}

/// The shared recorders that are used to record metrics.
#[allow(dead_code)] // TODO: Remove this once we have removed all the deprecated metrics related to relay.

Check notice

Code scanning / devskim

A "TODO" or similar was left in source code, possibly indicating incomplete functionality Note

Suspicious comment
@RolandSherwin RolandSherwin changed the base branch from main to reachability October 31, 2025 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants