Skip to content

Peer routing fails for peers behind NAT (with /p2p-circuit) #78

@2color

Description

@2color

What's wrong

When running someguy with a public IP that isn't dialable (due to firewall or whatnot) and trying to resolve a PeerID to multiaddrs for a peer behind NAT, someguy doesn't return any results.

This was observed in the delegated routing endpoint, which consistently returns empty results for such peers.

This seems to be a recent regression, likely as part of the 0.4.0

Related issues

My hunch is that this is due to libp2p/go-libp2p#2913 based on some testing trying to resolve my own peerID (which is behind NAT). By enabling hole punching logging (GOLOG_LOG_LEVEL="p2p-holepunch=debug) I was able to see ("error": "failed to open hole-punching stream: failed to negotiate protocol: protocols not supported: [/libp2p/dcutr]"}) errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High: Likely tackled by core team if no one steps upkind/bugA bug in existing code (including security flaws)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions