mirror of
https://github.com/fazo96/ipfs-boards
synced 2025-01-10 12:24:20 +01:00
59 lines
1.4 KiB
Markdown
59 lines
1.4 KiB
Markdown
# IPFS Boards
|
|
|
|
## 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
|
|
|
|
### 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)_
|
|
- _vote(s)_
|
|
- compatibility: could be used to store compatibility information
|
|
|
|
#### Post
|
|
|
|
{
|
|
"title": "Title of the post",
|
|
"date": "date of the post",
|
|
"text": "Content of the post"
|
|
}
|
|
|
|
Optionally a post could have a `text-url` field so that crossposting is
|
|
possible for lange texts without duplicating data.
|
|
|
|
#### Comment
|
|
|
|
Comment text
|
|
|
|
#### Vote
|
|
|
|
ipfs-board:vote-for:object_url
|
|
|
|
### Versioning
|
|
|
|
The protocol should be versioning once it's stable enough to be useful
|