1
0
mirror of https://github.com/fazo96/ipfs-boards synced 2025-01-10 12:24:20 +01:00
ipfs-boards/README.md

103 lines
2.8 KiB
Markdown
Raw Normal View History

2015-11-04 17:05:27 +01:00
# IPFS Boards
2015-11-04 21:15:58 +01:00
Image and discussion boards, forums and the like have many problems:
- Centralized
- What if it gets shut down?
- What if the servers are down?
- What if a phisical network link breaks and the data is on the other side?
- What if the owners of the board get eaten by aliens?
- Fragile
- what if there's a DoS attack?
- what if there is a usage explosion and the servers can't handle it?
- what if the datacenter is flooded and data is lost?
- Closed Down, limited in possibilities
- What if I want to write a custom client?
- What if I want to change the user interface?
- What if I want a name that someone else already has?
- What if I want to move my data to another service/subreddit/forum ?
- What if I want more control (think a private forum), or less control (think 4chan) ?
- What if I want <feature> ?
This project was conceived to solve that. With the help of modern web technologies, the IPFS and IPNS protocols
and some optional cache servers, we can solve these problems and create a true universal platform which can act as:
- Discussion board
- Wiki
- File Sharing platform
- E-Learning platform
With security, control, reliability, rock solid stability, fully distributed architecture or, optionally, none of these!
## How
To be continued...
## Faq
To be continued...
2015-11-04 17:05:27 +01:00
## Components
- __Client__
- a static web application to access IPFS Boards
- __Cache Server__
- can cache boards, helping to serve them via IPFS and via an HTTP gateway to the static web application and the boards' data
__Note:__ until the __IPFS Javascript Implementation__ is done:
- the client (a static web application) requires a full IPFS node because it needs to be able to discover content via the IPFS API.
- the cache server (written in node) requires a full IPFS node.
__Note:__ if you want to write data, your __IPNS__ needs to be taken over by the application. This problem will be addressed in the future
2015-11-04 16:08:33 +01:00
### Data Storage
Each user exposes via IPNS a folder containing:
- boards
- _board name(s)_
- posts
- _board name(s)_
- _admin name(s)_
- _post(s)_
- comments
- _board name(s)_
- _admin name(s)_
- _comment(s)_
- votes
- _board name(s)_
- _admin name(s)_
2015-11-04 17:05:27 +01:00
- _vote(s)_
- compatibility: could be used to store compatibility information
2015-11-04 16:08:33 +01:00
#### Post
{
"title": "Title of the post",
2015-11-04 17:05:27 +01:00
"date": "date of the post",
2015-11-04 16:08:33 +01:00
"text": "Content of the post"
}
2015-11-04 17:05:27 +01:00
Optionally a post could have a `text-url` field so that crossposting is
possible for lange texts without duplicating data.
2015-11-04 16:08:33 +01:00
#### Comment
Comment text
#### Vote
ipfs-board:vote-for:object_url
2015-11-04 17:05:27 +01:00
### Versioning
2015-11-04 21:15:58 +01:00
a `version` file or something should be included in the user's files to ensure compatibility between different
versions or forks.
### License
GPLv3? MIT? Something else? Needs to be chosen