A few months ago, I posted here about my excitement for Plebbit and the promise it held for decentralization. I was convinced that a p2p social platform with a unique UI could be the future, with different UI of all social media…including Lemmy, a true alternative to centralized services. I saw the potential, and I wanted to believe in it.
Plebbit promised a lot of an innovative interface, decentralization, community driven governance. But after months of delays, vague updates, and little to no progress, it’s clear they never delivered. They had the right ideas but lacked the follow through to make them a reality. What was once an exciting project quickly turned into an example of what can go wrong when the hype overshadows the substance.
I wanted Plebbit to succeed, but in the end, I’ve realized that I’m better off sticking with what actually works.
If Plebbit had actually followed through on its promises especially with its vision of being a decentralized Reddit alternative. it could have been the best. The idea of a selfhosted platform, where users had true control over their content and communities, was a dream for those of us who wanted more than just another centralized app. It had the potential to be the go-to solution for anyone seeking real decentralization and p2p freedom. But unfortunately, that potential was never realized. Instead of delivering on its ambitious promises, Plebbit became just another project that failed to meet expectations, and the opportunity for a truly revolutionary platform faded away.
Plebbit is not a ledger, it’s a P2P protocol and has no DHT. Peers find each other by coordinating over HTTP routers, which are similar to bittorrent trackers. HTTP routers are essentially key-value stores so they’re very easy to deploy.
This is similar to Jami. Jami has http name servers for lookup, and (optional) http DHT proxy servers for NAT traversal. Beyond that, it’s peer-to-peer DHT. The DHT isn’t global, it’s shared between connected clients. DHT are also key-value stores, and Jami’s issues are not with the name server, they’re with message synchronization between clients.
Actually, I have to qualify that I don’t know what causes Jami’s delivery issues, but it’s probably not the name servers or proxies, because you can (and I have) hit them directly with a web browser or curl. From what I can tell, the Jami developers don’t acknowledge issues or are incapable of or unwilling to track them down, but the point is that it’s very likely the P2P part that is giving them trouble.
P2P is Ia hard problem to solve when the peers come and go online; peers may not be online at the same times and there’s no central mailbox to query for missed Messages; peers are mobile devices that change IPs frequently; or peers are behind a NAT.
You may be right about the design; I scanned the design summary, and easily could have misunderstood it. I don’t think it affects the difficulty of building robust, reliable P2P applications.
A global DHT unfortuantely is extremely resource intensive, and part of our design requirements is full p2p capabilities for both mobile and web browsers. This cannot be achieve with a DHT, although if a DHT design emerges with support for both, we will consider using it.
Next update for plebbit-js will have full p2p capabilities including gossipsub using libp2p/helia in browser/mobile! We’re excited to ship that.