What Is IPFS?

in #technology6 years ago

What Is IPFS

The InterPlanetary File System (IPFS) is something that I am glad I came across over the past few months. It is an open source way to host files and share them around the web in a much faster and less expensive way.

You probably know by now that I am a massive fan of decentralizing all the things and do not think we need a blockchain to do it every time. IPFS is peer-to-peer and has no blockchain because there is no reason for them to have one. All cryptocurrencies are peer-to-peer, but not all peer-to-peer decentralization has to be on a blockchain.

Peer-to-peer is as it sounds. You connect to another user directly. There is no need for a central server to host, upload, download, or serve files. When there is no central server doing all the work, there is no one point of failure. Decentralization also eliminates the issue of centralized servers shutting you down because they don't like what you say or share. This way to network is a huge step in keeping the internet steeped in free speech.

In a peer-to-peer system, a computer will divide a portion of the resources it has and gives them to the network. Thes resources can include hard drive space, bandwidth, or processing power. These allocated resources are still the computer but, as with hard drive space, the predetermined amount is used to store information that can be called by other computers on the network. Doing this allows for more space, speed, or processing power to be used than a single computer on the network could hold alone.

Due to this structure, each of the peers supplies data and consumes data. With the most common model we use online today, the server does all the providing while the users on the web do all the consuming.

To read more about peer-to-peer check out my post titled, Peer-To-Peer: Our Only Hope.

what-is-ipfs.jpeg

Better Than HTTP

When we download a file from the internet, we access a traditional server and request to have the data we need. Then the server sends this file over the internet to us little by little until the entire file is in our possession.

This process takes time and resources at a much higher rate than using a peer-to-peer service like IPFS. When we want to download a copy of a file hosted on the IPFS network we get bits and pieces from many computers, not just one. IPFS lessens the load a great deal on everyone overall and allows for slower bandwidth for the supplying computers.

On the IPFS website they claim:

With video delivery, a P2P approach could save 60% in bandwidth costs.

That's pretty epic! Look at YouTube, a centralized video hosting platform that can't seem to make money due to the high costs of both storing and streaming all that video. If a site could implement technology like IPFS, this problem may not exist. (dLive does use IPFS, and BitChute has a similar model, but I do not know if it is IPFS specifically.)

Historical

The assumed lifespan of a webpage is only one hundred days long on average. That is short if you want to recall information you saved from a year ago. From an internet point of view as soon as a page goes offline it may as well never existed.

You may remember all the old Xanga blogs from the early 2000s, but to the internet, they are just in the human imagination. Which makes this a poor way to store anything long term unless you want to keep paying the hosting costs yourself.

IPFS has historical versioning that preserves the past so we as the users can find the information that may now be missing. Versioning also lets many nodes mirror the content of another node so that we will be able to get what we are looking for even if the original supplier goes offline.

decentralize-with-ipfs.jpeg

Centralized Vs. Decentralized

When we use the centralized model, we are prone to many downsides. One such disadvantage is the control they have over the information that they host. If they do not like what you have uploaded to their server, then they will most likely remove your content.

These centralized servers can also fall victim to governments and bad actors who force companies into share information about the uploader and the content they uploaded. Since these hosting providers are companies, their primary goal is to stay alive to make money and will turn over any information no matter if it is legal or illegal.

When we use a decentralized approach like IPFS, make our content more resilient to deletion. No one entity can delete the files just because they don't agree with what it displays. The more nodes on the network, the harder it will be to take down that content.

How IPFS Works In A Nutshell

  1. Each file receives a cryptographic hash (an identifier) which is the unique identifier for that content.
  2. IPFS then removes any duplicates on the network based on the ID that file received. Since no two files have the same identifier, we can be sure that it is unique. If it does have a match, we can assume that the data is an exact copy with zero alterations.
  3. Each node then stores any and all content it is set up to accept this may or may not include the file that you added to the IPFS network. Your data is "backed up" so to speak on all nodes that will accept your content.
  4. Once the material is finished propagating, we can ask the network for the file of a particular hash. As we download the content, the system pulls bits from many servers hosting a part of that file matching our requested hash.

