public-gateway-checker icon indicating copy to clipboard operation
public-gateway-checker copied to clipboard

Improve Public Gateway Checker

Open olizilla opened this issue 6 years ago • 24 comments

We have a site to check a list of known IPFS gateways

https://ipfs.github.io/public-gateway-checker/

Let's upgrade it

  • [ ] Make the UI consistent with our other websites (use ipfs-css & tachyons, see https://dag.ipfs.io or https://explore.ipld.io) - @juliaxbow is working on this now (2022 OCT)
  • [x] Host it so that it is available even if the https://ipfs.io gateway is unstable - DONE. It's on github pages now
  • [ ] Allow folks to submit new gateways via a PR in Github, including gateway url, Contact email, Developer or Company name and logo - to celebrate those offering public infrastructure) - There is some opportunity here to display/get more information about gateway providers. This has not been pursued that I am aware of, but we should have more information to go on after @juliaxbow's user research
  • [ ] Clearly Link to it or incorporate the information into the main https://ipfs.io website along with links to information about how to run your own. - This may or may not be done but we should do an audit.
  • [x] https://github.com/ipfs/public-gateway-checker/issues/306

Nice to have

  • [ ] Create a map visualization of where are all the IPFS Gateways in the World.

Future work

  • [ ] Let gateway maintainers provide access to their gateway metrics from go-ipfs, so we can show the uptime, data passed, number of files requests on each gateway on the checker. -- This would be fantastic.

olizilla avatar Jun 14 '19 08:06 olizilla

Things I'd also like to know status of:

  • Preload nodes
  • Public WebRTC and Websocket star rendezvous servers

alanshaw avatar Jun 22 '19 22:06 alanshaw

I had no idea this site existed, this is handy!

Just for fun I ported it to React, used ipfs-css, tachyons and made it look along the lines of the sites @olizilla mentioned.

1

I was thinking of opening a PR in the current repo when this is done, but as it's a whole new thing from the ground up it would be easier to just create a new repo. Thoughts?

EDIT: WIP code is living in https://github.com/fsdiogo/ipfs-infra-status just to safeguard in case my 💻 lights on 🔥.

fsdiogo avatar Jul 01 '19 15:07 fsdiogo

I'd like some ideas to upgrade the design, specially to add the features @alanshaw mentioned: tabs? A menu with links to other pages similar to this one?

fsdiogo avatar Jul 01 '19 15:07 fsdiogo

nice! I did something similar in a spare moment at IPFS camp, but I didn't do a full re-write, so I'm glad you did @fsdiogo! I truncated the gateway text to just show the domain to reduce the amount of duplicated data:

Screenshot 2019-07-02 at 10 20 13

olizilla avatar Jul 02 '19 09:07 olizilla

Wow, great minds think alike 😄

I like yours better, so I'm going to steal it 👼

fsdiogo avatar Jul 02 '19 10:07 fsdiogo

I was thinking of opening a PR in the current repo when this is done, but as it's a whole new thing from the ground up it would be easier to just create a new repo. Thoughts?

The current maintainer, Jamie IIRC, was very responsive when I submitted a PR there. Maybe open an issue there, pointing to this one, asking if he's ok with the upgrade?

autonome avatar Jul 02 '19 21:07 autonome

Added badge to display the checked gateways (thanks for the idea @olizilla) and how many are online:

1

See it live on ipfs-infra-status.surge.sh.

fsdiogo avatar Jul 03 '19 14:07 fsdiogo

Nice work guys!

Could you make the table even more like IPLD Explorer's design? ;)

image

Also, ipfs.io has this beautiful tick and cross on the main page: image

https://ipfs.io/images/ipfs-illustration-network.svg

Could you use them?

andrasfuchs avatar Aug 07 '19 13:08 andrasfuchs

Feature-wise I think it would be also good to see:

  • The IPFS version number
  • Writable status (as discussed here: https://github.com/ipfs/public-gateway-checker/issues/3)
  • If there is IPNS support on the node (some gateways just return internal server error when we try to open an IPNS hash)
  • Average IPFS and IPNS lookup times in the last few minutes (this could help with the load balancing on the gateways around the world)
  • Error code, last updated columns (as implemented here: https://gateway.ipfs.io/ipfs/QmXHzertynCrRi9A99JH1fbxLATtGCaU4L3gkLo6ov9JEW/)

andrasfuchs avatar Aug 07 '19 13:08 andrasfuchs

@andrasfuchs these are all good ideas! Would you be interested in PRing some of them to https://github.com/fsdiogo/ipfs-infra-status ?

olizilla avatar Aug 08 '19 10:08 olizilla

@olizilla I would be glad, I'm just not sure if my skillset is the best fit. (I'm more of a C#/.NET Core guy.) I will definitely check out the repo and try my best to make some changes ;)

andrasfuchs avatar Aug 08 '19 21:08 andrasfuchs

I spent a few hours with Visual Studio Code, Node.js and React, but I keep hitting walls. That's the first time I used Node.js, so obviously I'm a newbie. I really would like to help, so could someone here help me out so that I can implement at least a few of my suggestions?

andrasfuchs avatar Aug 11 '19 13:08 andrasfuchs

Hey @andrasfuchs, we're here to help!

Maybe open a draft PR with what you have and we can discuss that there?

fsdiogo avatar Aug 13 '19 09:08 fsdiogo

Alright, I created a new PR: https://github.com/fsdiogo/ipfs-infra-status/pull/1 It's not much, but hopefully I will get more productive as I learn more about Node.js and React.

andrasfuchs avatar Aug 14 '19 07:08 andrasfuchs

Hey guys, I updated the design of the table. It's not in the first PR, I created a separate branch for it, but if you accept the first, I'll create a new one with these changes, if that's ok with you.

I tried to match IPLD Explorer's design, it's not perfect, but similar enough I think.

image

andrasfuchs avatar Aug 15 '19 07:08 andrasfuchs

@olizilla

Create a map visualization of where are all the IPFS Gateways in the World.

I have something working locally, it looks like this http://ipfs.io/ipfs/QmQ57dEUq8FbKq5F9Rw3pkUivcVy8cUj9UGKb1KVBwsnG8?filename=gatewaysmap.jpg It makes use of http://ip-api.com which is free for non comercial use. I thought it would be nice to have this feature dynamic rather than static since it is domain based Should i continue ?

lazyweirdo avatar Dec 29 '19 19:12 lazyweirdo

@olizilla Just checking in on this one when you get the chance. Thanks!

jessicaschilling avatar Apr 09 '20 19:04 jessicaschilling

Note from https://github.com/ipfs/public-gateway-checker/pull/117#discussion_r509588507 for when this issue is revived, per @lidel:

indeed: entire app.js needs to be re-written from scratch in modern JS (painfully needs rate-limiting via execution queues, similar to ones we have in js-libp2p-delegated-*)

jessicaschilling avatar Oct 21 '20 19:10 jessicaschilling

@juliaxbow this could really use your input. All of the previous discussion here is great.. but it's all extremely outdated: https://ipfs.github.io/public-gateway-checker/ for the current UI

SgtPooki avatar Jul 13 '22 17:07 SgtPooki

@SgtPooki this is still very simple but some initial suggestions included below based on some feedback from users. Let me know your feedback so I can iterate! Dark mode optional Screen Shot 2022-07-20 at 6 49 58 PM

juliaxbow avatar Jul 20 '22 16:07 juliaxbow

@SgtPooki Also:

Flashier (no content changes from previously shared table) Screen Shot 2022-07-21 at 2 03 12 AM

and

Bare bones (limited visual changes from current site but includes all of the table changes above) Screen Shot 2022-07-21 at 2 06 08 AM

juliaxbow avatar Jul 21 '22 00:07 juliaxbow

that looks so good =D

SgtPooki avatar Jul 21 '22 14:07 SgtPooki

@juliaxbow this looks great, with the new tests added:

  • IPNS: #313
  • Block/CAR: #310 #312

Should these designs also accommodate for filtering results? right now the design allows for sorting through the contents by column, but say I only want to see the results that PASS all the tests, sorted by delta-T.

whizzzkid avatar Oct 13 '22 16:10 whizzzkid

@whizzzkid I'm chatting with (and actively recruiting) users to get feedback on what to include in the table. This design was made before that research began. Once I get some more feedback and consolidate my findings I'll refresh the design proposal.

Good call-out re: filtering results. Will explore this more!

juliaxbow avatar Oct 13 '22 16:10 juliaxbow