23 ms·
Decentralized Web Primer
- blunte 9y agoCould be that I'm just really out of touch, but I need at least one paragraph saying "What is this?" (and ideally also, "Who is the target audience?" - or "Why would I be interested in reading this?")
- okket 9y ago.
- blueatlas 9y agoJust stop reading if those words doens't mean anything to you. I don't think this is in the spirit of your typical Hacker News reader. HN readers are naturally curious, but with the volume of what comes across, it can be really hard to decipher if something would be of interest or value just based on the title or page 1. For me, it's just not possible to read very deeply on everything that seems interesting, and it would be helpful to get a summary sentence or two for posts that are non-trivial.
- justinpombrio 9y agoHow about instead "If those words don't mean anything to you, go read their wikipedia entries before continuing"? Not every article on IPFS needs to have its own separate introduction about what IPFS is.
- selimnairb 9y agoAgreed, there needs to be some discussion (a few sentences at least) of what might be use cases for IPFS.
- da02 9y agoI'm with you on this one. I had to Google all of this for a few minutes. This is my best interpretation below. I hope others will come in and correct my silly mistakes. (Disclaimer: I'm not a programmer and English is my 2nd language): "So you know how people use BitTorrent to distribute big-budget Hollywood movies with occasional mediocre storylines? What if you could distribute your own data on a similar P2P network, but view it directly in a web browser (among other HTTP clients)? You suddenly turn your seed box into a "web server". Plus, you can stream videos on it too. So your home computer is not just a "web server", it can act as your own "Netflix" server to publish your home movies. And you could do it in a secure fashion. You would need a few protocols (eg IPFS), concepts (eg Merkle Trees), and some freely available software to make it practical, easy, and secure. These tutorials will show you how to get all of those things working together to publish & stream to the world." Watch a demo of this @ 7:00 in this video: https://www.youtube.com/watch?v=8CMxDNuuAiQ https://www.youtube.com/watch?v=8CMxDNuuAiQ
- mxstbr 9y agoWhile he doesn't touch on IPFS iirc, this talk by Mathias Buus is what got me excited about decentralization: https://www.youtube.com/watch?v=7tf14VpeHlE https://www.youtube.com/watch?v=7tf14VpeHlE He does a great job explaining e.g. Merkle Trees in a practical manner that made me immediately go "Wait, I could use this for X and Y?!" Recommended watch!
- da02 9y agoThanks a lot for this. Any other recommendations for videos for other concepts or protocols?
- bringtheaction 9y agoThanks for the recommendation. Positively great talk and you are right it inspires a lot of usecases. Speaking as someone who had heard about Merkle trees but never looked into the details of what they were about, this talk was absolutely worth watching. Regarding IPFS there was a question at the end about the difference between IPFS and the stuff he talked about so it's briefly talked about by the speaker then.
- z3t4 9y agoWho's the enemy ? Why now ? If you are going to give a long presentation you better start with those questions!
- deleted 9y ago[deleted]
- Waterluvian 9y agoWay too many project pages are like this. It really shows how nontrivial good documentation is to make.
- mtgx 9y agoHow hard to censor is IPFS? It would be quite disappointing if we managed to switch everyone over to IPFS, and in the end, after all that effort (and the compromises we'd have to make compared to simply using centralized content), governments would remain quite effective at censoring IPFS content. Could ISPs throttle or block IPFS content, for instance? The developers should start assuming some extremely aggressive environments, like China, and then go from there, because honestly, we don't know if 20 years from now a lot more governments would see China's censorship as a role model to follow. We're already seeing multiple countries in Europe considering it to stop "extremist content", the IPSs in Canada are now banding together to block pirated content, and the US is probably not going to be too far behind after the repeal of the net neutrality rules. And those are just the "democratic" countries. It's obviously much worse for Middle Eastern or African countries already. So I just hope the IPFS developers will always try to develop the platform from an extreme resilience point of view.
- DennisP 9y agoA dev for Ethereum's Swarm, a similar project, wrote the following comparing with IPFS: "Swarm has a very strong anti-censorship stance. It incentivizes content agnostic collective storage (block propagation/distribution scheme). Implements plausible deniability with implausible accountability through a combination of obfuscation and double masking (not currently done). IPFS believes that wider adoption warrants compromising on censorship by providing tools for blacklisting, source-filtering though using these is entirely voluntary." https://github.com/ethersphere/go-ethereum/wiki/IPFS-&-SWARM https://github.com/ethersphere/go-ethereum/wiki/IPFS-&-SWARM I recall an IPFS dev saying this document was a pretty fair comparison, but it's been a while and I don't have a link.
- xj9 9y agojust add i2p and nobody can stop you
- colemannugent 9y agoFrom what I gathered by reading the whitepaper mass censorship is extremely hard to accomplish. >Could ISPs throttle or block IPFS content, for instance? They wouldn't know what was IPFS and what was regular encrypted TCP, the only way I can tell IPFS traffic apart in wireshark is the port number. Once ISPs start blockings random encrypted connections people will get mad when their games or other applications stop working. If we are talking about bad actors in the IPFS network, I reccommend you read their whitepaper. They layout a clever karma based system for incentivizing nodes to help others and punishing nodes that misbehave.
- throwaway2016a 9y agoThis looks really interesting and I look forward to reading it but IPFS is not the only player in the decentralized web game. One only needs to start typing "IPFS vs" in Google. Perhaps "An IPFS Primer" would be a better title?
- esfandia 9y agoI agree, it seems disingenuous to describe IPFS as the only way to implement a decentralized web. For example in our group we've explored the idea of essentially a decentralized Merkle tree where the document id's are resolved via P2P gossip, like in early versions of Gnutella.
- dustingetz 9y agoyeah this reminds me of the 90s when netscape wanted to "be" the web, and 2017 where facebook wants to "be" the internet this whole winner takes all mentality is taking the world in a really scary direction
- maxhallinan 9y agoI agree. IPFS itself has taken a very tacky Silicon-Valley-startup approach to marketing: "IPFS is the Distributed Web". IPFS is distributed and could be used as a web platform. But it's not "the" anything. For me, it's a really big turnoff. Most people involved in the decentralized web movement are very non-commercial. IPFS always seems to have a "shilling for VC funding" taste.
- gtirloni 9y agoI don't have any experience with IPFS so I just downloaded the client and ran `ipfs daemon`. It's been using 500-1500Kbps down and 200-500Kbps up for the last 15min or so. It also has 330+ open connections. Is that expected? It seems a bit aggressive for idling. No message on the console indicating what exactly it's doing either.
- devttyeu 9y agoBy default every node acts as DHT server. If you have easily reachable node this is fairly typical load. You may opt-out from serving DHT requests by adding --routing=dhtclient parameter to the daemon.
- gtirloni 9y agoThat did it, thank you! For now that's more manageable to start learning about it.
- staunch 9y ago"The Decentralized Web" is the WWW system Tim Berners-Lee invented and that we're all using right now. It relies on the DNS and HTTP protocols. This new IPFS-based decentralized web is interesting but it's not even a measurable percentage of web traffic today. Far from being "The". What we need more than anything is to actually realize the beautiful dream TBL had for the WWW. HN is one great example but there should be a million more.
- loup-vaillant 9y agoNo. The web as it works right now is naturally centralised, for a simple reason: the bandwidth costs on a server is proportional to the size of its audience. This is why we need YouTube to begin with, instead of millions of people posting their videos on their personal page. There are other factors of course: firewalls, asymmetric bandwidth, security issues, technical ignorance… But the client-server model does play a significant role. If you want a truly decentralised web, you need to modify a couple things: get rid of HTTP, and use a P2P protocol instead. Generalise IPv6 and get rid of NAT. Give people symmetric bandwidth. Make secure software that is simple to implement, simple to use, and hard to misuse (it's not that hard dammit, just look at qmail).
- fiatjaf 9y ago"use a P2P protocol instead". Actually, just like "the cloud" is just someone else's computer, "P2P" is just someone else's server.
- JetSpiegel 9y agoP2P is not like the cloud. It's someone else's computer, but you don't know nor care what the exact machine you are connecting to because they are mostly untrusted.
- fiatjaf 9y agoI just made an analogy, didn't say it was the same thing as the cloud. My point was that in a P2P architecture you must be a server, everyone else must be a server. And being a server is costly. There must be incentives for someone to be a server, and that's not easy. I actually don't remember a single P2P protocol or framework that has solved that problem yet. Perhaps Bitcoin -- for miners only, not for normal nodes.
- hossbeast 9y agoOne thing I've never understood is how IPFS would serve dynamic content. Like imagine building amazon.com on IPFS how would that work? Every single page served would have Different hash, because the content is always changing.
- domainkiller 9y agoWouldn't a single-page-app connected to a remote datastore work?
- marknadal 9y agoThe next step after DAGs is CRDTs. They have a research page on this: https://github.com/ipfs/research-CRDT https://github.com/ipfs/research-CRDT One of them is us (https://github.com/amark/gun https://github.com/amark/gun), David reached out the other week, now we're trying to find time to discuss with Juan how to best integrate.
- xrd 9y agoThat's exciting that Gun is looking up adopt CRDT. Is that what you are saying? A real open source competitor to Google Firebase.
- marknadal 9y agoThanks! GUN is already a CRDT (it is a generalizable CRDT on graphs), which is why IPFS is chatting with us. Our CRDT has an emergent property of composability though, which lets other specialized CRDTs be implemented on top in just a few lines of code (take this example, of a counter CRDT: https://github.com/amark/gun/wiki/snippets-(v0.3.x)#counter https://github.com/amark/gun/wiki/snippets-(v0.3.x)#counter ).
- oskarth 9y ago> To build the HTML, PDF, epub and mobi versions of the book with one command, run ./build-book.sh Is it built as a one page anywhere already? Seems weird not to include this by default.
- aqsheehy 9y agoUnless your project needs censorship resistance, you can probably ignore this.
- thesagan 9y agoWell, my personal project as a voracious reader and critical thinker does needs censorship resistance on behalf of a diversity of authors who wish to publish their thinking.
- TeMPOraL 9y agoYou can still consider learning about it and supporting it if you dislike the wastefulness/inefficiency of present-day web, or hate how fragile and ephemeral it is.
- WJW 9y agoHow would the inefficiency of the modern web be alleviated by replicating the same data on more nodes? That _increases_ wastefulness, not decreases it.
- TeMPOraL 9y agoReplication is cheap. When the data travels over the wire, it's being constantly "replicated" at every hop (data doesn't really "travel", it's just being copied over and deleted afterwards). When you send data halfway around the planet and back, you're doing a lot of copying. IPFS model makes it so that after you do that, other people around you don't have to do the same long roundtrip to get the same file.
- distagon 9y agoThe one who comments below does not live in China.
- lninyo 9y agoHow about you start with what in the F€>£ is ifps? Not everyone is clued in to whatever the FISH you spent the last four years of YOUR life working on. A little intro section would be nice. I’m just sayin’
- Jommi 9y agoHere's a pretty cool talk on the subject as well by Andre Staltz. It's nothing groundbreaking, but just simple facts he puts on the table to show what the current situation is. Highly recommend. https://youtu.be/qZDJ1z0apVk?t=7786 https://youtu.be/qZDJ1z0apVk?t=7786 Disclaimer: I helped organize the event where this talk is from.
- lioeters 9y agoThanks for sharing this talk - it inspired me to study and get into these new developments more; now I'm ready to read in depth the book Decentralized Web Primer.
- harperlee 9y agoDecentralization is frequently sold as a means against censorship: if we use a decentralized system such as IPFS, we don't need to have a DNS hierarchy to serve content, so it is no longer viable to block a particular domain. But as long as we have ISPs and a common communications architecture, if we start using a content-addressable system, doesn't that help censorship? As a censor, I jump from having to censor all domains that may serve one particular document (which is difficult, as we can see with pirate bay), to just having to force ISPs to block urls with the hash of the document that I want to censor. So we go from having to jump among domains, to having to jump among content hashes, which seems much less practical, isn't it? In my mind, until we have some sort of mesh network with efficient cache systems, the decentralization topic seems (to me) that is providing answers to the wrong questions.
- exyi 9y agoI think that IPFS is a mesh network, node-to-node communication is encrypted, so ISP can't ban certain blocks.
- Asdfbla 9y agoI think by default IPFS also doesn't even replicate content. So you don't even have to block hash lookups in the whole network but just take down the one host that currently has the only replica.
- fiatjaf 9y agoBy default IPFS replicates content. That's it's main feature.
- Asdfbla 9y agoPretty sure it used to be that you have to deliberately pin content that you want to share on your node. Else nodes that accessed it will throw it out of their cache if they don't need it anymore. Maybe they changed the behavior in the meantime though, but IPFS didn't permanently replicate uploaded content in the past without some deliberate user action.
- bababooey 9y agoThe biggest advantage of centralization is the ability to delete something from the normie web and have it deleted. Granted, nowadays you have things like the internet archive, but I don't see normal people going along with IPFS for dynamic content like social media as long as you cannot delete things.
- NoGravitas 9y agoYeah, one of the problems with content-addressable systems like IPFS is that they don't support the "right to be forgotten". And I've heard a lot of big supporters of content-addressable systems arguing that's a good thing, because links never break. But I don't like a world where I can't take down my own blog post[0], only unlink it from my home page. [0]: Yes, I'm aware anyone can host a copy of my deleted page. But it will be served on a different URL, and it takes extra work to do, unlike IPFS or similar.
- golemotron 9y agoPoor name. The web is already decentralized.
- riston 9y agoNot sure but didn't get any information about how the data is stored between the nodes. Does each node keep full state and synchronize when connected to the network(similar to blockchain), or is the data split between available nodes? Could someone clarify the storage part?