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

High-level explainer of Gateways, in an IPFS context. #246

Closed
Mr0grog opened this issue Jul 25, 2018 · 24 comments
Closed

High-level explainer of Gateways, in an IPFS context. #246

Mr0grog opened this issue Jul 25, 2018 · 24 comments
Assignees

Comments

@Mr0grog
Copy link

Mr0grog commented Jul 25, 2018

This issue has a bounty!

Successfully closing this issue by producing a production-ready piece of documentation can earn you not only the undying love of the IPFS community — it can net you a financial reward. See the current list of bounty issues and their values here.

The need in brief

A high-level explainers of what gateways are in an IPFS context.

At the Berlin developer summit, we decided gateways were important to write a concept doc about. Here was the original draft:

Gateway

When you start an IPFS daemon, it creates two HTTP servers: the HTTP API that can be used to control the daemon (by pinning hashes, adding content, etc.) and the gateway, which is designed for web browsers to load content in IPFS as if they were loading it from a traditional web site.

When you request a URL like:

http://localhost:8080/ipfs/QMu.../index.html

the gateway does the equivalent of the CLI command:

ipfs cat /ipfs/Qmu.../index.html

…and returns the result to your browser. It also has a few extra conveniences like directory listings.

Protocol Labs operates a public gateway at http://ipfs.io, which is useful for sharing links with people who aren’t running their own daemon.

Some concerns:

  • This should mention DNSLink and how it ties in using the Host header.
  • We should clarify that the gateway is a migration tool — it exists because web browsers that natively speak IPFS don’t exist. Eventually, we hope IPFS Companion will be able to add support to browsers, and eventually the browsers will build it in natively.
  • Similarly, we should clarify that you should be careful about relying on the public gateway.
  • Should we explicitly explain you could run your own public gateway?
  • Should this discuss the service worker gateway? (I think we said probably not)
  • We should clarify that a daemon runs a gateway, while an IPFS node (see ipfs/docs#92) does not necessarily include a gateway.
  • We should disambiguate between local gateway (localhost:8080) vs public/shared gateway (example.org) vs the canonical public gateway (ipfs.io)
  • We should disambiguate between the types of HTTP gateways (see comment): DNSLink gateway, path gateway, subdomain gateway

Deliverable

A concise, high-level description of this IPFS concept. It should answer the following, supplemented whenever possible by diagrams, videos and/or code examples:

  • What is this?
  • How does it relate to the rest of IPFS?
  • What are some generic use cases for this — how might it meet a need in someone's project/goal?
  • How can (or should?) you use it? (Note: sometimes the answer is that you should understand it, but not necessarily use it based on your use case or the current state of the tech.)
  • Where do you go to learn more?
  • What is the current state of this concept or technology?

Content should take the form of a Markdown document, supplemented by diagrams as embedded images. File locations should be as follows:

Guidelines

  • Please use the IPFS Docs Contributor Guidelines as your north star — adherence to these guidelines are crucial when it comes to awarding potential bounty!
  • Also, please keep in mind our core user personae. If a piece of content serves one or more personae in particular, make sure it checks out with that persona's attributes.
@hsanjuan
Copy link
Contributor

LGTM

@jessicaschilling jessicaschilling changed the title Write concept doc about Gateway Concept Doc: Gateway Jul 26, 2019
@jessicaschilling jessicaschilling changed the title Concept Doc: Gateway Write gateway concept doc Sep 19, 2019
@jessicaschilling
Copy link
Contributor

Also note via @yusefnapora: Gateway is great for playing well with the outside world, but you're really only getting part of the full IPFS goodness. Let's emphasize gateway as a gateway drug ;)

@jessicaschilling jessicaschilling changed the title Write gateway concept doc [NEW CONTENT] Gateways Dec 16, 2019
@jessicaschilling
Copy link
Contributor

Update: @olizilla may have some material he wrote to onboard folks that could be used as initial source material!

@lidel
Copy link
Member

lidel commented Dec 17, 2019

There is also a short section on HTTP Gateways I wrote at https://docs.ipfs.io/guides/guides/addressing/#http-gateways which could be reused/expanded into a dedicated article about Gateways.

I believe it is important to recognize three types of HTTP gateways:

  • DNSLink gateway (eg. en.wikipedia-on-ipfs.org)
    (when domain DNS A record points at IP with go-ipfs and DNS TXT record points at IPFS content path)
  • Path gateway (ipfs.io/ipfs/bafy...)
  • Subdomain gateway (bafy...ipfs.dweb.link)

DNSLink gateway is useful for "private/personal" hosting and the other two are more like "public" service (here is a community list of public ones).

Happy to provide context/help/call with anything related to this.

@olizilla
Copy link
Member

see also local gateway (localhost:8080) vs public/shared gateway (example.org) vs the canonical public gateway (ipfs.io)

@jessicaschilling jessicaschilling changed the title [NEW CONTENT] Gateways [NEW CONTENT] [BOUNTY] Gateways Dec 19, 2019
@EricLScace
Copy link
Contributor

I'll tackle this one…

@bertrandfalguiere
Copy link
Contributor

The bounty list from the first post is this thread is not accessible :/

@jessicaschilling
Copy link
Contributor

@hsanjuan
Copy link
Contributor

Also, important to incorporate documentation on writable gateways which is here: https://discuss.ipfs.io/t/writeable-http-gateways/210

@olizilla
Copy link
Member

Here is the condensed version of the onboarding doc for the gateways for the IPFS Infra team

https://gist.github.com/olizilla/81cee26ffa3ae103e4766d2ae0d2f04b

@johnnymatthews
Copy link
Contributor

How's your progress going @EricLScace? Anything I can help out with?

@EricLScace
Copy link
Contributor

How's your progress going @EricLScace? Anything I can help out with?

See branch https://github.com/EricLScace/ipfs-docs-v2/tree/issue%2393 for WIP. Just getting rolling at this point and have material yet to integrate over the next days. I'll be in touch if I get stumped and cannot get help.

@johnnymatthews
Copy link
Contributor

Great stuff, I'm glad you've got enough to get moving. Yeah post in here if you need a hand.

@jessicaschilling
Copy link
Contributor

@EricLScace -- what can we do to help unblock this? Do you have an ETA for materials for review?

@jessicaschilling
Copy link
Contributor

@EricLScace -- update? If we don't hear from you by Wednesday 12 Feb, we'll open this up to other contributors instead. Thank you!

@EricLScace
Copy link
Contributor

EricLScace commented Feb 12, 2020 via email

@momack2
Copy link
Contributor

momack2 commented Mar 19, 2020

Hey @EricLScace - let us know if you're still working on this, otherwise we can open it back up to other contributors.

@EricLScace
Copy link
Contributor

Yes still working.

@momack2
Copy link
Contributor

momack2 commented Apr 10, 2020

Do you have a planned ETA? I've been working on an FAQ I'd love to add to a basic description once that's ready.

@jessicaschilling
Copy link
Contributor

jessicaschilling commented Apr 10, 2020

Let’s open this back up to other contributors. @bertrandfalguiere - is this something you might be interested in picking up?

EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
...as "when not to deplay a gateway"

Ref #93
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
Manual section numbering :-(

Ref #93
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
EricLScace referenced this issue in EricLScace/docs Apr 10, 2020
...and some minor wording edits.

Ref #93
@jessicaschilling
Copy link
Contributor

Reassigning to @EricLScace.

EricLScace referenced this issue in EricLScace/docs Apr 15, 2020
Add example
To do: provide defense mechanism

Ref #93
EricLScace referenced this issue in EricLScace/docs Apr 16, 2020
EricLScace referenced this issue in EricLScace/docs Apr 16, 2020
EricLScace referenced this issue in EricLScace/docs Apr 16, 2020
EricLScace referenced this issue in EricLScace/docs Apr 16, 2020
EricLScace referenced this issue in EricLScace/docs Apr 16, 2020
End of day WIP

Rec #93
EricLScace referenced this issue in EricLScace/docs Apr 17, 2020
Move temporarily into new folder

Ref #93
@johnnymatthews
Copy link
Contributor

How's this going @EricLScace? I can see you've added a bunch of commits recently, that's great! Anything I can help out with, or are you still working on things?

@johnnymatthews johnnymatthews changed the title [NEW CONTENT] [BOUNTY] Gateways High-level explainer of Gateways, in an IPFS context. Apr 17, 2020
@EricLScace
Copy link
Contributor

EricLScace commented Apr 17, 2020 via email

@johnnymatthews
Copy link
Contributor

Good stuff! Looking forward to reading everything once it's done.

@hsanjuan hsanjuan transferred this issue from ipfs-inactive/docs May 22, 2020
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

No branches or pull requests

9 participants