mDNS discovery interoperability between Go and Javascript #2275
Labels
effort/hours
Estimated to take one or several hours
exp/beginner
Can be confidently tackled by newcomers
good first issue
Good issue for new contributors
help wanted
Seeking public contribution on this issue
kind/bug
A bug in existing code (including security flaws)
P3
Low: Not priority right now
topic/interop
Interoperability
mDNS discovery protocol does not work between implementations of Go and Javascript.
I'm trying to set up basic chat example where nodes discover each other through mDNS, looking at the examples provided in go-libp2p and js-libp2p (which leverage the mdns libraries "github.com/libp2p/go-libp2p/p2p/discovery/mdns" and @libp2p/mdns). The network packets sent by both implementations are, apparently, in the same format.
Both Go <-> Go and Js <-> Js work. I've also tried Rust examples and no cross-implementation discovery seems to work.
Connecting to the other node directly (bootstrap mode) works fine after making sure Js is using the yamux multiplexer.
Edit: I add captures of packets sent from Go and Js.
Go:
Js:
Although there are some small differences in the format, from what I understand Go implementation only looks at the TXT record, and expects to find all information there (full multiaddress prefixed with "dnsaddr="), which is exactly what Js implementation is providing. But please correct me if I'm wrong.
Version Information
The text was updated successfully, but these errors were encountered: