3 ms·
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 tr
by cwkoss 7y ago
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.
- cwkoss 7y agoEx. 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.
- thehappypm 7y agoCongrats! You have invented the Instagram feed.
- cwkoss 7y agoDoes instagram have some sort of internal 'trust score' type thing between users that used to weight the feed? Neat.
- basch 7y agoI would much rather have the feed based on trust weighting of experts or people smarter than me, than the feed trying to feed me what it thinks pleases me. Metacritic vs Netflix. Aldaily vs facebook. You dont need a consistent front page for everyone, but communities of like people should get similar front pages based on what is "best" and best shouldn't be defined as universally popular, but instead popular with some subset of experts.
- Iv 7y agoWell what cwkoss describes would work well for you too: you would choose your experts of choice and have them as trusted users. I would too expect some users to become trust nexuses like that.
- cwkoss 7y agoYep! Ideally there would be some getTrustedPeers endpoint that would allow you to transitively discover interesting users 2 hops away. Add them and they become 1-hop and could get their trust list, rinse and repeat to traverse the trust network. Because users are 'liable' for content they rebroadcast (if you repeatedly propogate downvoted content, your trust score will fall), there is a strong incentive to "moderate" the content you promote. This allows not only the OP to gain karma/trust from a post, but also adjacent peers can earn trust by reliably upcoming content that is later upvoted downstream. Hopefully this would encourage "tastemaker" users who don't create new stuff, but carefully curate what they rebroadcast. Trusting the right users allows you to rebroadcast their trusted content automatically, if you chose to configure your trust algo that way.
- basch 7y agoI kind of disagree. Thats why rss failed. It requires the user to set it up before it works. And I may never leave my comfort zone, if setting up what to follow is my choice. I dont know what I dont know. If I dont know the experts to follow, guiding me to choose experts seems silly. Just do it for me. Let the experts pick the other experts. There is a huge benefit to everybody in a community seeing the same page. Whether its hckrnews, drudge report, front page of wsj, if everybody sees the same page, there is a social water cooler effect of "hey did you see" "yeah." I just think with the "infinitely customized to you" we are trapping people in a constant cycle of always consuming more of the same, while also fragmenting our sense of community and identity. We get stuck in the filter bubbles we choose. These two articles combined together make me feel trapped. https://www.vox.com/2014/5/20/5730762/buzzfeeds-founder-used-to-write-marxist-theory-and-it-explains https://www.vox.com/2014/5/20/5730762/buzzfeeds-founder-used... https://www.bbc.co.uk/blogs/adamcurtis/entries/78691781-c9b7-30a0-9a0a-3ff76e8bfe58 https://www.bbc.co.uk/blogs/adamcurtis/entries/78691781-c9b7...
- buboard 7y agodo you guys use reddit's frontpage? I never. I hang out in a few subs i check very often and try to be part of the communities. frontpage is just so random
- jmull3n 7y agoYes but I manage my subreddit subscriptions
- pjc50 7y agoThis was called Advogato, and while it was interesting it ultimately died: https://en.wikipedia.org/wiki/Advogato https://en.wikipedia.org/wiki/Advogato