Skip to content
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

Live gateway list? #61

Open
JustMaier opened this issue Jul 3, 2019 · 6 comments
Open

Live gateway list? #61

JustMaier opened this issue Jul 3, 2019 · 6 comments
Labels
effort/days Estimated to take multiple days, but less than a week kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding status/ready Ready to be worked

Comments

@JustMaier
Copy link

It might make sense to add a feature to IPFS gateways to opt-in to gateway announcement. This gateway checker could then pull the list of gateways from that announcement. I'm not sure the best way to announce your gateway availability to the network, but two things come to mind (I'm new to all of this, so these might be completely unfeasible):

  1. PubSub: potential gateways could join a PubSub topic and announce themselves periodically
  2. DHT: potential gateways could add themselves as gateways.

One concern is that this would result in a lot of noise, so I wonder if a static list is also maintained (like the one here), but it's used to signify that a gateway is verified/trusted.

@lanzafame
Copy link

//cc @mburns @olizilla

@jamiew
Copy link
Contributor

jamiew commented Jul 8, 2019

Cool idea

Could we implement this right now just by using something like a public_gateways pubsub topic?

Maybe this could be a small daemon people ran alongside their IPFS node which cached those topic replies, maybe checked on health from time time, then made that list available via a simple HTTP API? Any other ideas for how a static status page like this could query for live public gateways without using a cached list or a centralized webservice?

@JustMaier
Copy link
Author

It'd be cool if it was an HTTP service provided by every gateway. Basically, pick a gateway you trust, then get this list of available gateways from them.

Alternatively, gateways could essentially load-balance by redirecting requests to other online trusted gateways. Basically, by opting in to be a public gateway, you become a part of the load-balanced gateway network. You could probably bake it into the js-http-api as well so that it pings a member of the gateway network to get the best gateway for the client.

@jamiew
Copy link
Contributor

jamiew commented Jul 8, 2019

I was thinking the same thing but figured it'd be a lot harder to get into the official daemons vs. running a sidecar. Do you think it's worth going that route for a v1?

@JustMaier
Copy link
Author

I'd say it really depends on whether or not there is much interest in this. If the core team thinks it's a good idea, I'd say fork the daemon and add it there. If there isn't much buy-in, you're right, a sidecar would be better.

Either way, it'd probably be good to start a discussion about this on the daemon repo (not sure which one would be best since they are fragmented by language).

@jamiew
Copy link
Contributor

jamiew commented Jul 9, 2019 via email

@jamiew jamiew added the kind/enhancement A net-new feature or improvement to an existing feature label Aug 7, 2019
@jamiew jamiew changed the title [idea] Live gateway list Live gateway list idea Dec 18, 2019
@jamiew jamiew changed the title Live gateway list idea Live gateway list? Dec 18, 2019
@jamiew jamiew added big ideas and removed kind/enhancement A net-new feature or improvement to an existing feature labels Dec 18, 2019
@jessicaschilling jessicaschilling added kind/enhancement A net-new feature or improvement to an existing feature and removed big ideas labels Apr 7, 2020
@SgtPooki SgtPooki added need/analysis Needs further analysis before proceeding effort/days Estimated to take multiple days, but less than a week status/ready Ready to be worked labels Oct 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort/days Estimated to take multiple days, but less than a week kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding status/ready Ready to be worked
Projects
No open projects
Status: Needs Prep Work / Blocked
Development

No branches or pull requests

5 participants