14 ms·
Neocities is implementing IPFS – distributed, permanent web
- daveidol 11y agoAwesome writeup! Sure, it's easier to setup your own web presence with "the cloud" today than it used to be, but this only further centralizes control of content to the big cloud providers. Not to mention the cost of bandwidth when serving content via HTTP. Sure, you can distribute your content via BitTorrent, but what kind of user experience is that? Can my grandma use it? Probably not. I hope IPFS sees further adoption.
- _prometheus 11y agoThanks! Help us make it :) -- https://github.com/ipfs/ https://github.com/ipfs/ and, you'll love what we have coming. Soon, you won't need to install ipfs at all :D
- giodamelio 11y agoAre you talking implementing IPFS on the browser level? Is there public code yet?
- reit 11y agoSee https://github.com/ipfs/ipfs.js https://github.com/ipfs/ipfs.js It's coming along, not fully functional yet but you can watch its progress (or contribute code :D ) at https://github.com/ipfs/node-ipfs https://github.com/ipfs/node-ipfs
- antiq 11y agoDoes this mean that browser-only users will not be able to 'host' content?
- deleted 11y ago[deleted]
- espes 11y agoIs there any incentive to host nodes?
- shortly 11y agoyes. https://ipfs.io/ https://ipfs.io/ has more info, in particular, the linked pdf.
- Rhapso 11y agoWhile running an IPFS node does supply some utility to the DHT, the primary utility you can provide to the network is providing files. You only provide files that you have previously accessed via IPFS or added yourself. So even without any external motivations to sponsor other people's content (which are in the works), you have the motivation of sponsorship of content that you wish to increase the robustness and accessibility of. Increasing access to public utility can be itself an incentive.
- mortenjorck 11y agoReading this felt kind of like the first time I read a writeup on Bitcoin. There's the same sense of throwing out some old, formerly immutable rules here, the excitement of something that's going to test some boundaries and inevitably clash with some authority (how can you, for instance, comply with the EU's "right to be forgotten" when that information is scattered into a redundant mesh?). Interesting times ahead for IPFS.
- jeswin 11y agoAgree. What we really need is for browser vendors to get together, bring in the tremendous financial and technical resources they have, and get a decentralized protocol formalized and supported across browsers. It may take years, but it needs to be done. That would change the internet, and the world.
- _prometheus 11y agoTwo pieces of (coming soon) good news: - very soon, you wont need to install anything to use IPFS. it will "just work" with js on today's browsers. - for best perf, yes, we need browser implementations. and... those have begun :)
- fabrice_d 11y agoCool! Do you have links to browser implementations?
- lallysingh 11y agoAre those implementations extensions or do they require native code changes?
- sdoering 11y agoOK, as apparently .js is the defacto thing to build cool sites, I for one will be left out here. On sites not known to me, I typically block most (read all) .js at first, just to make sure that these sites do not leak too much information about me to external tracking tools, advertisers or the like. So using .js seems to me a bit problematic in regards of people not enabling it by default (but this is an absolut minority, if I look at the stats of the sites I analyze).
- giancarlostoro 11y agoSo is this primarily for static websites? I don't see dynamic websites going too well with this system. Edit: If someone like GitHub supported this for GitHub pages it would be a great step forward for this as well.
- Apofis 11y agoThis is also the qualm I'm having with it... it's great for HTML files, but dynamic websites go right the window.
- omphalos 11y agoI believe they have an "IPNS" protocol which is intended to handle mutations.
- Apofis 11y agoAny links, please?
- omphalos 11y agoYou can read section 3.7 of their paper for an overview: http://static.benet.ai/t/ipfs.pdf http://static.benet.ai/t/ipfs.pdf I imagine you could go through their codebase to try to see how far this has come along: https://github.com/ipfs/go-ipfs https://github.com/ipfs/go-ipfs According to this, it looks like the implementation is currently in progress: https://github.com/ipfs/go-ipfs/blob/master/dev.md https://github.com/ipfs/go-ipfs/blob/master/dev.md Hope something in there helps you.
- fryguy 11y agoHow dynamic? Resources can be updated to point to new immutable objects. For instance, as an operator of a website, I can sign the resource `/comments/10189265.json` as referencing an object with a particular hash, and then when there are additional comments, change the object it references. How fast things like this can update are dependent on the implementation, which I haven't read.
- curiousjorge 11y agoI think this is a great trend we are seeing.
- johnmaguire2013 11y agoI'm very excited to see what happens with IPFS. The article talks about replacing HTTP however, and this is definitely a tricky task. Someone in this thread already asked one of my questions (So is this primarily for static websites?) but my second question is: So is this primarily for personal websites? I'm having a hard time finding a good way for Facebook, for example, to monetize their website. Targeting ads go out the window with mostly static content. Even more so though, what about Netflix? How is DRM done? How do you make sure only the correct users can access your objects? edit: Also, doesn't a "permanent web" have an inevitably fatal flaw that you can't free space?
- Rhapso 11y agoYou can free space, but how that happens is not explicit. The more people a file is requested by, the more places it is stored. If the file ceases to be requested, and all the participants decide to remove it from their caches, the file is gone. DHT records are slightly more persistent, but without a sponsor they fade as the network's churn removes the nodes that once hosted them. It is very hard to delete things, and the most likely things to be deleted are things people are not providing effort to preserve (even one person providing such effort is sufficient to maintain the DHT records.)
- johnmaguire2013 11y agoHmm, that was sort of what I figured, but that seems to me as though calling it a "permanent" web is a bit of a misnomer. There is still a place for projects like the Internet Archive.
- david_ar 11y agoBrewster Kahle (IA founder) has expressed a public interest in IA acting as a seeder for distributed websites, so IA definitely still has a place.
- logn 11y agoOne monetization strategy in general for distributed networks is that users pay for bandwidth. They're rewarded for the bandwidth they provide. They profit if they provide more bandwidth than they use. And app developers are rewarded when their apps cause bandwidth to be used. I don't know if IPFS works this way. As far as paying a premium over raw bandwidth to access premium content (Netflix), you could pay them to unencrypt it for you to download. DRM though isn't secure in the first place and decentralization won't make it better.
- gtrubetskoy 11y agoMy first thought is how does it handle SHA hash collisions? Googling for it took me back to HN: https://news.ycombinator.com/item?id=9322489 https://news.ycombinator.com/item?id=9322489 AFAICT it's not yet resolved.
- hardwaresofton 11y agoIn the (relatively rare) case of a SHA hash collision, couldn't you try and resolve a collision by using (the results) of other hashing functions? While two things may produce the same SHA hash, they may differ with other hashing functions.
- gtrubetskoy 11y agoIt will reduce the probability of a collision at the expense of the address being longer - because now you need to carry around hash1 + hash2. But still it doesn't eliminate the possibility, only makes it less likely.
- hardwaresofton 11y agoExactly, what I noted was the most likely temporary/possibly long-term solution to the problem. What about hashing an object that contains the hashes generated by x hashing algorithms? an extra step of resolution, sure, but some way to easily demarcate that some file experienced a collision with another file, and had to have the number of hashes increased to stave off further collisions?
- dchest 11y agoThere's no hashing construction that will "completely eliminate the possibility" (see https://en.wikipedia.org/wiki/Pigeonhole_principle https://en.wikipedia.org/wiki/Pigeonhole_principle), so I'm not sure what answer you're looking for. It's computationally infeasible to generate collisions (accidental or malicious) if SHA-2 is not broken. If you're interested in reading about how combining multiple hashes affects security, see this paper: https://www.iacr.org/cryptodb/archive/2004/CRYPTO/1472/1472.pdf https://www.iacr.org/cryptodb/archive/2004/CRYPTO/1472/1472....
- mindcrime 11y agoWell, I'm not 100% convinced this is going to take off, but I'm intrigued. I'm going to make an effort to get Fogbeam Labs' website up and running on IPFS shortly as well. I'm curious to see where this goes.
- phodo 11y agoThis is great news. Dapps [1] are coming, and DHT [2] /storage technologies like IPFS (although IPFS is more than just a DHT) are the other much-needed side of the coin - no pun intended - to make that reality happen. Exciting times ahead. [1] decentralized app [2] distributed hash table
- ot 11y agoThat's interesting, but I see no reference in the website or the paper to GNUnet or Freenet or other existing DHT-based file distribution networks. How does this compare?
- david_ar 11y agohttps://github.com/ipfs/faq/issues/18 https://github.com/ipfs/faq/issues/18
- HeyImAlex 11y ago> Organizations like the NSA (and our future robot overlords) now only have to intercept our communications at a few sources to spy on us. If you had the hash of some content, couldn't anyone find all of the ips currently serving it? EDIT: Found this https://github.com/ipfs/faq/issues/12 https://github.com/ipfs/faq/issues/12
- typish 11y ago"ipfs dht findprovs <hash>" gives the hash of the nodes serving it. I'm not sure how to get from that to an IP.
- whyrusleeping 11y ago"ipfs dht findpeer <peerID>" will search the DHT for connection info on a given peer.
- viraptor 11y agoI was running IPFS as "my own pastebin for files" for a while (it's great!), but was wondering what can they do to improve adoption / popularity. This move is amazing! Useful, interesting for people who care, and visible for others. Next, I'd really like someone to implement git backend in IPFS / IPNS. Right now there's https://github.com/whyrusleeping/git-ipfs-rehost https://github.com/whyrusleeping/git-ipfs-rehost but that's just simple hosting.
- _prometheus 11y agosee also: https://github.com/cryptix/git-remote-ipfs https://github.com/cryptix/git-remote-ipfs
- viraptor 11y agoI love the person who made it. It's exactly what I needed.
- crypt0x 11y agothanks :) if you find any issue - let me know
- viraptor 11y agoI'm assuming that once ipns starts to work reliably you'll add the support for it? Or is there something that would prevent it? (I mean for single-user repo anyway - multi-user would have to share the key... somehow)
- crypt0x 11y agoRight, that's the idea. Nothing is technically stopping me from adding ipns except finding the time to do it.
- vancan1ty 11y agoI have always wondered if there is some way to make a distributed network which provides content in such a way that users' freedoms are maximized. I don't particularly like handing over all control of my data and internet presence to cloud providers. IPFS looks really, really cool! As ot asked, I am also curious about how this compares to other efforts to create decentralized networks, like Freenet and GNUnet. I definitely plan to pick one in the coming weeks and start using it, hope this catches on.
- deleted 11y ago[deleted]
- bobajeff 11y agoThis brings up a important issue with the web and internet we have now. And that's the difficulty we have in supporting new protocols in clients.
- dperfect 11y agoI wish this article mentioned something about BitSwap; before reading the IPFS paper, I was doubtful about anyone wanting to participate without incentives. Still, even after skimming the paper, it sounds like a lot really depends on how well BitSwap is implemented. At one point, the paper says this: > While the notion of a barter system implies a virtual currency could be created, this would require a global ledger to track ownership and transfer of the currency. This can be implemented as a BitSwap Strategy, and will be explored in a future paper. So it kind of sounds like they need something like bitcoin, but don't want it to be tightly coupled to bitcoin - which is probably smart. But without a single clear solution for a reliable BitSwap strategy (and I'm not sure how it could be reliable without a distributed global ledger of some kind), it's hard to see how/why the necessary resources will be contributed to the IPFS network.
- _prometheus 11y agoCheck out another protocol we (the IPFS creators) are working on: http://filecoin.io http://filecoin.io
- dperfect 11y agoInteresting - I'll have to check it out. Thanks for pointing me to this. Really cool stuff by the way - I'm very excited to see people working on this, and I hope IPFS (or something like it) is successful.
- PhaseMage 11y agoI absolutely love the concept and the underlying moral reasoning for why we need IPFS! One of the first questions that came to me: Is there any way to add a forward error correcting code, like an erasure code to IPFS? I didn't find any discussion of this in the IPFS paper. This seems somewhat critical to be able to compete with modern centralized storage systems which are likely to use FEC extensively to provide the level of redundancy that customers expect. Modern FEC codes can provide phenomenal levels of redundancy with less than 50% overhead. IPFS seems to rely on many fully-redundant copies?
- crypt0x 11y agoInteresting Idea! I think TAHOE-LAFS also uses something like this? From a practical standpoint, I'd like my local node to have a full copy so that my friends coming over don't need to reach out to the (maybe offline) internet but I don't see why we shouldn't support encoding the chunked blocks in such a way?
- dgoldstein0 11y agoBased on my reading of this article, IPFS doesn't specify how you store the content - just that the content you provide back matches the requested hash. So in theory this could easily be implemented under the hood. Though perhaps I'm misunderstanding your question - if you want multiple IPFS nodes to coordinated on storing parts of an erasure encoded file? that would be useful too. Again I think it's possible - you could build a small distributed system to host files this way. The most interesting variant though is if IPFS could have support for something like this natively - so nodes run by different users can each pitch in a little. Conceptually it's possible, but probably the protocol doesn't support it.
- fla 11y agoReminds me how Usenet binaries are often posted along with par2 files. Reed-Solomon ECC are just amazing!
- lewisl9029 11y agoSo let's say I'm building a decentralized chat app built on some DHT and would like to host it on IPFS. I imagine getting the static html/js/css for the client-side app onto IPFS should be simple enough, but how would I handle bootstrapping? Even in a decentralized service, clients need to connect to a seed server somewhere to start querying for other peers on the DHT. Would it be possible to host such a seed server on IPFS? Or would the seed server still need to live on a traditional server somewhere on the "old web"?
- whyrusleeping 11y agoThe way our network currently bootstraps is to dial a set of peers that are hardcoded into the default config file. We also have mdns for finding peers that are on your LAN without the need for any hard coded addresses.
- lewisl9029 11y agoThanks for the quick reply. I was actually thinking of an app running on a separate IP-based DHT, but your reply brought to my attention that IPFS actually already runs on a DHT. Since IPFS runs on its own DHT, are there any plans for a client-side IPFS DHT library for apps to use to connect to peers on the IPFS network? Similar to https://github.com/feross/bittorrent-dht https://github.com/feross/bittorrent-dht, but with native support for IPFS peers? Something like this would make building a client-side real-time app based on IPFS a much more streamlined experience since developers won't have to depend on an external DHT.
- roel_v 11y ago- So I want to download a file over IPFS today, how do I go about it? What sort of client do I use? - Now I want to view a whole web page. Is that possible? - Let's say I have a site that I want to publish through this, along with a bunch of files (images, downloads). I'm serving that site now through Apache. Do I need to 're-publish' each file (using the command in the article) every time a file on there changes? Or is there some automated way to have a distributed version of the latest version of my site? I mean, it's fine and dandy that people can store cached copies, but what I want is that if there's an update to my software, that people actually get the latest version when they click 'download', not that they get an old version because some dude somewhere made a mistake at one point 'hosting' a static version of my site and not updating, and visitors just happening to use that version because that dude is closer to them (in network topology terms) than I am.
- crypt0x 11y ago1) you either use one of the public, legacy http gateways and dial https://ipfs.io/ipfs/$myContentHash(/andDepending/maybe/SomePath.png) https://ipfs.io/ipfs/$myContentHash(/andDepending/maybe/Some... or you use the go implementation which is available for download at https://ipfs.io https://ipfs.io as a compiled binary. You can use it like a unix command line tool to add and get files but you can also run it in daemon mode. It then also opens a HTTP server locally which allows you to use the same URLs as above just with http://localhost:8080 http://localhost:8080 as the schema and host. 2) You can use the ipfs cli tool to add a directory with your sites html and other static content. The client will then give the the root content hash. Then you open /ipfs/$rootHash/index.html or /site2.html and voila! :) Btw, this article is serving from ipfs. Try 'ipfs get QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1' and take a look in that directory on your harddrive. Also: when you now run 'ipfs daemon' your node will help with requests for this content. 3) To update content with a static name, you can use IPNS, it's also mentioned in the article. IIRC: To resolve those entries (and get the latest ipfs content hash) the node with the corresponding key for the ipns entry needs to be online. If it isn't, you get an error like 'Path Resolve error: could not resolve name.'. Maybe come to the #ipfs irc channel on freenode for more specific questions.
- zkhalique 11y agoWe've been thinking about this problem for quite some time. My friends and I are passionate about re-decentralizing the web. The biggest challenge we've come across is this: Many users want to do things with other users That means there has to be a way to persist state and history (of a group activity, an evolving resource, etc.) across machines. Mental poker is still very hard to do for groups. Since most clients will not have amazing uptime, that means you still need a network of servers. Servers that manage security behind a firewall. So, the conclusion is -- for group writable data, the best you can do is have servers be completely interchangeable, but you will still need servers and networks of servers. The good news is, many of the challenges are orthogonal to each other. Someone's building a Mesh network, for instance. Someone else is building the protocol layer with IPFS. We're building the social layer for this coming web.
- ZenPsycho 11y agoCouldn't you do group editing through using lisp inspired link lists? See a comment thread? CONS your comment onto the end of the comment thread and push into the ether, and notify about the new list head. Take other patterns from clojure immutable data structures for various other kinds of group edited time travelling sites
- zkhalique 11y agoIt might be possible to do some sort of self contained data structure that authenticates everybody and only allows authorized access to it, which solves the Byzantine Generals problem like BitCoin does, and which resists forking and instead uses vector clocks and Operational Transformations to consolidate actions done to the tree. But even so, how would it resolve conflicts? It could be a long time until a conflict is discovered, and then do edits get dropped, or what?
- ZenPsycho 11y agoWhy would you want to resist forking, and incur all that other complexity when you can just have an "authoritative" source for the entry point? Similarly, if someone wants to fork the conversation off and become a new "authoritative source" why would you need to stop them? as for conflict resolution, merging, etc, it kind of looks like a (mostly) solved problem. I don't see how conflicts could occur in a comments stream. It's append-only.
- ZenPsycho 11y agohow does IPFS compare to bittorrent's project maelstrom? http://project-maelstrom.bittorrent.com http://project-maelstrom.bittorrent.com
- Confiks 11y agoIn my view Maelstrom instantly disqualifies itself because it's kept closed source. I really don't understand how BitTorrent (the company) can take itself seriously preaching about "truely neutral" networks. I've worked with IPFS, and it's really amazing. The development on it is very active, and the main developers are easily accessible for questions on Freenode#ipfs. I've been trying to build a tiny consensus protocol on top of it, but its native support for signing is still a little rough around the edges (and of course I've been distracted by a thousand other side-projects).
- reit 11y agoMaelstrom was a massive disappointment in my opinion, you appear to be locked in to static websites with no mechanism to issue updates. The entire site is packaged up into a single torrent blob meaning there is no hope of sharing swarms between different sites. And as has been said, it's closed source and Windows only. Avoid.
- deleted 11y ago[deleted]
- stuaxo 11y agoWill the browser be able to download different parts of the same file from different servers ?
- reit 11y agoYes, bitswap is the same basic idea as bittorrent.
- dingaling 11y agoJust reading back though the specification of IPFS, be wary about the claims of 'permanent Web'. Distributed content in IPFS is eventually purged from nodes unless one of the hosting nodes has pinned it to be retained. Therefore, if no-one at Time x views certain content and pins it, then unfortunately at Time x + n that content might disappear just as thoroughly as under HTTP. Unfortunately I fear that means that 'popular' content persists whilst niche and unique data might still fade away.
- hosh 11y agoThe idea is that people who care most about keeping it up will pin it, or pay to keep it pinned.
- kardos 11y agoMuch like they do now by keeping their web server online?
- niklasni1 11y agoIf somebody put something online fifteen years ago, they might not care about it anymore, but I might. With the current web, I can mirror that content by downloading it and putting it on a new server. With this system, that process would be part of the basic workings of the system.
- kardos 11y agoSounds somewhat like bittorrent.... as long as there is a "seed" then the content is available, but it falls apart when the last seeder disconnects. ... and it also sounds like usenet, but here everybody is a news server and they selectively host articles.
- chippy 11y agoWith bittorrent you could make a call in a public forum for more seeds for a file. And if people have a copy of that particular content they can reseed. I wonder if this would also be possible in this case? For example, my small server might serve 200 sites but I'll backup around 500 or so older ones somewhere else.
- wodenokoto 11y agoThis reminds me of a feature I sorely miss on my blog (and almost every other blog I visit!) which is for the blogging engine to automatically take a snap-shop of webpages you link to and let users read the cached version at will. If I link to a page and it goes down, or the content changes, it in a way changes the content of my blog too - in an unwanted way that is!
- crypt0x 11y agoThis! I already thought about starting a project for a local browser proxy that builds an index of <$url,now()> => $snapshotHash as I go. Maybe mixin readability and metadata like referrals. I find it quite belittling how browser vendors treat their history features in terms of archival.
- wodenokoto 11y agoZotoro saves snapshots, although it is for scientific references (citation manager). Due to ads and what not, it will balloon in size surprisingly fast.
- crypt0x 11y agoInteresting. The ads problem is what i meant with 'mixing in readability' by using techniques to reducing a page to its core content. Only text paragraphs from blogs, images from flickr/imgur albums, audio/video from media sites, etc.
- satyanash 11y agoCheck out Crestify which supports bookmarking with archiving to archive.org and archive.today https://www.reddit.com/r/alphaandbetausers/comments/3j702x/crestify_archive_your_bookmarks_and_search/ https://www.reddit.com/r/alphaandbetausers/comments/3j702x/c...
- anc84 11y agoA plugin that makes archive.org and archive.today save a snapshot would be ace. I would give (measly, sorry) 20$ if someone goes to crowdfund this as wordpress plugin.
- rgawdzik 11y agoWhile IPFS can certainly complement HTTP (for example in preventing censorship in states such as China), it will not replace HTTP. Decentralization does not work with centralized services (99% of the web) such as Twitter, Google, etc. You'll need HTTP to run server code. I for one will not be hosting a node where arbitrary code can be run. Besides the obvious fact that a centralized service wants to control what serves from their backend, and the funny scenario where a 51% consensus can decide what Google's logo is.
- deleted 11y ago[deleted]
- reit 11y ago>You'll need HTTP to run server code It's better if your application is redesigned to be distributed on a fundamental level, but you can still send custom data through IPFS in a standard client/server relationship if you want to, see http://gateway.ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmThrNbvLj7afQZhxH72m5Nn1qiVn3eMKWFYV49Zp2mv9B/api/service/readme.md http://gateway.ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsN... for an example. >I for one will not be hosting a node where arbitrary code can be run This isn't a distributed computation platform like Ethereum, it's purely for transferring files, and the only files you host are those that you explicitly request. Also, IPFS is not a blockchain with a 51% to take over, it's an entirely different animal, the only way to redirect a site is with the correct associated public/private key (unless SHA-256 gets broken at some point in which case IPFS migrates to a different hashing algorithm).
- deleted 11y ago[deleted]
- Ono-Sendai 11y agoSounds like the DHT lookups could be quite slow, 20 queries to find the content is going to be a lot of latency. Sounds like a better algorithm than binary search (which I assume is used) is needed. Having said that I think the immutable data / DHT stuff is a good idea in theory and I hope something like this takes off!
- martin1975 11y agoBears some resemblance to Maidsafe.
- spuz 11y agoFor more details about IPFS and other potential uses I recommend listening to this Software Engineering Daily episode with the creator of IPFS Juan Benet: http://softwareengineeringdaily.com/2015/08/25/interplanetary-file-system-ipfs-with-juan-benet/ http://softwareengineeringdaily.com/2015/08/25/interplanetar...
- emilburzo 11y agoBut what happens if mobile devices will become the norm instead of PCs? The number of hosters will be far less than the number of clients. The same issue is now in bitcoin, lots of lightweight clients (that don't keep a full ledger), and not so many full nodes (probably even less after mining rewards will be zero).
- adam12 11y agoMobile devices are getting increasingly powerful, so by the time this is implemented (and when/if it becomes popular) it probably won't be an issue.
- qznc 11y agoBatteries and power will most certainly be an issue for mobile devices.
- david_ar 11y agoOn the other side of the coin, I'd say mobile clients offer more opportunities for local p2p distribution (Bluetooth, etc)
- emilburzo 11y agoSo even more battery drain? I mean indeed local p2p distribution sounds nice, but what's the use if the device is dead in a few hours?
- david_ar 11y agoThe upside is less battery drain from long-distance data connections. But yes, it's not a panacea.
- reit 11y agoA neat system might be, when the reciprocation system gets more advanced, to allow for nodes to build up a reputation/trust with other nodes while they're at home sitting on charge/wifi. Then, they can 'cash in' these brownie points when they're out and about, to download stuff without reuploading anything at the time. There are a number of ways this reputation could be represented, perhaps one possible approach might involve exchanging some unit of cryptocurrency (Filecoin?), or perhaps a web-of-trust style system where nodes publicly 'trust' other nodes based on how much use that node was to them. Personally, I think cryptocurrency is the way to go here, but there's lots of work out there on P2P incentivization strategies. Of course, this could work in tandem with the standard barter system that bittorrent uses, IPFS is not locked into any one reciprocation algorithm and could happily use multiple different systems depending on the situation.
- enkiv2 11y agoJust to point out -- hypertext systems prior to the web almost universally expected permanent stable addresses (and this was, for instance, required by the various Xanadu specs). Enquire (Tim Berners-Lee's immediate predecessor to the Web) had permanent stable addresses, too. The web didn't have permanent stable addresses because the web was a hack, intended as a way to explain Enquire to people who didn't have a background in real hypertext systems. (Let the entire existence of the Web, with its myriad flaws, be a lesson to you: your crappiest demo may well become the thing you're known for twenty-five years later, so make sure your crappiest demo doesn't suck as bad as the Web does.)
- heydenberk 11y agoOr, conversely, make sure your crappiest demo is as robust and compelling as the web.
- oskarth 11y ago> (Let the entire existence of the Web, with its myriad flaws, be a lesson to you: your crappiest demo may well become the thing you're known for twenty-five years later, so make sure your crappiest demo doesn't suck as bad as the Web does.) The web is amazing, and you are using it right now. It has flaws, but so does anything that achieves success at the level the Web has. How many technologies have a direct impact on billions of people's lives? There are subtle reasons why "crappy" technology often wins. One is that worse is often better (http://www.jwz.org/doc/worse-is-better.html http://www.jwz.org/doc/worse-is-better.html) and the second is that people are more prone to complain about popular technologies, which create the illusion that their alternatives would obviously be so much better. EDIT: Note that the web is not just a technological phenomena, it's a social one. If you care about the real world, it doesn't make sense to look at it as a technological innovation in isolation. Anyone can dream up The Perfect Protocol in a research paper, it's an entirely different beast to actually do it and make it work for billions of people.
- tikhonj 11y agoA big (biggest?) reason is that popularity is largely independent of quality. Things get popular for lots of reasons heavily affected by the shape of social networks and early choices by a small number of people involved—often based on what they have and have not heard of more than an analysis of what is better or worse. Quality plays a small role at best. This Nautil.us article[1] does a good job of summarizing the relevant research on the issue and references some supporting studies. > My own research has shown that fame has much less to do with intrinsic quality than we believe it does, and much more to do with the characteristics of the people among whom fame spreads. Put another way: the web has a direct impact on billions of people less because it's any good and more because popularity is inherently a power law and it happened to come out ahead. This doesn't invalidate any criticisms of quality! It's perfectly possible if not likely for something popular to be crappy because most things are crappy and that's not enough to stop them from getting popular. Then they require tons of engineering effort and hacks to scale and improve again not because of quality but because of legacy. The web is what's there already, after all! That's how things are, but that doesn't mean it's inevitable or a good state of affairs. I really wish people wouldn't conflate popularity, quality and success. The first two operate on different axes and the last, if it doesn't, should. [1]: http://nautil.us/issue/5/fame/homo-narrativus-and-the-trouble-with-fame http://nautil.us/issue/5/fame/homo-narrativus-and-the-troubl...
- phatbyte 11y agoThis looks great, congrats to everyone involved, this is really exciting stuff. I got a couple questions I didn't quite understood. 1 - What prevents someone from altering a JS file and serve it to other peers? 2 - Is it possible to obtain all the version of an object and see it's history of changes (like Git)?
- charriu 11y agoTo 1: If you alter the contents, it's hash would change, thus it's address would change, if I understood correctly.
- david_ar 11y ago1) Content is verified by its hash 2) Not yet, but I believe "commit history" functionality is planned
- iso8859-1 11y agosee https://github.com/ipfs/specs/tree/master/protocol#ipfs-and-the-merkle-dag https://github.com/ipfs/specs/tree/master/protocol#ipfs-and-... : "authenticated: content can be hashed and verified against the link"
- SimplyUseless 11y agoDistribution is a great idea. Decentralizing is a great idea. Open Source is great idea. Permanent.... is a great idea and a very conflicting idea. While the utility of permanent cannot be denied but the implications for privacy, piracy are far reaching.
- david_ar 11y agoThis isn't freenet where you have no control over what you store. If you have an objection to certain content, you don't have to store it. It's only permanent so long as at least one person is willing to distribute it.
- kitd 11y agoeg. dodgy Snapchat pics your mate's gf sent him? Transparency can work both ways.
- amelius 11y agoGood idea. But a lot of websites also have a database on the server-side. I wonder how they deal with that.
- kang 11y agoThis sounded like many of the bitcoin projects, specially filecoin and upon reading further I came to know it is by the same guys. Similar projects have been in development for past few years such as https://github.com/feross/webtorrent https://github.com/feross/webtorrent and zeronet This has same problems as the bitcoin infrastructure though: 1. It is unscalable. A page built on IPFS receiving huge inflow of comments would generate many diffs quickly and as soon as they spread in the network they get outdated, thereby clogging space on people's disks but more importantly clogging the bandwidth where nodes compete to download the quickly changing diffs. 2. This is not completely decentralised because it uses bittorrent trackers to identify the nodes in the network. Taking down the the trackers would take down the system as well. Webtorrent is an already working, fast, alternative to IPFS but still centralised. Think of it this way, can you do a pure peer-to-peer webrtc site without needing a ICE/TURN/STUN server? Peer discovery is the centralised part of the problem.
- conceit 11y ago1. Don't use it for what's basically messaging 2. I thought torrents can work decentralized e.g. using magnet links and DHTs.
- reit 11y agoYou can still use IPFS for direct messaging though, see http://gateway.ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmThrNbvLj7afQZhxH72m5Nn1qiVn3eMKWFYV49Zp2mv9B/api/service/readme.md http://gateway.ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsN... The difference being you're addressing to IPFS node IDs, rather than IP addresses. The advantage here is that your IP address could change (moving datacenters etc.), but your node ID never needs to change. Technically you could just use IPFS for routing to between clients and your standard PHP server, which would still be an improvement over the current approach and would guarantee a DNS whoopsie couldn't redirect your site to China, but you'll get better results (less bandwidth required, guaranteed uptime) by decentralizing as much as you can.
- kang 11y agoEven DHTs require a server to bootstrap the network, due to a node's unicast nature on the internet.
- fizzbatter 11y agoI love IPFS, the team has done an amazing job with the implementation. As much as i love it though, i can't help but feel https://morph.is/ https://morph.is/ 's technology of a Targetted Block is required for the web. I know that is outside of IPFS' specific scope, but is that something any of the IPFS/IPNS/IPN developers are thinking of? Being able to push data to a target seems to be a tool that will empower real change - not just solve a technical problem (HTTP failings). Thoughts?
- fizzbatter 11y agoNot sure why the downvotes without explanation. I'm requesting legitimate discussion, so meaningless downvotes only harms the community imo. Please contribute
- JosephRedfern 11y ago"especially when bandwidth rates for small players start around $0.12 per gigabyte" - who the heck is paying $0.12/gb?!
- Tepix 11y agoMore like 2€/TB
- crypt0x 11y agoYou might also want to take note of the browser addons for firefox[1] and chrome[2]. Those redirect requests to public gateways (http://(gateway.)ipfs.ip/ipfs/$path http://(gateway.)ipfs.ip/ipfs/$path) to the http server of the local ipfs daemon. It fetches the content using bitswap protocol and makes it in turn available to other nodes, helping with the distribution. [1] - https://github.com/lidel/ipfs-firefox-addon https://github.com/lidel/ipfs-firefox-addon [2] - https://github.com/dylanPowers/ipfs-chrome-extension https://github.com/dylanPowers/ipfs-chrome-extension
- kitd 11y agoVideo streaming is mentioned, but I don't see how this works for streaming, unless the metadata is the content. Is this right?
- twoodrow 11y agoI participated in an REU a couple years back working with Named Data Networking. Seems pretty similar... The ahem central problem lies with ourselves: TCP/IP was designed as a communication network, not a distribution network. NDN seeks to be a ubiquitous data distribution network. Iirc, the design helps fend off DDoS. https://en.wikipedia.org/wiki/Named_data_networking https://en.wikipedia.org/wiki/Named_data_networking http://named-data.net/ http://named-data.net/
- nly 11y agoA universal distributed file system that looks native on my system (thanks to FUSE) and caches content I access locally, while serving it securely to others, is interesting... assuming you can solve key problems like search, identity when you want it, privacy when you dont, and human memorable addressing... which afaict IPFS doesn't address. The "permanent web" on the other hand you can create using MHT archive files and BitTorrent magnet links. I struggle to get excited about that. Wake me up when someone figures out how to make apps that require seamless multi-user collaboration, like say distributed clones of HN, Facebook or Github.
- beyti 11y ago+1, I still try to understand how to uniquely address all the content (btw asked for it here, just one guy made a joke). Can't think of fb using this without centralization also.
- kordless 11y ago> Wake me up when someone figures out how to make apps that require seamless multi-user collaboration, like say distributed clones of HN, Facebook or Github. There are people working on this, so stay awake.
- beyti 11y agoI just couldn't digest all, after I read this entence in the description: --- When neocitieslogo.svg is added to my IPFS node, it gets a new name: QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU. That name is actually a cryptographic hash, which has been computed from the contents of that file. That hash is guaranteed by cryptography to always only represent the contents of that file. --- And opened a reddit/eli5 question, just to understand "if we can use a hash to identify content uniquely?" here: https://redd.it/3k8g51 https://redd.it/3k8g51 Can anybody elaborate and lighten me up a bit?
- Confiks 11y agoThere is a function that will guarantee to give you a unique 'hash' for every input value, and that is the identity function. Be sure to use a differently subscripted function for every input size though, as the fixed-length property must be satisfied. Kidding aside, the answers given on Reddit 20 minutes before your question was posted here suffice.
- deleted 11y ago[deleted]
- VikingCoder 11y agoOkay, I can't explain it like you're 5... But here's as close as I can get. You've got DNA. Everyone's DNA is unique (shhh, just go with me for a minute). In fact, let's say that we found about 140 GATC pairs, which were also unique (we don't need your whole sequence, just those 140 pairs). Meaning, if we take your 140 GATC pairs, and we take my 140 GATC pairs, we'd be guaranteed to get different results. Now, if I want to refer uniquely to a person, I can just use those 140 GATC pairs, which looks roughly like QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU (when expressed with upper + lower + numbers). But, you've been thinking to yourself, WHAT ABOUT TWINS?!? Well, great question... ...but the cryptographic hash that we use is one where twins are EXCEEDINGLY UNLIKELY. Like, amazingly, shockingly, oh my god, unlikely. They exist, but in practice they're so uncommon that it doesn't matter. Maybe sometime, some unfortunate guy is going to request a picture of Natalie Portman, and get an MP3 of Ted Nugent. It could happen. It's just super unlikely to ever happen in practice. So, there you have it - a cryptographic hash is... excuse me, because this is a supremely flawed analogy... kind of like the DNA of a file.
- rdancer 11y agoWhen a massively distributed file system[1] was introduced into the Linux kernel circa Y2K, there was what I remember as a lot of hype. Nobody, but nobody wanted it then (or since, it's still part of the kernel), and I would be surprised if anybody wanted something similar today. [1] https://en.wikipedia.org/wiki/Andrew_File_System https://en.wikipedia.org/wiki/Andrew_File_System
- njloof 11y agoAll undergraduate accounts at Carnegie Mellon were on AFS in the 1990s. It may have been ahead of its time -- all I know is (a) it was much less reliable than NFS; (b) its security policy was different enough that people (admins included) left lots of security holes; and (c) *.struck
- mileswu 11y agoCERN still uses AFS extensively for all users' files. I believe they use a forked version of OpenAFS. My experience with it at CERN has been okay. It's been fine to use locally, but transatlantic over the Internet can be very slow (it does work eventually though). I'm not sure if there are any alternatives that work any better over long distance. I suppose CERN also has CVMFS [1], which is a read-only caching filesystem that retrieves the files from upstream via HTTP. This works much better, but it is read-only so only satisfies certain use cases. [1] http://cernvm.cern.ch/portal/filesystem http://cernvm.cern.ch/portal/filesystem
- kordless 11y ago> uses a set of trusted servers This uses a set of untrusted servers, so it's different. Also, trust use-cases come in a lot of different flavors, so the comparison of 'wants' is pretty thin.
- xhrpost 11y agoI wonder what the legal implications are for hosting a node. I imagine you would have to comply with DMCA requests in the US, so just hosting a node would require you to setup a whole process for that.
- zxcvcxz 11y agoUnless everyone just ignores DMCA requests and they become unenforceable.
- nightpool 11y agoIgnoring DMCA requests opens you up to being sued for copyright infringement though—that's the entire purpose, is to provide a copyright "safe harbor" for places that host user generated content, provided they meet certain restrictions.
- sroerick 11y agoIPFS is not like freenet where nodes host content -- it is more similar to bittorrent, where you broadcast the files that you have available on your node. Copyright violations will likely function in a similar route to bittorrent.
- StavrosK 11y agoHmm, wouldn't this be a fantastic way for archive.org to host stuff? Set up servers around the world (e.g. with volunteers), copy every file you come across the web there, voila. Permanent.
- vinautomatic 11y agohonestly don't get the big deal or what the advantages are of this or what it solves. bad marketing