Authors note - published for plus only about a week ago - now being made free for all. Expect me to follow up with some videos eventually on how to make good use of IPFS.
Short reason why:
This site is PACKED with people who share the kind of info Big Brother likes to Memory Hole, and you’re sharing that shit on YouTube, AKA Big Brothers own site and expecting it to stay there like a dunce.
As soon as I say anything about it the counter is usually something along the lines of “But Bit.Chute censors crap too!” That’s right, they do. That’s why you need to learn a little about this.
Long reason why:
You don’t have to learn a whole lot about this. You can use IPFS on a regular basis and not even know it if someone else uses a gateway in such a way you don’t even realize it. You can also treat it like a file hosting service, in fact it pisses me off when people send me to a hosting service to download stuff now that I know about IPFS. I don’t need your MegaUploads please wait and look at these ads while we “get your download ready”. Anyone who knows how web-hosting works knows they’re not fucking getting a download ready for you. IPFS makes sites like that un-needed.
This website is busting at the seams with the kind of people who need IPFS to protect the life of their content and they don’t even know it. If you want the official version of how it works go here, but for the conceptual I’ll explain it to you.
IPFS stands for “Inner Planetary File System”. In short, it’s because it COULD be Inner Planetary and still work with intermittent connectivity if setup properly with all who are concerned. I actually know a little about how commands are sent between the ground and ISS and in some ways I see similarities with IPFS, but only vaguely. It is a tech that would work for that purpose because it can do it’s job even with intermittent connections and indirect routes.
So first of all “IPFS is a file system”. That is the way it is described, and in an abstract sort of way it is. I firmly believe that even though this is the case, it’s probably not the best way to explain it to people. If you’re a Linux/Unix type user you can actually mount IPFS directories on your file-system, and browse to it like you would local files, assuming you can get a solid connection to what it is you’re after. One of the best ways to put web-pages up on IPFS is to just upload a whole folder/structure (old school static pages – you’re not doing PHP in IPFS). I firmly believe one of the biggest reason for the slow adoption of IPFS is the fact that it is so abstract, even people who’ve been in the computer industry for years often have a difficult time with the abstraction. Instead of calling it a file system, I like to think of it as selective swarm hosting.
To put it in a simpler perspective is to compare it to bit-torrent, without trackers, or with everyone being their own tracker depending on how you want to look it. BitTorrent is for all intents and purposes incredibly centralized in comparison to IPFS. This is what makes IPFS valuable – it allows something to be placed in the “collective file system” in such a way that it becomes undeletable. How many time has The Pirate Bay moved? A Pirate Bay in IPFS has no need of moving, and IPFS has no need of a Pirate Bay.
How this works:
First you have to put something into IPFS. There are lots of ways to do this but how you do it isn’t important, what’s important is once you put something into IPFS it gets hashed. Anyone who’s dealt with file integrity knows a little about hashing. It’s running an equation on file and coming up with a number, someone distributes a file, puts the hash out there, you download the file, run a hash on it and if the number on your side matches the number on their side it’s good. Otherwise you downloaded a corrupted or hacked file. In this case the hash is the files identity. In the case of IPFS you add it to IPFS, and it doesn’t go anywhere. If you’re running it on your own system it just goes there and sits there as though you were running a web server. It doesn’t go anywhere until someone request the file.
This is where IPFS gets interesting. When someone request the file your IPFS instance is connected to other IPFS servers on other computers. They start asking around “Hey, do you have this file or know where it is?” It may actually take a really long time before the requested file ends up being copied from your computer to the one that wants to see it if you aren’t on a really popular node. The thing is, as long as you stay connected, and the remote computer keeps asking for it, eventually it WILL get there.
Once it gets there – they are hosting it as well. If someone else request the file it may not even get to them from your computer, it may get there from the other guys, and if the requester finds you both, it may swarm from both you and the other guy, then all three of you have it. IPFS doesn’t really make note of where it came from, once it’s out there, it’s out there. To be clear – at this point you can’t delete it from IPFS even if you want to.
This isn’t like LBRY where once you request something it’s there forever on your system to where you need to just keep adding hard drives, or to where you have to manually delete it. It very much is a popularity contest. The caching is adjustable per system. If you request a file, look at it once, it goes away in time. How long depends on how individual settings. If you look at it again, it should stick around a little longer. It’s almost as though you are running your own proxy cache.
This is interesting – once something goes onto IPFS it very much can go away, and I’ve found a lot of it does. The cream rises to the top, the turds sink to the bottom and eventually get flushed away. Unless they’re pinned.
There’s a way around this. You should pin your own stuff. You can pin stuff in IPFS in such a way that your system doesn’t let it go away. You should do this with things you want to make available to others, and for things you want to be available to yourself. If you find a cool IPFS page, pin it, it might just disappear on you, I’ve seen it happen. I personally keep two computers in play, I have a desktop at home I’m using as a web-server for my personal website and I have my laptop that works from wherever I may be. When I want to pin something I pin it to both, my desktop/webserver that’s pretty much always on, and the laptop that may not be as available, but might be closer to someone else on the network and make a good backup. For those of you who want to keep it simple, there’s services that do it as well.
So I’m hoping at this point you have a concept of “it gets floated up there and it sticks around and no one person has the ability to delete it from there intentionally”. Getting it out of IPFS is so easy you’ve probably done it before and didn’t even realize it, an IPFS gateway can simply serve up an IPFS file like it was a normal webserver.
Here is a link to a selection of IPFS gateways pointing to a file I uploaded earlier so it would be around for the long term.
That’s obviously IPFS because the hash is displayed and you get to pick a server.
Here’s another link I could embed in a post on my own website or on something like LiveJournal (but not Minds, works differently here). To someone who didn’t know this was IPFS they wouldn’t even notice that it was.
When I put something in IPFS that I want to share with others I like to go to that selection page I put up there and click on a bunch of gateways that way they cache it off of one another and it doesn’t necessarily use my bandwidth for every view.
So, as I’ve pointed out above you can use it without really committing by using pinning services and just linking to other gateways.
You can really commit and make it work on your own as well. It’s easy.
First, go get it. I’ve heard people say IPFS Desktop is awesome and it’s the one you want. I personally being a big dork use CLI and set it up to run as a service on my system then I interface with the command line and browser plugin. From what I can tell desktop looks a bit like using the browser plugin in general and is probably what you want. Unless you’re as big of a dork as I am.
Figuring out how to use it is simple from that point forward. If you want to add a file, add it through the GUI, then you can share it. You can either share a hash to others who know about it, but realistically you can just give it as a link to a gateway of your choice. If you’re a big nerd you can even make your own gateway public. I haven’t even done that. If you’re really industrious you can make a whole website, put it in IPFS and never have to deal with a web hosting provider, or in my case DDNS.
I actually had quite a time writing this – since I’ve got IPFS working on my system properly I had to turn it off the plugin to embed links in this post. Every time I went to get a link in my browser to something properly on IPFS instead of pointing to a gateway it pointed to my local host, because everything was being pulled from my local node.
Using IPFS not only gets around censorship by making things undeletable, it gets around the need for a fully functioning Internet. With IPFS working properly on enough systems tied together we could make a global ad-hoc mesh of systems that couldn’t even talk to one another directly and still share stuff with everyone. It wouldn’t be as reliable as using it on the Internet as we know, it, but the nature of the way it shares things between nodes means it will continue to work even if you have cluster fucks of nodes connected to other cluster fucks of nodes on networks that aren’t connected to one another. If we were to adopt IPFS fully and it matured a bit more we could actually do away with the Internet as we know it and go full cluster-fuck. Especially with IPNS. I didn’t get into IPNS and I’m not going to get into IPNS because I’ve still gotta figure that crap out, but long story short, it’s easier than trading in hashes.
You want more convincing? Here's the whole Atari 2600 catalog to play in IPFS. Shit works and it's there forever. That particular gateway might go away, but if you had the plugin or desktop version of IPFS it would just take over and work anyways. If I click that link it plays from localhost, if you click that link without the plugin, at least it still works.
I'm doing something a little different here. I'm going to post this in Plus for a while, then I'm going to post it again for free in a week or two. I haven't decided how long, but I think this is some Plus level shit considering the work I put into writing it. I felt the need to write this because I want people to quit posting so damned many links to YouTube. If I could I would just set the site to not even show me post with YouTube links. Since I can't do that I see occasional links to great content that isn't going to be there long. I want to educate these people on how to NOT use YouTube. The video I used as an example above I downloaded using YouTube-dl and then put it into IPFS so it doesn't go away.