-
Notifications
You must be signed in to change notification settings - Fork 1
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
Add initial SPEC draft #2
Conversation
License: MIT Signed-off-by: Marcin Rataj <lidel@lidel.org>
Let's take a stab at evaluating this spec against a set of use-cases. Maybe we could mark in or out of scope, and for in-scope use-cases, describe how it would work? Here's a set off the top of my head, which traverses the publisher-user and the reader-user flows, and also when those are the same user:
|
I took a stab at answering those, it surfaced some caveats (marked with 🍊 below). Would be useful to think what should this spec cover, and what can be built in userland, on top of it. Personally I'd like to keep the spec as small as possible, a bare minimum to switch tools like ipfs-cohost and ipfs-companion from pins to MFS. 🍏 = in scope
|
Thanks for bringing those questions @autonome! Those are excellent points and I believe @lidel made an awesome work giving feedback about each one. I have some additions/questions to add/make:
Can't we just look at MFS to check if the website is there? That way we can show the latest version of the website to the user. Am I missing sth?
Love this idea! |
We can, but there is a caveat: ipfs node won't be able to load We could mitigate it by:
|
I think its ready for review: let me know if good to merge as initial spec and PR against it, or should we change something from the get go. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏼 great start, just a few minor clarifications needed
+ apply changes from review License: MIT Signed-off-by: Marcin Rataj <lidel@lidel.org>
Thank you for the feedback! I applied suggested changes and made it very clear that this is an exploratory experiment. |
Would a lot of the cohosting scenarios be solved more simply by having IPFS have better support for pinning /ipns addresses? Currently |
Yes, ability to pin ipns names was discussed in ipfs/kubo#1467 Both are good ideas but require changes to Core APIs and implementations. |
This PR proposes a simple spec for MFS-based cohosting scheme suggested in ipfs/ipfs-desktop#1034.
Motivation
TL;DR
/cohosting
- presence of directory in MFS root enables cohosting logic/cohosting/<site-id>
- presence of directory enables update checks for this site/cohosting/<site-id>/<timestamp>
- site snapshot at a point in timeipfs files ls /cohosting/
returns a list of cohosted websitesipfs files mkdir -p /cohosting/docs.ipfs.io
adds a website to cohosting listipfs files rm -r /cohosting/docs.ipfs.io
stops cohosting of a site