6 ms·
I’ve dived deep into IPFS and built several prototypes on top of it. It ended up not being performant enough for me, and that was after heavily modifying the
by survirtual 4y ago
I’ve dived deep into IPFS and built several prototypes on top of it. It ended up not being performant enough for me, and that was after heavily modifying the codebase so that it was true p2p browser & server (their webrtc transport had a lot of issues and they didn’t seem too interested in it, but my needs required it as a backbone).
The security was also a concern, and the scaling had issues. Pinning millions of small items got so slow it would not function. Then I ended up having concerns over hashed based addressing being easy to censor with the architecture IPFS was using (more hub & spoke than anything, given signaling and relay servers were centralized).
I could go on but I ran into so many issues I ended up implementing my own solution that did everything I wanted. Wanted to squeeze even more performance, I’ve been converting that solution to Rust.
This was a couple years ago so maybe things have changed since I used it. Last I checked, they seemed busy on Filecoin.
The idea of IPFS is great and I want to see it succeed, but I think that they got so caught up in their jargon and modularity, the project lost track of some fundamentals.
- password4321 4y ago> my own solution that did everything I wanted Your ideas are intriguing to me and I wish to subscribe to your newsletter! (I really would appreciate any pointers to additional info on something that actually works...)
- survirtual 4y agoIf you find something, let me know. It would save me a lot of trouble. Until then, what I’m building unfortunately doesn’t seem to have a peer. So I will keep at it. If it gets to a point where I believe it can be useful to others, I will share it freely.
- codetrotter 4y ago> If it gets to a point where I believe it can be useful to others, I will share it freely. It sounds very useful already. I’d love to see the code even if it’s not in a quite working state yet.
- survirtual 4y agoTrust me, when I can share I will, and gladly at that. Hopefully it will be useful and many other people take up the cause. After that I’m taking a rest-of-my-life adventure around the world’s most pristine wildernesses.
- davidwritesbugs 4y agoI'll second that - even if the code is currently in poor condition. IPFS sounds great but it has a bad reputation for performance/resource hogging but from your original comment that seems to be the least of its issues. I'd love to use something like that for my project.
- klabb3 4y agoI’m building a connectivity lib in Golang for relay-assisted p2p over tcp. The implementation is simple, uses only a single network connection when idle, and establishes connections very quickly and reliably. Downside is it’s not decentralized and it’s also not UDP, in case that’s your thing. Oh and BYO auth. Please reach out if it fits your use case.
- oldgregg 4y agoContact info? I'm currently developing a p2p tcp library in Golang based off perlin-network/noise which is a very clean implementation but abandoned.
- klabb3 4y agoSounds great, definitely some overlap there. Added to my user page to avoid creating a permanent record. I’ll reply with my personal.
- oldgregg 4y agoHonestly I think Consensys/IPFS/Libp2p is just some corporatized way to derail real P2P and decentralization. Their libraries are total garbage. Lots of complicated code that simply doesn't work. No documentation. I mean look how much IPFS and Libp2p is pumped but IT DOESN'T WORK. IPNS is a joke. All way overengineered crap that does everything but actually nothing. Look at the $$$ and pedigree behind Consensys it's 100% establishment.
- survirtual 4y agoAnything is possible, but having some limited github interactions with the core team, that seems unlikely. My impression is that they are a passionate group that hit the jackpot a bit prematurely. Their intentions seemed good to me they just have an ungodly amount of financing while perhaps lacking a core vision & understanding of what is at stake. Put another way, seems more like an academic building something rather than a seasoned industry pro. In any case, I don’t want to disparage their project. I learned a lot from their code & concepts. We are all on our own roads towards brilliance, contributing to each other in all kinds of ways.
- oldgregg 4y agoI certainly wouldn't disparage the talent- no doubt vast majority have good intentions but unfortunately they are being paid handsomely to have their work be rendered ineffective. Gobble up all the best P2P devs and get them focused on work that is largely ineffective. Lots of code and specs but nothing really usable. Code is not very original, they just take other libraries and tweak them. mplex is their version of yamux, autonat is their version of stun/ice... but then none of their libraries really work together seemlessly. Embrace extend extinguish? If you look at their massive code output then google "what apps use libp2p" you won't find anything because nobody uses it. Berty is really only app worth a mention.
- survirtual 4y agoI’m not saying conspiracy doesn’t exist — it most certainly does — but it just seems unlikely in most cases. In this case, to be blunt, give a bunch of nerds millions / billions of dollars and see how fast their objectives change. Going from being students to having material wealth unimaginable to most suddenly gets you invited to a lot of conferences / parties / inner circles. You’re doing a lot less engineering and a lot more socializing & experiencing, and suddenly those lofty ideals & nerdy curiosities may just not matter as much any more driving around in a lambo with what you’d consider super models. But making even MORE money to do cool things just might. Very few people exist on this planet that can resist that, and it is the explanation for most people / projects / orgs that make it big losing their way. Once you have a lot of money, suddenly life without it seems impossible, and you start to compromise values to secure more of it. It is a steep downhill journey. Most projects are unoriginal. Just a derivation slightly improved on, or a recombination of prior works in a compelling new way. Nothing wrong with that; our universe is composed of relatively few atoms combined in all kinds of special ways.
- KirillPanov 4y agoSame experience here. The #1 lesson they failed to learn from Bittorrent and Tox: your DHT must be sessionless. QUIC is not a solution to this particular problem. Although QUIC uses UDP, it still creates and manages sessions. This is incompatible with decentralized scaling. At the scale of Bittorrent and DNS you cannot manage this kind of session state without centralization.
- anacrolix 4y agoAbsolutely. Too many people try to implement DHT on top of stateful connections, it doesn't scale. It must be as cheap as a single packet or two, with no context.
- jzm2k 4y agoCould you elaborate on why it can't scale if it's stateful?
- KirillPanov 4y agoThat should probably read "doesn't scale without centralization". The full answer to that question is way, way, way beyond the appropriate length for an HN comment. DHTs need to accept requests from any random IP address, anywhere on the Internet. If you allocate state, you have to deal with resource exhaustion attacks. Dealing with them turns out to be way harder than anybody thinks when they first start down this path. Cloudflare and Google can use stateful HTTP(S) because they are so massive. They can employ hordes of people to constantly tune DOS filters to block griefers before state allocation occurs, and lawyers to deal with any griefers who are as large as they are. If you're happy with that kind of centralization you shouldn't be wasting your time with DHTs; you don't need them. Aside from resource exhaustion attacks, there are some pretty deep lessons connected to systems and architecture. The bittorrent bootstrap nodes serve some really insane number of requests/second on very modest hardware (I'm still trying to find the link that detailed this...). The Internet root zone DNS servers were, for a very long time (and perhaps still today in one or two cases) just a few good workstations at universities. Sessionless protocols scale like crazy, on cheap hardware. But they are very hard to design correctly. If you have VC bucks, spend them on hardware and use sessionful protocols.
- chezball 4y ago@survirtual, would love to see what you used your own implementation for. Is it open source? Or a product we might be interested in?