Skip to content

Commit

Permalink
Be very explicit about experimental status
Browse files Browse the repository at this point in the history
+ apply changes from review

License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org>
  • Loading branch information
lidel committed Oct 3, 2019
1 parent 7d2db5e commit d16d4c6
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 12 deletions.
32 changes: 21 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,41 @@
# cohosting
# Experiment in MFS-based cohosting

> Simple tools and conventions for cohosting existing websites with IPFS
> Exploration around simple tools and conventions for cohosting existing websites with IPFS
## Motivation

- make it easier for people to contribute storage and bandwidth to sites and datasets they care about
- support [IPNS](https://docs.ipfs.io/guides/concepts/ipns/) (libp2p keys) and [DNSLink](https://docs.ipfs.io/guides/concepts/dnslink/) roots (human-readable)
- periodically detect updates to and preload them to a local node
- experiment in userland: make it easy to implement, no new APIs, reuse existing ones
- Make it easier for people to contribute storage and bandwidth to sites and datasets they care about
- Support [IPNS](https://docs.ipfs.io/guides/concepts/ipns/) (libp2p keys) and [DNSLink](https://docs.ipfs.io/guides/concepts/dnslink/) roots (human-readable)
- Switch tools like ipfs-cohost and ipfs-companion from raw pins to MFS
- Periodically detect updates to and preload them to a local node
- Experiment in userland: make it easy to implement, no new APIs, reuse existing ones
- Identify constraints of the [mutable filesystem (MFS)](https://docs.ipfs.io/guides/concepts/mfs/) and propose ways to improve it

### Scope vs. Use Cases

See [this analysis](https://github.com/ipfs-shipyard/cohosting/pull/2#issuecomment-524288790).

## Specification

See [SPEC.md](SPEC.md)

## Implementations
> ### 🚧 note: this is a draft, an early, exploratory experiment 🚧
> Feedback is welcome. Fill an issue!
## Potential Implementations

This specification is not implemented yet.
The following [IPFS Shipyard](https://github.com/ipfs-shipyard/) projects could implement it:

🍎 = Not started
🍊 = In progress
🍏 = Complete

### ipfs-shipyard

#### 🍎 [cohosting.sh](cohosting.sh)
> MVP bash script that can be used for cli
- [ ] `add` `rm` for adding / removing sites to cohosting list via commandline
- [ ] `sync` a command to run cohosting check for use in crond
- [ ] `sync` a command to run cohosting check (for use in `crond` etc)
- [ ] `gc <n>` drop all old snapshots (if `n` is provided, keeps that many snapshots per site)

#### 🍎 [ipfs-cohost](https://github.com/olizilla/ipfs-cohost)
Expand All @@ -46,5 +56,5 @@ See [SPEC.md](SPEC.md)

#### 🍎 [ipfs-webui](https://github.com/ipfs-shipyard/ipfs-webui)
> web frontend for IPFS node
- [ ] provides UI for adding / removing sites to cohosting list as an experiment on _Settings_ page
11 changes: 10 additions & 1 deletion SPEC.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
# cohosting SPEC


# MFS cohosting SPEC (experimental draft)

> ### 🚧 this is not an official specification, just an early, exploratory experiment 🚧
>
> The goal is to see what is possible with the [mutable filesystem (MFS)](https://docs.ipfs.io/guides/concepts/mfs/), and what could be possible if we extend it.
>
> ⚠️ Feedback is welcome, PR or fill an issue! ⚠️

* [Site identifiers](#site-identifiers)
* [Path conventions](#path-conventions)
Expand Down
2 changes: 2 additions & 0 deletions cohosting.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#!/bin/bash
set -eu

# not implemented, but feel free to PR :-)

# TODO fail when ipfs is not on PATH
# TODO add
# TODO rm
Expand Down

0 comments on commit d16d4c6

Please sign in to comment.