Block chain has opened up many possible ways of transcending information and giving power to the users rather than the corporations themselves. The concepts in block chain can be used to solve many challenges such as Supply Chain Management, Finance, Smart contracts, Distributed Cloud Storage, In fact a new Internet.

The Internet is the middle of a revolution. It’s pretty much confusing to understand how the internet functions, even when we are in the middle of the internet revolution. According to the Forbes 2019, we are generating 2.5 Quintilian bytes of data every day which is again growing at a rampant pace with the advent of the IOT technologies. Web 1.0 is all about linking content together and bringing it to the internet. The current web version we are in, can be called as web 2.0 where centralized systems are on the rise. Web 2.0 is about linking the programs on top of the content and bringing in the dynamic content up to the platform. In the domain of the centralized control, there are four major applications: Wealth, Data, Identity and Computing. But all of these requires certain extent of trust. We blindly tend to trust our data into the systems. But since Edward Snowden, we know that trust can always be broken and will be broken. So Web 3.0 is replacing the trust of the systems with verifiability. We link content and the programs with each other using verifiability without any intermediaries.

IPFS:

IPFS stands for Inter Planetary File System, is a protocol and a peer to peer network for storing and sharing the data in the distributed file system. The current internet protocols are based on the location based address system where the location of the content is stored and is served. But the content in the location can always be modified. Therefore IPFS leverages the concept of the content based address systems. One of the application which has used the concept of the content based addressing systems is Bit Torrent. In a content based addressing system, the system records the content address. Therefore even you modify the old content, the modified content is regarded as the new content. It leverages the concept of Distributed hash tables and the content is shared across multiple nodes such that there is no central point of failure. And the content can never be taken down once it is published to the IPFS network. Hence it is called as the permanent web.

Installing IPFS:

For installing IPFS, we have to first install GO. For installing this go navigate to https://golang.org/dl/ and download the file based on your OS.

Once you’ve downloaded the package, Install the package and add it to your path.

After installing the package, go to your terminal and hit

$ go version

It should return you the version of the go installed.

Now let’s install IPFS Using go by punching

$ go get -u github.com/ipfs/ipfs-update

Now it should install ipfs in your system.

Now go to your terminal and type in

$ ipfs version

it should return you the version of the ipfs

if you want to update your ipfs version

$ ipfs-update versions

$ ipfs-update install latest

Now create a text file in the directory. For committing it to ipfs use the command

In order to access the file, you utilize the hash value of that is generated. It is pretty intuitive.

Now the file is permanently stored in your local ipfs unless you delete it. Now to see the pinned files use the command

$ ipfs pin ls

Now all of these is happening offline, Let’s go online and see what it looks like. For spinning ipfs online hit

$ ipfs daemon

and your files can be accessed using their hash values in the ipfs terminal

http://localhost:8080/ipfs/[hash-id-of-the-file-you-want-to-access]

you can also access the file using the ipfs using the hash value

https://ipfs.io/ipfs/[hash-id-of-the-file-you-want-to-access]

To know the peers that are connected on to your machine you can use the following command

ipfs swarm peers

while the daemon is running, you can also access the UI for the IPFS on

http://localhost:5001/ipfs/[hash-id]/#/

With this we understand how to add and access files to an IPFS system.