First of all, I apologize for the verbose article. Buckle in. Second of all, I hope you really like the following image that I made, because it can never be deleted. Ever (ok, well not ever ever, but you know what I mean).
You can't delete it. I can't delete it. Steemit can't delete it. Imgur can't delete it, governments can't delete it.
Welcome to the wonderful world of IPFS
All of the images in this post have been uploaded to the IPFS (InterPlanetary File System). A distributed, peer-to-peer file sharing network, that allows you to access data on the web in a much more secure, efficient, permanent, and cheap (in terms of socialized costs) way. I will show you how easy it is for you to upload images to the IPFS for your posts on Steemit, further down in this article (it is as easy as imgur.com). We all love to embed images here on Steemit, so I think this could be a really important tool for all of us here.
Yea great, so what, it's just another image hosting site?
Well, not exactly...
Take a look at the image above. This is actually quite a fascinating image. Three decades ago, when Tim Berners-Lee invented the internet, he envisioned people would be running http servers, and acting as a client and a server of files. The vision was an internet that was truly distributed. At first, this is what happened, and, things were going along quite nicely. This can be illustrated in the third image labeled 'Distributed (C)'.
As the internet grew more popular and money creeped in, we started to see centralization of those servers. This is best demonstrated by the first image labeled 'Centralized (A)'. In other words, your content would be hosted on a physical computer, owned by some central organization, often all the way on the other side of the world. YouTube, Facebook, Imgur are examples of such centralization of your content.
Just remember how much data these big boys really hold. Let's not forget this, this stuff runs our live's more and more every day.
Some of the problems with centralized file sharing
It is highly inefficient. Picture this. We are in a large conference room, 500 people attending and there is a speaker, talking about how great IPFS is. The speaker uploads an image and shares it to e.g. Twitter for the audience to see. All 500 people now go to download that 1 file, from 1 server location 1000's of miles across the backbone of the infrastructure.
This causes at least two problems (there are others, but in the interest of keeping it short)....
Bandwidth
The image may only be 1MB, yet it has to transfer through dozens of centralized servers, all across the globe, to finally make it back to you. Why not, just download it from a peer. Someone close to you. Literally, the guy next to you. Why fly all over the world fetching the file? No need to use the entire backbone of the internet. Bandwidth costs are significantly reduced as a result. Results are much faster.Provenance
Generally, you need some sort of guarantee that the content you requested, is the content you will receive. Currently, these sort of 'approval' providers are those sites we use daily, Facebook, Gmail, etc etc. The corporations which do actually own most of your digital life. What happens if these go down? Where is your content? Our content? The people need a distributed web, living outside of this centralization we currently see. We decentralized our money, now it is time to decentralize the web.
From now on, I will only use ipfs.pics to upload my photo images into Steemit posts. Every image in this post is using an image that was uploaded to the IPFS. It can never be deleted. As long as there is always an IPFS node with the content, the image will be available. If one node goes down, another node can replace the lost node.
To me, this ideology technology, is deeply profound and will affect the way in which content is distributed in a secure, permanent, distributed manner for all of us, cheaper and much faster.
The basic idea of IPFS
IPFS is a peer-to-peer file sharing system, which is by nature, distributed. In particular, it uses cryptographic hashes of the content as the pointer to the file, not the address of the file.
Anybody who has the same content, will have the matching hash, and that peer can share that file with you, vice-versa. In a distributed network such as this, bandwidth consumption and speed of file transfer is much more efficient.
Not only that, if the file is moved, it does not matter. As long as there is a peer with the matching hash, the file can be distributed.
Deeper into IPFS
In the current realm, we typically use the address of a file we would like to access.
For example, a file name might be like so:
website.com/image/image_name.jpg
What if instead of using the address of the content as the identifier for the file, we use the cryptographic hash of the content as the identifier of the file. This is precisely what IPFS does.
This is how that same file now might be indexed, this is its 'address':
QmcDzeiAVh2aQ9bNxLYFL3svhy5ESEn2YJ8ABnyUzLAidk
IPFS creates a hash of the original content within the file. It crypto-graphically ensures you, that the content you are downloading from your peer is 100% unchanged from the original content you requested. This means the distributed content can not only be trusted, it can also be closer to you, meaning it is faster and less intensive in its use of bandwidth to get to you.
Why use IPFS images for your Steemit posts today
By using IPFS for your images in your Steemit posts, you can be sure that your images will never be censored, deleted, or edited. I believe the IPFS will become an important piece of the puzzle in the lives of future Steemians. Not to mention an important step in the direction of free speech, and basic humanist values that should be accessible to all citizens of the web. Values that should not be infringed upon by censorship, or government.
How to use IPFS for your Steemit posts today
You can embed images using IPFS right into your Steemit posts today. Use the uploading tool to upload images here at ipfs.pics.
- Simply drag an image into the 'Upload' section, wait for it to process.
- Right click and select 'open image in new tab'.
- Copy the URL in the new tab.
- Paste this URL into your Steemit post.
- Enjoy your decentralized file sharing with IPFS and Steemit.
Kind regards,
Optimistic
p.s - I have heard rumours, that Steemit will actually be incorporating IPFS image uploads directly via their platform. I look forward to seeing that happen, in the meantime, I will continue to use the IPFS to host images in my Steemit posts, no more imgur for me.