Next Step Microgrant: plebbit: serverless, adminless, decentralized reddit alternative #143
Labels
type:microgrant
Adoption Microgrant (https://github.com/protocol/ipfs-grants/blob/master/MICROGRANTS.md)
1. What is your project?
Plebbit is serverless, adminless, decentralized Reddit alternative built completely with IPFS/IPNS/pubsub/ENS. It doesn't use any central server, central database, public HTTP endpoint or DNS, it is pure peer to peer (except for the web client that can't join a P2P swarm directly, web clients use interchangeable HTTP providers).
How it uses the IPFS/ENS stack:
How we solve pubsub DDOS/spam:
Nondeterministic pubsub (like user generated comments) is susceptible to spam attacks that would DDOS it, as well as makes it impossible for moderators to manually moderate an infinite amount of bot spam. We solve this problem by requiring publishers to first request a challenge (captcha or other) from the subplebbit owner's peer. If a peer or IP address relays too many challenge requests without providing enough correct challenge answers, it gets blocked from the pubsub. This requires the subplebbit owner's peer to broadcast the result of all challenge answers, and for each peer to keep this information for some time.
What is a "post"
A post is an IPFS file for its immutable content, like timestamp, title, author signature, etc. Each post's IPFS file also contains its own IPNS name which links to its mutable content, like its upvote count, replies, etc. Each post is part of a linked list, i.e. it points to the previous post's IPFS CID.
What is a "subplebbit"
A subplebbit is an IPNS record updated every 5 minutes, it contains the latest post's CID, the title, description, the CIDs of the latest post pages sorted by new, hot, top, etc. It also contains the pubsub "topic" address to publish to it. Full schema available at https://github.com/plebbit/plebbit-js#schema
Full whitepaper: plebbit/whitepaper#2
2. How are you planning to improve this project?
Release alpha client and get our community to test it. Alpha client will have the following functionalities:
3. Will the work be Open Source?
yes
4. If selected, do you agree to complete weekly updates and a grant report upon conclusion?
yes
5. Does your proposal comply with our Community Code of Conduct?
yes
6. Links and submissions
Have you submitted to the IPFS Community Showcase?
https://github.com/ipfs/community/blob/master/projects/plebbit.md
Have you added your project to the IPFS Ecosystem Directory?
yes
Additional questions:
The text was updated successfully, but these errors were encountered: