| I specced out a decentralized spam-resistant reddit alternative a while ago, and posted it here a few months ago. Please build this, happy to sign away non-exclusive IP rights if you have an idea of how to monetize. --- I've specced out a decentralized reddit alternative a little bit, but have too many side projects. Someone please take this and build it. Let me know if you try, would love to spectate and advise on development. The key is there shouldn't be a globally consistent front page. Sorting should be done on an individual basis. Upvotes boost signal signal to peers and downvotes squelch. By propagating content scores transitively through the network proportionally to trust scores, users can moderate their own feeds by voting and managing their friend list. Users have a peer list, containing a list of server/users on it. Each peer has a user-managed 'trust weighting'. Each user has a list of "good content" (ideally hash identified for content addressability), with each item having a score based on that user's votes and votes from peers, weighted by that users trust in that peer. Periodically, your server contacts all of your peers, and asks them for their good content list. The scores from peers are multiplied by your own trust weight for that peer, and you build a personal "good content" list that merges the lists from each of your peers together (and drops insufficient scores). You are presented with a score-descending-sorted page of content. Whenever you upvote something, it increases your score weight for that content as well as the trust weight for each peer who sent you the recommendation, and vice versa for downvotes. Votes are transmitted to peers as a crypto signature of the content hash, but when retransmitted to peer-of-peer, they only see the intermediary's aggregated and trust weighted merged scores. The specifics of the algorithms on how you calculate and adjust weights can be configurable by each individual user, the protocol only cares that peers are able to produce some kind of score list. Dividing content into topics is a bit trickier, could just label content with tags. I think it may be preferable for each user to have multiple topic focused 'personalities' that are basically distinct user accounts with unique peer lists and votes. In that way, I could follow Dave-gardening without having to follow Dave-sports. For this example I'm using 1 user per server for simplicity, though not required. All users could be on same server, which is probably best for MVP to avoid implementing p2p networking stuff until validated. Ex. Alice follows Bob with weight of 0.5, Dave with 0.1 Bob scores content A as 0.8, B as 0.2 Dave scored content A as 0.4, B as 0.9 Alice downloads both lists. Alice score content A as avg(0.8 * 0.5, 0.4 * 0.1) = 0.22 Alice scores content B as avg(0.2 * 0.5, 0.9 * 0.1) = 0.095 Content A gets sorted higher than B. https://news.ycombinator.com/item?id=21011645 (previous discussion) |