Install IPFS

If you have a server and you want to spin up an IPFS node I recommend checking out @gray00's recent post on the topic. He did a great job walking us through the process and made it very easy to follow along. He even added some videos at the end to aid in lessening the learning curve. You can read the IPFS installation walk-through here.

Thanks For Reading!

If you have any topics that you would like me to cover please feel free to comment them below and I'll add them all to my list!

All images came from royalty and attribution free sources unless specified.

Looking to take your Steem based creations to the next level?
Join us over at the Creators' Guild Discord group! We are here to encourage, support and increase the creation of quality content.

If you have any questions about the future of Steem
or my witness please feel free to message jrswab#3134 on Discord.

vote-jrswab-for-steem-Witnesses—Steemit.gif

Click here to vote with SteemConnect!
Or go to https://steemit.com/~witnesses
You can see all active witnesses on @drakos' steemian.info


Looking to support my content creation efforts outside of the Steem Blockchain?
Check out jrswab.com/support

smart-steem-gif

Sort:  

Great resource @jrswab, thanks for your research and for sharing!

Well researched post sir.

You deserve to be a witness.

Is there anyway to vote for you?

I have uovoted you with my little steem power and following you
Hoping also tonvote u as a witness.

Yes you can vote for me and thanks for the kind words! You can use the link at the end of my post to vote with steemconnect or use the built in Steemit tool and enter my name in the second to last box at the bottom. If you have any questions please feel free to message me on Discord.

Upvoted and followijg you.

Also voted you as a witness sir.

Keep it up.

I am still a minnow strutgling in steemit.

Your guide would be appreciated!
Thanks

Screenshot_2018-04-06-11-51-10.png

Thanks for this info. I had been wondering about ipfs, but really didn't know where to look... and hadn't taken the time to DuckDuckGo (a better search engine than Google, since it doesn't collect data on you...) it.

  • Am I understanding this correctly?
    It's kind of like bittorrent, in that it spreads the download from many locations. ???
    • Unless you are a content producer, I'm not seeing any incentive to host a ipfs server. What am I missing?
      • Since dtube uses ipfs, isn't there a chance the videos will disappear if no one decides to host them?
  • I've been webmastering aver 20 years, and this sounds good, just may be a bit of a learning curve to figure it out...
    • Thanks in advance for helping me understand @jrswab!

DuckDuckGo (a better search engine than Google, since it doesn't collect data on you...)

I now use searx.me instead of DDG ;)

It's kind of like bittorrent

yes it is similar as far as I am aware.

Unless you are a content producer, I'm not seeing any incentive to host a ipfs server. What am I missing?

No real reason other than wanting to increase decentralization.

Thank for reading!

Ipfs is awesome! I look at the hash like a compressed version of the file. when your ipfs node requests it, it asks peers if they have the full/uncompressed version. a peer would have the actual file if they either 1) pinned/saved it to their node, or 2) have it in their cache because they have viewed the file recently.
So IPFS makes files/data/communication impossible to alter, and extremely difficult to delete (impossible to delete as long as even one ipfs node has the data in their cache). The more popular a file is, the more people have it in their cache, the quicker it is do download/watch for any new person.

Also.. It is being developed so that filecoin (a cryptocurrency) will have value. Filecoin is a currency you would pay to make sure that a file on ipfs is 100% for sure backed up and available and could even pay more to have it hosted on a bunch of nodes so it is widely accessible by multiple people wanting it at once.
Very neat stuff. Will alter the internet/communication/IP rights enforcement significantly I believe.

Filecoin is a currency you would pay to make sure that a file on ipfs is 100% for sure backed up and available

Aw! I heard of this, now I need to look into it more!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 63475.77
ETH 3117.23
USDT 1.00
SBD 3.94