Skip to content

Conversation

@chaitanyaprem
Copy link
Collaborator

Description

Since PeerExchange is not indicated in Waku ENR and hence peers are not added in service slots, when we try to do random peer selection it fails with below error as reported by @igor-sirotin

2025-10-03T15:58:21.950+0100    WARN    node2.peer-manager    peermanager/peer_discovery.go:59    cannot do on demand discovery for non-waku protocol    {"protocol": "/vac/waku/peer-exchange/2.0.0-alpha1"}
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).discoverOnDemand
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_discovery.go:59
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).DiscoverAndConnectToPeers
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_discovery.go:25
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).discoverPeersByPubsubTopics
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_discovery.go:115
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).selectServicePeer
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_selection.go:153
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).SelectRandom
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_selection.go:60
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).SelectPeers
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_selection.go:199
github.com/waku-org/go-waku/waku/v2/protocol/peer_exchange.(*WakuPeerExchange).Request
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/protocol/peer_exchange/client.go:54
github.com/status-im/status-go/messaging/waku.(*Waku).runPeerExchangeLoop
    /Users/sirotin/Repositories/status/status-go/messaging/waku/gowaku.go:618
2025-10-03T15:58:21.950+0100    WARN    node2.peer-manager    peermanager/peer_discovery.go:117    failed to discover and connect to peers    {"error": "cannot do on demand discovery for non-waku protocol"}
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).discoverPeersByPubsubTopics
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_discovery.go:117
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).selectServicePeer
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_selection.go:153
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).SelectRandom
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_selection.go:60
github.com/waku-org/go-waku/waku/v2/peermanager.(*PeerManager).SelectPeers
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/peermanager/peer_selection.go:199
github.com/waku-org/go-waku/waku/v2/protocol/peer_exchange.(*WakuPeerExchange).Request
    /Users/sirotin/Repositories/status/status-go/vendor/github.com/waku-org/go-waku/waku/v2/protocol/peer_exchange/client.go:54
github.com/status-im/status-go/messaging/waku.(*Waku).runPeerExchangeLoop
    /Users/sirotin/Repositories/status/status-go/messaging/waku/gowaku.go:618

This PR fixes this by introducing a new simpler peer-selection criteria just by using protocolID and pubsubTopics.

Changes

  • introduce a new simple peer selection criteria ProtoPubSubTopicOnly using protocol and pubsubTopic and skip on-demand discovery
  • override peer-exchange client to always use this new peer selection criteria ProtoPubSubTopicOnly

@status-im-auto
Copy link

Jenkins Builds

Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ f22d214 #1 2025-10-06 08:16:23 ~1 min unknown 📄log

@chaitanyaprem chaitanyaprem merged commit 84a4b1b into master Oct 15, 2025
23 of 27 checks passed
@chaitanyaprem chaitanyaprem deleted the fix/px-random-selection branch October 15, 2025 01:07
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.

4 participants