19 ms·
IPFS, Again
- Karrot_Kream 7y agoUnfortunately, a lot of the problems in this blog post can only be solved by squaring Zooko's Triangle[1]. Most refutations of Zooko's Triangle depend on some form of blockchain. [1]: https://en.wikipedia.org/wiki/Zooko%27s_triangle https://en.wikipedia.org/wiki/Zooko%27s_triangle
- PureParadigm 7y agoJust to give an example of a blockchain approach to this: Ethereum Name Service [1]. 1. https://ens.domains/ https://ens.domains/
- pmlnr 7y agoThere was namecoin way before that, with .bit domains and failed to solve anything.
- sprash 7y agoI never tried ENS but namecoin works flawlessly as intended. It is actually more reliable than classic DNS. It may have failed at adoption, but the problem of decentralizing DNS has been solved.
- davidgerard 7y ago> It may have failed at adoption, but the problem ... has been solved. I am unconvinced that a solution nobody uses counts as a solution to a problem anyone has.
- sprash 7y agoPeople have not been hurt enough by centralized DNS and CA certification yet. As soon as that happens the masses will adopt the decentralized version in droves. It might just never happen. Until then the "worse is better" rule applies. I have used ncdns in conjunction with dnsmasq in the past and I am happy that there is a solution out there that works just in case the other fails.
- skyfaller 7y agoAccording to Wikipedia, Namecoin uses proof-of-work just like Bitcoin, and is therefore very energy-intensive / an environmental disaster. Therefore I could not support Namecoin even if it works perfectly as you say it does. We're going to need a more environmentally-friendly solution to decentralizing DNS.
- sprash 7y agoAs long as Bitcoin exists you can do merged mining with Namecoin. This means there is literally zero additional cost and impact on the environment for mining. If the very unlikely case occurs and bitcoin stops being a thing there is always the possibility to change the POW algorithm. Until then Namecoin is a solution that works ultra reliably since years and most importantly unlike other solutions it works today.
- skyfaller 7y agoIf Namecoin were to become popular, wouldn't that encourage more mining of Bitcoin even if you were doing merged mining? It seems like if Namecoin took off then people would just say the reverse, "Don't worry about the environmental damage of Bitcoin, people were already mining Namecoin so there's no additional harm."
- sprash 7y agoIt will take a long time until NMC will be as popular as BTC if ever. Until then let other people figure out how to implement a proper proof of stake and switch to it when the time comes. In the mean time merged mining is the best compromise between rock solid chain security and environmental impact.
- neiman 7y agoGood question. Do you assume that if Namecoin were to become super popular, the price of its coin would become very high? I don't see why. Can you explain this assumption? Namecoins are not Bitcoins, they're not supposed to be used as a currency, so the logic that the popularity of Namecoin would create a huge raise in its price is not straightforward.
- grahamperich 7y agoIt may have failed at adoption, but I'm really hoping Handshake succeeds. They have a better go-to-market strategy. https://handshake.org/ https://handshake.org/
- skyfaller 7y agoI believe that Handshake also uses proof-of-work, based on their paper at https://handshake.org/files/handshake.txt https://handshake.org/files/handshake.txt, and therefore I can't support this effort either, because AFAIK all proof-of-work systems use unjustifiable amounts of energy by design (e.g. because anyone attempting to edit a past transaction would have to consume impossible amounts of energy to replicate the entire history).
- skyfaller 7y agoI can't support Ethereum as it uses proof-of-work, and while it is a different implementation than Bitcoin, proof-of-work is inherently energy-intensive / environmentally problematic. If blockchain technology were to become popular and widely used by ordinary people, its already worrying environmental impact would skyrocket, assuming the technology is capable of scaling at all. We need to bring the energy consumption of blockchain technology down to a manageable level, and that means abandoning proof-of-work as far as I can tell.
- ElKrist 7y agoCan someone give a proper counter-argument to this? I keep telling my friends hyped by bitcoin that I do not believe in its future as a currency for real daily exchanges because of this energy consumption problem. Is there any serious track to address this issue? Unlike most technologies, I do not see the traditional efficiency gains when the technology gets more mature. It seems inherent to proof-of-work and cannot be improved in this paradigm Assuming a solution is found, is it possible to "update" Bitcoin?
- pushtheenvelope 7y agothe bitcoin viewpoint is that being backed by energy consumption is a Good Thing. Its harder to manipulate than Proof-Of-Stake or other alternative consensus protocols. At a larger societal level, we should definitely be worried about tackling emissions for climate change. For this, very few people are advocating getting rid of energy consumption in our societies. Yes, in the short term, people recommend being mindful of the emissions impact of your lifestyle (e.g. a flight has a large carbon footprint) but in the longer scheme of humanity's development we'll always have greater and increasing energy needs. With that in mind, a lot of focus has been on using non-emissions producing energy (solar, wind, nuclear, etc.) to mitigate climate change. Seen in this context, bitcoin is agnostic to the source of the energy, and its Proof-Of-Work protocol is fine.
- ghoulfarmer 7y agoThe Bitcoin wiki has a number of counter-arguments https://en.bitcoin.it/wiki/Myths#Bitcoin_mining_is_a_waste_of_energy_and_harmful_for_ecology https://en.bitcoin.it/wiki/Myths#Bitcoin_mining_is_a_waste_o... The future for ethereum is proof-of-stake. This project is called Casper and will be in Ethereum 2.0. For Bitcoin most transactions will be off-loaded to layer-2 networks but PoW will remain on the main chain.
- CGamesPlay 7y agoIt seems like only one problem from that blog post can be solved by that. The rest of the usability and performance issues are solved by acknowledging a need followed by a focused development effort.
- stdcli 7y agoBlockstack addresses Zooko's triangle in their original whitepaper: https://blockstack.org/tokenpaper.pdf https://blockstack.org/tokenpaper.pdf and their concept of gaia hubs is the association of immutable identities with user owned storage without the need for IPFS pinning or otherwise data duplication: docs.blockstack.org You can see the most recent conversation about it here: https://forum.blockstack.org/t/cannot-find-ipfs-driver/6147 https://forum.blockstack.org/t/cannot-find-ipfs-driver/6147 in which I convinced someone looking at IPFs to use gaia instead full disclosure, I am an Engineer at Blockstack.
- janandonly 7y agoWho is going to defend the free internet agains Azure, AWS and Google Cloud? They are the very opposite of a free and open internet where everyone can "run a website" on her own machine. It pains me to see a great idea like the Interplanetary File System still not working. I had similar experiences with IPFS and yes, we do need a project like this, only without the broken incentive structure attached to it. Why a "Filecoin"? We already have a tested and working native internet currency: bitcoin. I've long believed that a browser itself should evolve to be both viewing visited websites but also to host said website for an x number of minutes/hour/days. A bit like webTorrent aims to work. This way a website that gets visitors gets decentralised hosters as well :-)
- quickthrower2 7y agoThe middle ground might be to use a local hosting company that has it's own servers and racks. Pay a bit more, but boycott the big clouds for personal websites. You could probably host a few dozen static blogs on a physical machine for say $100/m. If 100 people do that it's affordable.
- x3ro 7y agoUberspace [1] does something like this in Germany. You get to pay what you want, too. [1]: https://uberspace.de/en/ https://uberspace.de/en/ Edit: I'm not affiliated with them other than being a customer.
- majewsky 7y ago> You could probably host a few dozen static blogs on a physical machine for say $100/m. 100 bucks!? I host a dozen unique domains with static content (and a few other services) on a 1/1 VPS for 3 euros/month. At Hetzner, not at a hyperscaler.
- quickthrower2 7y agoYeah I was thinking a whole server not vm.
- spir 7y agoIPFS is providing some value already for blockchain dapps to deploy UIs, albeit currently with a dependency on centralized ipfs gateways. Eg. https://augur.net/ipfs-redirect.html https://augur.net/ipfs-redirect.html
- Proven 7y agoEnormous value! - Let's say the app/UI is 50MB - 500 users download 1 update per month - 10GB S3 capacity for all the releases (not necessary because usually users are expected to run latest release) - Data transfer out: 25GB/mo Monthly cost of Amazon S3 for above use case: $1/mo (a little bit more, but you get the idea) Or, you can get UI releases from Github or Gitlab for free. That's the value. $0.
- codingslave 7y agoThis might sound a bit weird, but when I look at the employee base of protocol labs (the makers of IPFS), the most impressive employees are the business people. Multiple Harvard Business School graduates, tons of Stanford degrees. For the technical people, some are impressive, but no where near the stature of the business people. No distinguished ex-FAANG engineers, no principal engineers from notable companies, a few top STEM PHDs (Not cs), but lots of obscure developers. This isn't to dig on them, but with the kind of money that company has, and the level of technical complexity they are trying to solve...why don't they have better engineers? EDIT: Not looking to argue about whether leetcode filters for good programmers. EDIT 2: Self taught developers at random companies can be amazing, but for a company "evolving the web" and 300 Million in the bank, they have hired almost no nationally recognized experts, and theyre greater developer base is not made up of people with 20 years experience. But rather a bunch of developers who have been coding for 2-4 years.
- jmspring 7y agoThere are a number of companies that have started that haven’t had “distinguished engineers from ex-FAANG companies”. And honestly, the quality of an engineer good at Leetcode is way different than the self taught Eastern European engineer who knows obscure protocol stacks up and down. It’s experience and capability that matters, not being tied to distinguished companies or overpriced fancy degrees.
- onion2k 7y agoSomething 20+ years of development experience has taught me is that developers vary a lot. People who went to Ivy League schools can be amazing and they can be awful, and the same is true for every other dev who went to a 'lesser' college or didn't get a degree at all. Certificates don't tell you much. Output is what matters. You should judge Protocol Labs on what they build rather than where their employees went to school.
- codingslave 7y agoSure output matters, I agree. I'm just saying, only ~one programmers working in their engineering has an impressive track record. And ofcourse, self taught developers at random companies can be amazing, but for a company "evolving the web" and 300 Million in the bank, they have hired almost no nationally recognized experts, and theyre greater developer base is not made up of people with 20 years experience. But rather a bunch of developers who have been coding for 2-3 years.
- microcolonel 7y agoIndeed IPFS performs very poorly in almost every way; it is extremely resource intensive, and generally unable to find objects which are not extremely well known.
- ghoulfarmer 7y agoA smile comes on my face whenver I seen IPFS on HN... The author could have gone an step further and used ENS. IPFS+ENS is becoming a common duo. Web browsers can't do ipfs:// but they can do https://insertipfsgateway/ipfs/Qm.. https://insertipfsgateway/ipfs/Qm... With ENS (.eth) domains can resolve to ipfs:// and Metamask picks those up and turns them into gateway links. There's a list of .eth domains & other ENS+IPFS info here: https://gateway.ipfs.io https://gateway.ipfs.io /ipfs/QmUJKsA1FQRo4rGKJ9WAXNnv6o6HXy4NoJiWH97gPZUddV/ens+ipfs/list-of_ENSIPFS-websites.html
- emmanueloga_ 7y agoJust today I was looking into IPFS vs DAT, does anybody have any insights about the similarities/differences other than the ones listed here [1]? From far away, DAT looks smaller and better documented (perhaps less ambitious, too?) Apparently the best IPFS overview is the 2015 paper [2] which looks pretty daunting and does not seem to cover any practical considerations. 1: https://docs.datproject.org/docs/faq#how-is-dat-different-than-ipfs https://docs.datproject.org/docs/faq#how-is-dat-different-th... 2: https://github.com/ipfs/papers/blob/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf https://github.com/ipfs/papers/blob/master/ipfs-cap2pfs/ipfs...
- unicornporn 7y agoI would recommend this recent take on Dat: https://news.ycombinator.com/item?id=20162199 https://news.ycombinator.com/item?id=20162199
- zaarn 7y agoI consider dat:// to be the better protocol, in part because of what you mentioned. Other advantages are the lack of duplicating data on disk (IPFS makes a copy of all data it shares) as well as having a versioned history of all changes. That way app owners can'tp ublish malicious versions while preventing people from using the non-malicious ones. Essentially, dat:// behaves like BitTorrent but the torrent data can change. The only downside for both protocols I can think of is that the integration story outside the browser and CLI tools is very poor (there is no FFI/C lib Ic an bind my Rust app to)
- macawfish 7y agoDat-rs exists but seems to be on pause.
- yoshuaw 7y agoDatrs dev here. I implemented all of the Hypercore feed protocol last year. The next step was to add the networking layer, which was blocked on async IO in Rust. So that's what I've been working on this year (the Runtime project). Datrs development should be unblocked again soon, starting by moving the fs layer over to async IO. And then tackling the network layer.
- sprash 7y agoA good alternative to IPFS that works today is magnet links and torrents. There are "youtube competitors" that offload the high bandwith requirements via webtorrents running in javascript. You can not host your full webpage with it but you can reduce bandwith costs drastically. A good alternative to DNS is namecoin. It already works flawlessly and I honestly wonder why it has not been adopted more widely.
- davidgerard 7y agoI think if you're proposing something as a "good alternative", then being able to understand why it got near-zero adoption, and failed in the real world, is probably important. I would say that Namecoin appears to solve a problem that nobody actually has in practice. I know advocates are pushing Ethereum Name Service, which does the same thing - but again, what are the lessons learned from nobody bothering with Namecoin? (Namecoin is interesting, as it was literally the first altcoin. It hadn't occurred to anyone to fork the Bitcoin code and make their own coin until then.)
- chriswarbo 7y agoI remember seeing work on using magnet links for decentralised sites about a decade ago. I think the "kio-magnet" project in KDE was along these lines, but ironically the blog posts detailing it seem to 404 now ;)
- WanderPanda 7y agoNon-native speaker here, is the usage of "than" in "Your browser than uses DNS, a decentralized naming system, ..." actually correct? I happen to see this a lot and I am not sure if this is a spelling mistake when people want to write "then" or if it is actually intended.
- Semaphor 7y agoNo. > For journalistic integrity, this post hasn’t been edited or reviewed by anyone. Hence the typos.
- yoz-y 7y agoIt is a very common spelling mistake.
- yason 7y agoI wonder why? It seems to be common with native speakers. I'm not native in English but, for me, it would seem to be nearly impossible to mix these two words even in a moment of carelessness. They mark greatly differing meanings and thus they practically live in different slots in my brain. Even a blind typo won't explain it because 'a' and 'e' are not too adjacent on a qwerty.
- yoz-y 7y agoAnecdotally, from what I've seen in various languages, native speakers do seem to make more mistakes that are tied to spelling/pronunciation (than, then, their they're in English, aller, allé in French) whereas non-native speakers make more grammar mistakes (for example I tend to put articles at wrong places or forget them in both English and French, but the spelling mistakes are absolutely jarring).
- rkangel 7y agoAs a native English speaker, words in the language appear to be stored against sound rather than anything else. When trying to write clear English to be read, I am reading it to myself as I write to ensure that it reads clearly, and so it's more an audio process, allowing for confusion of words that sound similar. I would guess that those who have learned the language have a more logical, grammar based structure and write more deliberately.
- AgentME 7y ago>Ready to publish it to the web? Not so fast. Clicking a link brings us back to my issue in 2017 [link]: the way that the IPFS gateway works will break your links. (following the link to 2017 post) >And even if I used the base tag to re-route that link so that it points http://localhost:8080/ipfs/QmR96iiRBEroYAe955my8cdHkK4kAu6SApGC2eS5kSzHwt/2017/08/01/recently.html http://localhost:8080/ipfs/QmR96iiRBEroYAe955my8cdHkK4kAu6SA... ... It wouldn’t work: the correct URL for that Recently post is, instead, http://localhost:8080/ipfs/QmTbJ6RSLZDmVYy8dgdoeQLCtKya7UrNTCqaw93yZCpH5T/ http://localhost:8080/ipfs/QmTbJ6RSLZDmVYy8dgdoeQLCtKya7UrNT.... So IPFS content links are fully content-addressed. I suppose to make my site fully IPFS, I’d have to build each individual page and then construct a home page that linked to the generated hashes for those pages. That leaves an open question: how could two pages link to each other? Adding a link from one page to the other would change its hash, so wouldn’t it be impossible for pages to reference each other? This might be a lack-of-coffee problem on my part. They've misunderstood that. Both links of these links would be valid. You would have all the pages be under http://localhost:8080/ipfs/QmR96iiRBEroYAe955my8cdHkK4kAu6SApGC2eS5kSzHwt/ http://localhost:8080/ipfs/QmR96iiRBEroYAe955my8cdHkK4kAu6SA... and refer to each other by relative links. The author's point of relative links or a base tag being necessary for the site to work on the ipfs gateway URLs is valid though. (back to new article) >So, links don’t work. I posted an issue detailing this issue, and while I got an encouraging response that there’s a real solution planned, there’s no real solution. People use specific plugins just for IPFS, like this one for GatsbyJS, to get it to work. I ended up writing make-relative, a script that rewrites my built site to use relative links. This is where the story about IPFS being useful here and now for web developers breaks down a little. I’ve done enough HTML-mangling and path-resolution in my decade in industry that writing this script was straightforward. But the knowledge required to do it is not all that common, and I think this is where a majority of web developers would call it quits, because IPFS’s ‘website hosting’ story would look broken. You can either use relative links, a base tag, or keep absolute links and only support your domain with dnslink (and eventually when the web gateways support the hash in the subdomain field, or extensions support the ipfs:// protocol, then your site will also work through that). I'm hoping for the hash-as-subdomain support which will make things simple. >IPNS Yeah, it's awkward. This is because of multiple reasons (zooko's triangle and hosting of the names) that can only be addressed with a centralized service (see DNSLink) or a blockchain. Thankfully there's the DNSLink option too. I wish the IPFS docs wouldn't push IPNS as much because it's not ready / it's not what most people want. >That was an incorrect assumption. IPFS-based websites do update their DNS records every time that they update their website, so that they can avoid using IPNS, because IPNS is just too slow. This was a tough discovery, because it works against everything I know about DNS – a system that isn’t particularly designed to be fast or scriptable. IPFS isn't for frequently changing websites. You're not going to host a forum or other dynamic site on IPFS. (Or if you do, it's going to work by being static content hosted on IPFS that contains some javascript that talks to some regular external HTTP(S) servers or maybe even a WebRTC swarm for all of the dynamic content.) >Unfortunately, once I started getting this set up as a ‘pinning device’ [server], the fun stopped. I tried running ipfs pin add with the hash generated earlier from ipfs add -r, but it just ‘hung’ - outputting nothing at all. After a while I realized that, like ipfs pin add, IPFS doesn’t communicate very well when it’s having a problem. So I figured out how to turn logging information all the way up, and then… I was never able to get past a ‘got error on dial’ failure, despite trying all potential configurations of the IPFS daemon, enabling logging, upgrading to the newest version, and so on. There are about 63 similar issues in the tracker, 21 of which are marked as bugs. I think the "got error on dial" errors are just it complaining that it can't connect to some random people in the p2p swarm. Like people who may have recently turned off their computers, etc. You can't expect to be able to connect to everyone in the p2p swarm. IPFS is just trying to connect to tons of people in the swarm until it finds people with the blocks that you're trying to pin, and it's reporting errors that it can't connect to some of the people in the swarm. The real problem is that it should be giving some kind of logs of how it's trying to find some content, it's successfully connected to a bunch of people, but none of them it's talked to yet have it. Also of course it should eventually make a connection back to your computer and successfully get those blocks. I'm not sure why that's not happening and that's disappointing it's not working. I really hope IPFS improves in things like this because the concept of IPFS seems great.
- chrismatheson 7y agoUnicornporn thamks for the writeup, saved me a lot of time (I thought IPFS was ready to go for this sort of use case) P.s I think there is a typo at ‘ipfs pin add’ where it’s used twice instead of ‘ipfs pin add’ then ‘ipfs add’ I think?
- unicornporn 7y agoI didn't write the blog post. Tom MacWright did. :)
- unicornporn 7y agoHi, I made this submission. If you want a take on the competition (Dat:// and Beaker Browser) I made another submission here: https://news.ycombinator.com/item?id=20162199 https://news.ycombinator.com/item?id=20162199 Direct link: https://www.kickscondor.com/on-dat/ https://www.kickscondor.com/on-dat/
- cryptica 7y agoI work for a cryptocurrency company as a software engineer and I definitely agree that a lot of projects backed by crypto funds tend to over promise and under deliver. It's clear that those who control the funds aren't always the best at judging tech talent. Big tech corporations have had years to settle down and build a reputation to attract top talent. Crypto companies tend to attract greed over talent and it shows in practially all projects. Its improving for some projects but not others.
- drawnwren 7y agoI've seen this argument before and tend to disagree. There is certainly greed, but I think the larger problem is that crypto doesn't have users. I don't think it's particularly novel in 2019 to say that a successful app is built off of the feedback of its users. Any app, regardless of intentions or engineering prowess, is going to struggle if it doesn't have a sizeable user base providing feedback (and devs who listen to that feedback).
- deleted 7y ago[deleted]
- kebman 7y agoI think you're touching on an important point. There are already other vessels for the niche that cryptocurrency fills—at least as far as websites and web services go—that are way easier to both implement and use. With that said, I'm still rooting for cryptocurrency as a general competitor to state-backed currency, that in turn gives people all over the world more freedom to conduct their business without state or corporate intervention. That is most of all about freedom, and the only bogeyman they've yet to conjure against it is "it's used for criminal stuff". Like the dollar isn't also used for crime...
- davidgerard 7y ago> Like the dollar isn't also used for crime... Crypto people say this like it's an argument in their favour - whereas it actually means: even for its one and only genuine consumer use case, crypto is utterly trounced by conventional currency.
- neiman 7y agoWe've been playing a lot recently with the concept of IPFS websites. We even created a plugin (https://github.com/almonit/almonit-plugin https://github.com/almonit/almonit-plugin - unreleased officially yet!) for websites that combine IPFS with ENS (a decentralized DNS). Our repository contains a list of decentralized websites using this method. We found about 20 so far. Technically, IPFS work well for us, but we made sure to have a server seeding our website at all times (where we suffer similar problems like the author of the post describes). Even then, we still had to make sure that the website is available in all main gateways, since most people don't run their own IPFS daemon. The strange part is that sometimes content is available in one gateway, but not in others. Or sometimes it's available in one gateway, but we can't get it on our local IPFS node. I understand that IPFS is not a blockchain, so I can't expect all the nodes to have the same content. But I do expect the main gateways to communicate more directly with each other. Conceptually, IPSF websites are a bit like sending your website to someone via an unreliable slow mail; i.e., it's not that attractive. You can make it somehow more dynamic, using what they call IPNS (it allows you to update your content). But the result is so slow, that even the most devoted monk would lose his patience eventually. A workaround is using a decentralized name system, like ENS. This works very well, but the result are still static websites. No comments or anything really interesting happening. Those websites are censorship-resistance and very robust, you don't have to worry about ddos attacks. But then again, how many people worry about such things? That said, I still like the concept of IPFS. We are exploring a few options to add dynamic behavior to that now, where the dream is to mimic existing services in a decentralized way. Surely, they won't work as well, but the pro would be that it will be controlled by the users, and that they will be able to survive financially with no ads.
- momack2 7y agoAlmonit looks cool. The IPFS in Web Browsers working group has also been collaborating with Nick Johnson et al from ENS to create an “EthDNS” server to resolve ENS names to IPFS content in a decentralized way (along the lines of https://github.com/mcdee/coredns https://github.com/mcdee/coredns). Should be a working demo in time for IPFS Camp in ~2 weeks!
- 7y ago
- ohnoesjmr 7y agoHey, but it's great if you want to piggy-back a botnet on it, with no way to kill c&c: https://www.anomali.com/blog/the-interplanetary-storm-new-malware-in-wild-using-interplanetary-file-systems-ipfs-p2p-network https://www.anomali.com/blog/the-interplanetary-storm-new-ma...
- whyrusleeping 7y agoYeah, we're watching this. They aren't so much piggybacking as they are just using the open source code for libp2p and our pubsub (which is fully peer to peer, not reliant on any central server that could shut it down). However, the way they are doing it makes it really easy to find infected nodes. Running a scraper we see around 3k peers involved
- jhabdas 7y agoIPFS looks good on paper. In practice my experience wasn't very good. ZeroNet, on the other hand, feels like the future for DWeb and that's the direction I'm personally headed. What about you?
- truth_seeker 7y agoWhat do you use ZeroNet for ? Does it gives you reasonable latency performance ?
- jhabdas 7y agoI use it for zero-cost, uncensorable hosting. It's fairly trivial to get set-up if you're running Linux. Here're instructions for Manjaro if you fancy Arch-based distros: https://habd.as/post/surfing-uncensorable-web/ https://habd.as/post/surfing-uncensorable-web/
- skyfaller 7y agoIt appears that ZeroNet uses Namecoin, and therefore is reliant on energy-intensive / unsustainable Bitcoin technology, so I cannot support it. It blows my mind that almost every decentralized system mentioned in the comments here relies on unsustainable proof-of-work systems. Blockchain technology is possible without proof-of-work, and decentralization is possible without blockchain. We can do better, folks.
- yason 7y agoI don't think this is ultimately an IFPS problem. How I've always understood IPFS is the protocol being a decentralized blob storage. You would use it in place of a CDN, to share files, or other building blocks for something higher-level. This is in contrast to browsing where there are established semantics on addressing absolute and relative URIs, and clustering relevant content under hierarchical addresses in the URI path. The author insisted on doing this on bare IPFS but I think this is (vaguely) analogous to building a website based on IP addresses and port numbers, not URIs. To the point: the semantics just aren't there. I could imagine an IPFS based web site being built with a local URI resolution map as part of the bundle of objects that is the web page. The sub pages would refer to symbolic URIs like before but the browser would also download a site map that links URIs to actual hashes of the latest revision, and resolve references like "foo/bar.html" or "/root/foo.html" based on the map. Or a proxy could do this transparently, translating URI requests to hashes and fetching data directly from IPFS, then serving it back to the browser as if it was downloaded from "/root/foo.html" instead of "ipfs://50ad443758222efea0286f3a94db2c25". The top-level entry to the web page would basically be this URI resolution map which, as content-addressable, would effectively refer to a single revision of the web page. This could be implemented as a separate URI scheme, like ipfs-uri://bb9f6cbcc28829b57dd25102f67b9d37/main/news.html where ipfs://bb9f6cbcc28829b57dd25102f67b9d37 would point to the URI map and the URI handler would resolve the relative URIs such as /main/news.html based on the offered mappings. But all this does require extra lifting from the browser or a proxy. I don't think IPFS as designed is feasible to replace something like HTTP which was explicitly meant to work with URIs.
- nybble41 7y agoIPFS already supports path-based lookup, starting from a hash which identifies a directory tree. For example, this is a valid IPFS URL which renders as a directory listing: https://gateway.ipfs.io/ipfs/QmYXYP1J346Pic6UHV5AkUy1UgabtJVAZU254ha4KLGBfJ/series/Belisarius/ https://gateway.ipfs.io/ipfs/QmYXYP1J346Pic6UHV5AkUy1UgabtJV... Normally that link would retrieve the content via a public IPFS gateway, but if you install one of the IPFS browser extensions you can have URLs like that automatically redirected to a local IPFS client. As long as you stick with relative paths, it's not difficult to host a static website on IPFS. You can even configure a CNAME to point to a public gateway with special DNSLink TXT records so that visitors don't need to know the hash of the root directory. The end result looks just like a normal HTTP URL.[1][2] [1] https://docs.ipfs.io/guides/concepts/dnslink/ https://docs.ipfs.io/guides/concepts/dnslink/ [2] https://developers.cloudflare.com/distributed-web/ipfs-gateway/connecting-website/ https://developers.cloudflare.com/distributed-web/ipfs-gatew...
- beders 7y agoAnyone remember the P2P craze of the early 2000s'? Or was it late 90s? What's left over from that? Freenet? What I'm always wondering about: Someone needs to foot the server/bandwidth bills. Who? If you run a Pi on your home network and serve requests with your 5MB/s upload: That's fine. More power to you. We need more of that. (and in that case, you are paying your ISP) But the transformation envisioned and the bandwidth and compute required doesn't come for free. Someone's gotta pay. In things like dollars. How can this work?
- clarry 7y agoEven freenet is kind of a ghost town..
- Proven 7y agoYep. > Someone's gotta pay There are quasi[1]-free market capitalists in crypto community who think that because many ISPs don't throttle and provide "unlimited" upload quotas means they can build a business on that platform. If IPFS or any similar project actually took off and home users begun to strain ISP networks, pretty soon there would be quotas, price hikes and throttling. Someone's gotta pay. [1] ICO-ing a file sharing coin, while demanding Net Neutrality
- rohan1024 7y agoIt's not the cost that's preventing what you mentioned. It's the ISPs which don't allow incoming traffic and have symmetric NATs all over there network. IPV6 is here and we should have gotten rid of NAT long ago but there's no incentive for corporations or ISPs so we are stuck here.
- velcro 7y agohttps://www.shiftnrg.org/ https://www.shiftnrg.org/ might be interesting here too - IPFS-based project targeting web hosting specifically (includes a custom DNS + working on serving dynamic content, CMS, etc). BTW as a proof of concept their website is already hosted on their own IPFS cluster.
- acdha 7y agoTheir website is hosted on CloudFlare: https://redbot.org/?descend=True&uri=https://www.shiftnrg.org/&req_hdr=User-Agent%3ARED/1.2%20(https://redbot.org/)&req_hdr=Referer%3Ahttps://www.shiftnrg.org/&check_name=default https://redbot.org/?descend=True&uri=https://www.shiftnrg.or... They’re using DNSLink so basically what we’re seeing is that using DNS and a major CDN makes your site reliable, which does not seem like a particularly novel advance.
- _tlinton 7y agoIPFS is a decentralized file store. It isn't a decentralized website host, although it can be used as one. That is just a nice consequence, not its reason for being. IPFS is a building block. If you want a better experience, build a tool that takes advantage of IPFS.
- chriswarbo 7y agoI think this comparison is pretty good: the author's problem with absolute URIs is essentially the same as using `file://` URIs and accessing the site from different directories (although `file://` doesn't have the chicken-and-egg problem of pages trying to link to their own hash; IMHO that would be worse than relative links anyway, even if it were possible). Still, I think that the author's criticism is valid, since the IPFS project does seem to encourage the view that it's suitable for Web hosting, rather than just "a nice consequence". The author's struggle with IPNS, and recommendation that it be de-emphasised in the docs, is in line with my own experience.
- _tlinton 7y agoThe IPFS documentation only provides a "basic example" of hosting a website with IPFS. In general, the IPFS website focuses on its uses as a file system.
- kebman 7y agoJust out of curiosity, how would you delete something off IPFS? Is the only solution to have the address hash point to a program, or app, if at all possible? Or a space that does not update the hash, iven if the "thing" is updated? I'm new to this interplanetary world... :D
- mirekrusin 7y agoNot sure you probably store encrypted data and delete decryption key if you want to discard. Now unused blobs will probably fade away with time. Not sure if it works this way.
- hobofan 7y agoFrom IPFS: You don't. As long as a connected node is hosting the file, it will be available to other peers. For a file where a single host is "pinning" a file (= purposfully hosting the file), it will fade out organically once it leaves the caches of all the nodes that accessed it once. From IPNS: You point the IPNS entry to something nonsensical and then by default it will be gone once the TTL of the old IPNS entry is reached (kind of like DNS).
- momack2 7y agoIf you’re the one hosting a file on the network, it’s as easy to delete it as cleaning your cache / stopping hosting it. Folks might have the “address” for your file, but they won’t be able to access it if you aren’t hosting it. Now if someone /else/ has the content already, you can’t take it away from them and delete it off their server - so same model as the web already has (just without central players in control of these decisions, and the useful ability to still find content even if the original host changes)
- billconan 7y agoI tried to port libp2p to c++. Each time, I got discouraged by so many sub projects linked together. I really don’t like the way they organize code.
- protomike 7y agoThere is a C++ implementation of libp2p being developed at https://github.com/soramitsu/kagome https://github.com/soramitsu/kagome with help from the go-libp2p original implementers (and funding from web3.foundation). They've implemented a lot of the major functionality already. I'm sure they would appreciate contributors if you want to get involved. (Full disclosure: I work on the libp2p project)
- stefek99 7y agoRecently I was playing with IPFS: https://genesis.re/kleros-metaevidence-metahash/ https://genesis.re/kleros-metaevidence-metahash/ Using another part of crypto ecosystem (Infura) It's still not straightforward. BTW... A few weeks ago I saw on HN an automated tool to publish static website on IPFS. It was pretty sleek...
- DenseComet 7y agoCan you link the tool?
- autonome 7y agoMaybe this one: https://github.com/agentofuser/ipfs-deploy https://github.com/agentofuser/ipfs-deploy Makes it super easy to push static sites on IPFS.
- joepie91_ 7y agoHere's your periodic reminder that IPFS is a distribution mechanism, and not a storage mechanism. It doesn't persist anything. It's like a more granular BitTorrent, and not really a filesystem at all. This can be very useful in certain situations and projects! But it means that it is not a replacement for a centrally-hosted website... and the IPFS site does a very poor job of conveying this limitation. (I can't take Filecoin seriously as a 'solution' here either - as far as I can tell, it suffers from the exact same problem as every 'blockchain-backed storage system' I've seen before... it's unable to reliably verify that some peer is actually storing data, without a local copy to verify against.)
- whyrusleeping 7y ago> it's unable to reliably verify that some peer is actually storing data, without a local copy to verify against. Filecoin can actually do this. I'm planning on doing a blog post about how this works soon (in all that copius free time), but a good summary is here: https://github.com/filecoin-project/specs/issues/155 https://github.com/filecoin-project/specs/issues/155
- programmarchy 7y agoAnyone tried urbit?
- jancsika 7y agoFor all the time you spent on this you could have just posted an onion site in about five minutes and spent the rest building a little web-of-trust indexing site to fill the demand for the less than 1,000 people who want to post personal sites on a decentralized web.
- chriswarbo 7y agoI agree that IPNS is pretty unusable (do names still expire after 1 day?). Last I saw, the IPFS devs seemed to be pretty excited by a pub/sub mechanism they were building into the system; potentially to replace the workings of IPNS. Is that a stable or useful alternative for indexing changing content like a blog? How decentralised is the pub/sub (i.e. do new subscribers need to contact the publisher, or are messages persisted for a time in the network)?
- momack2 7y agoI think there's a proposal (https://github.com/libp2p/go-libp2p-pubsub/issues/175 https://github.com/libp2p/go-libp2p-pubsub/issues/175) and a PRs in progress (https://github.com/libp2p/go-libp2p-pubsub/pull/171 https://github.com/libp2p/go-libp2p-pubsub/pull/171) for IPNS over pubsub - still a WIP, but aims to address these performance challenges.
- aschmahmann 7y agoThe way IPNS uses the DHT faces some deep challenges if you really need the “latest” IPNS update (if you don’t there are various ways to make IPNS perform significantly better, see https://discuss.ipfs.io/t/ipns-resolution-takes-a-very-long-time-first-time-around/5620 https://discuss.ipfs.io/t/ipns-resolution-takes-a-very-long-... for guidance). There is also some work to make IPNS work over PubSub independently from the DHT. That work is being tracked at https://github.com/ipfs/go-ipfs/issues/6447 https://github.com/ipfs/go-ipfs/issues/6447, and should significantly improve IPNS performance as well as add in features like allowing users other than the author to keep IPNS records alive (so no 1 day expiration issues). As for the decentralized nature of pubsub it is essentially an opt-in system. Random people on the network are not holding or forwarding your messages as they would in the DHT. However, anyone who has subscribed to a topic will propagate messages for you to other subscribers. This means subscribers do not need to directly contact the original IPNS record publisher to get a record, but instead can get it from anyone who has it and is advertising that they do so.
- api 7y agoIPFS is a victim of the great plague of modern software development: over-engineering. They've spent far too much time coding and far too little time thinking of ways to avoid coding by simplifying their algorithms and protocols and most importantly by carefully defining and scoping their problem. The massive amount of cryptocurrency funny money they raised makes this problem worse, not better. Lots of money leads to too many cooks in the kitchen. Large organizations require immense discipline to avoid scope creep and runaway complexity growth. They need someone to say "no!" 95% of the time and relentlessly exterminate features and not allow things to be released unless they are ready and actually solve a problem. Most large organizations don't have this, which is why most "enterprise" software is a mass of twine and chewing gum. In the case of enterprise over-engineered bloatware you usually have some corporate requirement forcing its use. No corporate requirement forces IPFS or any of Protocol Labs' other sprawling mega-projects to be used, so nobody is going to use them.
- christroutner 7y agoI built some open source tools to accomplish everything that this article tries to achieve. It's totally possible and borderline-easy to use IPFS to create uncensorable websites: Check it out. Make up your own opinion: http://troutsblog.com http://troutsblog.com
- woodandsteel 7y agoFor years I've been reading HN comments sections for IPFS links for years. In the past IPFS developers would show up to defend it, but for this link at least so far I haven't seen any. Is this an admission that IPFS is unworkable, and they don't have any prospects of making it usable in the next few years?
- whyrusleeping 7y agoHey there! I'm usually one of the people who likes to engage on HN. I'm actually taking a couple days off to visit family, someone just texted this thread to me. I'm gonna go through and respond to some stuff now.
- _prometheus 7y agoHello! o/ We've responded to a number of points here. You can check out our roadmap > IPFS is unworkable... making it usable in the next few years Absolutely not. The OP brings up a lot of great, useful feedback for us, and we'll respond to it. But the OP is also simply wrong in saying it's "not usable". There are millions of end users benefiting from IPFS, 100Ks of libp2p nodes, we see PBs/mo of traffic in the infrastructure that we run, and millions of daily requests to our gateway. Look to fully decentralized applications and systems like OpenBazaar, Textile, Dtube, and others. Beyond that, we're well aware of the many shortcomings, and working on them. We're unfortunately spread thin across a lot of projects (IPFS, libp2p, filecoin, ipfs-cluster, etc), but each is seeing significant growth and improvement. You can see the long-term IPFS roadmap here https://github.com/ipfs/roadmap https://github.com/ipfs/roadmap