-
Notifications
You must be signed in to change notification settings - Fork 445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[circuit-relay] Relay discovery #424
Comments
In other words:
We won't support relay discovery for the first iteration. |
The current js implementation actually tries to mount every incoming peer muxed connection on the |
I think eventually we'd want something like Service Routing? Where you ask the DHT to give you nodes which speak a given protocol. Or extend Peer Routing with capabilities that are beyond "has block X", e.g. "speaks transport Y", "speaks protocol Z version 1.x", |
Yep, absolutely. For now this sort of passive discovery can probably fill the gap? |
Is every peer going to be capable of acting as a relay, or are there going to be community driven relay nodes out in the open? Is there any documentation on how a peer would advertise their available interfaces on the DHT? For the web, in order for a relay to be usable for dialing into a browser, will the browser already have to have an active connection to the relay? |
@RangerMauve In theory, every peer can act as a relay (configurable through options). My guess is that we'll also have some dedicated relay nodes - probably bootstrap nodes and such, as well as community ran nodes. In reality, even the browser should be able to relay connections - tho that is not yet a tested feature.
Not as far as I know, however there are several proposals elsewhere for general purpose service discovery, tho nothing concrete yet, AFAIK. @Stebalien might have some insights here.
Thats a good question, we haven't settled on anything here yet AFAIK, but allowing nodes to communicate which relays they're connected to would help speeding up connecting to them as well as reduce network load. One more thing worth noting here, is that there are essentially two types of relays - active and passive. An
Yes, the browser requires to have a connection to some relay in order to be "dialable". |
@dryajov Thank you for the details. |
Re: peers advertising relay routes Peers already have a set of multiaddrs which they give people, since AFAIK a circuit is a multiaddr, it would be useful for a peer to advertise full circuits in order to speed up connectivity. For browsers, it would make sense to only advertise multiaddrs with circuits since they can't accept incoming connections. (websocket/webrtc -star seems really sketchy to me because they're centralization points) |
Also, what API would one use in js-ipfs in order to discover whether a peer supports being a passive or active relay? |
At least the ones I know of, I'm sure there are a few more - this is one of those things we've talked about from different perspectives, but so far haven't consolidated into anything concrete.
Yeah, that could be one way of doing.
We don't currently advertise |
There is nothing yet that would tell you if the relay is active or passive, again, the rational was that it would eventually be part of some sort of |
Closing as stale, efforts are now focused on #1029 |
Currently we're sending only one dst address to the circuit-relay, however, the relay can discover other addresses for that peer, either through the dht or by checking it's peer-book and try all it's known addrs. Alternatively (I like this better) we can also send multiple dst addrs that the peer is reachable on, from the dialer.
Edits:
Reworded
The text was updated successfully, but these errors were encountered: