-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Let the gateway serve proofs of correct behavior. #6129
Comments
Thanks for writing this up, I'm currently traveling but I'll take a look when I get back (next Wednesday?) if not sooner. (that is, this'll take some focus work to dig into so I'll need to allocate a chunk of distraction-free time) |
(we're trying to cut a release but I'll still try to look at this ASAP) |
Again, I apologize for the extensive delay. The release should be out shortly (#6223) and we'll re-enter the feature cycle. |
What is the status on this? |
The status:
I'd like to revisit it when we get everything under control but I'm having trouble allocating time to it at the moment. More generally, this feature doesn't really fit in with the overall goal of IPFS: to decentralize the internet. Basically, to make use of this feature, the user needs to install something. That leaves us with two choices:
The former helps provide better, secure access to the IPFS network but the latter actually works towards our goal of decentralizing the internet. If the user needs to install something anyways, I'd rather move closer to our goal. On the other hand, I do understand that running IPFS locally is not always possible for performance reasons. That's why I'd like to revisit this once we get the larger-scale network performance issues under control. |
Additional design work needs to happen here, and probably some dev on the browser vendor side as well. Open problems:
|
|
Type:
feature
Description:
Motivation. Third-party IPFS gateways offer a lot of value to the ecosystem:
Given the above, I'd like to propose that gateways have the ability to serve proofs that they're behaving correctly. This way, gateways can't maliciously modify content before serving it to their clients. A gateway can only refuse to answer a request, in which case another gateway can be tried.
How the feature should work. Requests to a gateway with the header
X-Ipfs-Secure-Gateway: 1
should switch to a binary format containing the proof.The first part of the response, called a preamble, relates the request path
domain.com/a/b/c
to the hash of the response body. It may contain a DNSSEC proof mappingdomain.com
todnslink=/ipfs/Qm...
or an IPNS record, as well as the contents of any intermediate directories/a/b/c
.The second part of the response, called the body, is a depth-first traversal of the file's DAG. The client can hash the first block and see that it equals the output of the preamble, and then check that the second block corresponds to the first link of the first block, and so on.
Background.
The text was updated successfully, but these errors were encountered: