Why the InterPlanetary File System (IPFS) and Steemit are so great together

in #steemit8 years ago (edited)

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.

http://ipfs.pics/ipfs/QmdAN4hmY56Ss6aieT74FTiQUYDRtyZwz35dxoPhHuFdEi
original artwork

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...

http://ipfs.pics/ipfs/QmYMEwmWXDoVmtUQ2eJFN2c9P3MbHf2rBUuYEwgh37ss4G
original source

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.

http://ipfs.pics/ipfs/QmcDzeiAVh2aQ9bNxLYFL3svhy5ESEn2YJ8ABnyUzLAidk
original source

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)....

  1. 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.

  2. 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.

http://ipfs.pics/ipfs/QmSHMftCKyaG3dLK3UqGbtAzRA17XL6rPUu81jATE8oq2w
original source

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.

  1. Simply drag an image into the 'Upload' section, wait for it to process.
  2. Right click and select 'open image in new tab'.
  3. Copy the URL in the new tab.
  4. Paste this URL into your Steemit post.
  5. 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.

Sort:  

I just learned a lot about IPFS .

  • followed
  • upvoted

Thanks for this info will try to share this.

Awesome article ! I use IPFS as well, and this post helped clarify what exactly is meant when it says " upload a picture to the permanent web". I am not much of a technology person , but this post helped me understand better (especially the little diagrams!) Thank you!

Nice to hear someone else using it here as well. I am glad you found my post useful. I would think Steemians would support the ideology behind IPFS. I know I do. Thanks!

shared on v/contact:
https://voat.co/v/Contact/comments/1275976

also Twitter:

great post.

I have 1300 real twitter followers but Twitter is muting and bubbling a lot of posts they are censoring everything, hence the issue (obviously)

Nice. The Times They Are A Changin'. Time to host all images on IPFS. I know how much we love to post images here. Steemians should really be using IPFS. I hope to see more IPFS images here, until #steemit implements it into the platform de-facto.

heads up in the sentence :

'From now on, I will only use ipfs.pics to upload my photo images into Steemit posts.'

the link is dead for me - but it works down under the

"How to use IPFS for your Steemit posts today"

section. which is weird ah the first link has an 's' in pic(s) - so you can edit in the first 24hr.

regards.

That link should be fixed now, thank you. Yes, you can edit before the first payout no problem.

If you like IPFS... check out zeronet, that's the next level :)

I have heard of zeronet, I will definitely take a look now (no, seriously).

Interesting. Is this related to Namecoin? I think that's where the .bit domains started. Wasn't a true dns. More of a redirect, but ZeroNet looks a lot meatier.

Looks great! I will have a look! Thanks for the info!

Certainly makes a lot more sense to pull an image from the computer next door to you, than 12 computers all across the globe.

This is awesome. A much better way to share data.

Totally Awesome!!!!!! I don't think anyone here has a problem with decentralization ;) I'm in. Will be using IPFS not only here in the steemit community but for other applications as well. Thanks!!

Nice. Me too. :)

my only beef with ipfs.pics is that it's limited to 2 MB per picture. (even if you don't use the web interface and add your pictures in your own local IPFS instance)

Good to know. Yes, 2 MB is not nearly enough, in some cases. I am not familiar with all of the technical aspects of IPFS yet. I wonder if this is a limitation that ipfs.pics applied. If so, sounds like it opens up some interesting opportunities to create one that allows larger file handling.

yes, it's only about ipfs.pics website, not ipfs itself.

but also gateway.ipfs.io might have problems handling larger files. i experienced timeouts.

Sounds like an area that may need some attention. ;)

it's just a cost factor i guess. mid-term we should use ipfs directly through a browser extension anyway, rather than using web gateways, but oh well, pesky Metcalfe.

Supported ✅
I just unplug it 😜

Thanks @bullionstackers :P

I'm in new level now
Sweet ❤️👍

Awesome to read that. I just wonder if I can use IPFS to store private files as well. And how to use it.
I reserved today for saving my files safely and I am sticking to my values by not supporting/using centralized servers anymore. Can somebody tell me which is a good decentralized private storage service?

I wouldn't put private files on something like this. IPFS is more of a public web than a dropbox or google drive type solution. There's a fantastic article here: https://steemit.com/web3/@pinkayesh/new-generation-of-the-internet-we-need-to-know-about-web-3-0 about the options, with some depth on the whole web3 thing.

I like the idea of ipfs but, considering the simple example dtube vs youtube, I think it has not reached the point where you can benefit from all potential advantages. Of course, dtube is one special platform to show content from ipfs. But it lacks the speed of YouTube so the theoretical boost is missing. I guess one reason could be the largely distributed CDN for YouTube. So still ipfs has to compete with those.

Congratulations @darknet! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 3 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

I'm struggling to find an image hoster whose links will EMBED into Steemit posts. I even have a NAS server at home online, or Yandex online, but links from those services do not embed (just shows links)

I want to be able to handle images via Android or via API. Imgsafe.org site is not Android friendly however through Win, it DOES embed into Steemit (showing image not link).

Imgur can prob be used through Android (upload button etc) but NOT embedded in Steemit, just a link.

ipfs.io & ipfs.pics BOTH only show links in Steemit, no image.

Uploading image DIRECTLY into Steemit page DOES embed it, however I want to post via API, so direct embed will not work.

Unbelievably have NOT YET found a workable solution. Is there a Steemit setting I'm missing re which image hosting sites are allowed to embed?
I find this behaviour of Steemit extraordinary....