Skip to content

deps: use mudler/go-libp2p-pubsub fork to enable pubsub over relayed conns#1027

Merged
mudler merged 1 commit into
masterfrom
feat/allow-pubsub-over-limited-connections
May 30, 2026
Merged

deps: use mudler/go-libp2p-pubsub fork to enable pubsub over relayed conns#1027
mudler merged 1 commit into
masterfrom
feat/allow-pubsub-over-limited-connections

Conversation

@mudler
Copy link
Copy Markdown
Owner

@mudler mudler commented May 30, 2026

Upstream go-libp2p-pubsub silently drops every pubsub peer whose only connection to the local host is network.Limited (i.e. via a libp2p relay/circuit-v2 path) — three filters in handlePendingPeers, watchForNewPeers, and handleNewPeer each gate strictly on network.Connected. NAT-traversed clusters that get a working AutoRelay connection but where DCUtR hole-punching doesn't succeed (e.g. QEMU slirp NAT, double-NAT residential setups) therefore see their libp2p hosts as "connected both ways" while the ledger never propagates.

Use mudler/go-libp2p-pubsub#feat/allow-pubsub-over-limited-connections (branch off upstream master) via a replace directive, until the upstream PR merges. Verified end-to-end with a standalone reproducer: two hosts behind a relay with a ConnectionGater that blocks all direct addresses, A→B pubsub message arrives in sub-second with the fork versus 60s+ timeout against stock pubsub.

Upstream PR: libp2p/go-libp2p-pubsub#712 . Until gets merged we will use the fork

…conns

Upstream go-libp2p-pubsub silently drops every pubsub peer whose only
connection to the local host is network.Limited (i.e. via a libp2p
relay/circuit-v2 path) — three filters in handlePendingPeers,
watchForNewPeers, and handleNewPeer each gate strictly on
network.Connected. NAT-traversed clusters that get a working AutoRelay
connection but where DCUtR hole-punching doesn't succeed (e.g. QEMU
slirp NAT, double-NAT residential setups) therefore see their libp2p
hosts as "connected both ways" while the ledger never propagates.

Use mudler/go-libp2p-pubsub#feat/allow-pubsub-over-limited-connections
(branch off upstream master) via a replace directive, until the
upstream PR merges. Verified end-to-end with a standalone reproducer:
two hosts behind a relay with a ConnectionGater that blocks all direct
addresses, A→B pubsub message arrives in sub-second with the fork
versus 60s+ timeout against stock pubsub.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mudler mudler merged commit c8b67a0 into master May 30, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant