codedamn

What is Internet Computer? ICP Explained

  • Kshitij's profile image
    Kshitij
    Author
What is Internet Computer? ICP Explained

The Internet Computer was conceived in 2015 by programmer Dominic Williams, the idea being a world computer that cannot be shut down. And later in 2016 DFINITY was founded by him. The DFINITY Foundation is a not-for-profit organization that develops the Internet Computer.

What Is Internet Computer?

The Internet Computer is creating a decentralized internet — with independent data centers.

Independent Data Centers

The term decentralized internet needed to be understood. Today powerful corporations are controlling the internet. Microsoft Azure, Amazon Webservices, etc. These are some powerful companies that decide what, when, where, and how things will happen on the internet.

Problems with centralized cloud platforms

  1. High Renting Cost
  2. Censorship
  3. Vulnerable to Hacks
  4. Privacy Issues

Dfinity is creating the Internet Computer which helps us to create independent data centers providing an alternative to corporate cloud services.

People from any part of the world can start their own data centers and allow users to host their websites on their data centers. Hence, completely removing the centralization.

The Internet Computer is also the world’s first blockchain that runs at web speed and serves content on the web, with unbounded capacity. The idea is to incentivize open source and transparent software development. 

It attempts to offer a fundamental alternative so that developers can build, host, and serve applications in a more decentralized way  — allowing websites to be deployed directly onto the public internet. 

Introduction to Internet Computer Protocol (ICP)

Protocols are a set of rules. In the web2 world, we have HTTP, TCP/IP, and UDP protocols. In the same way as the Internet Computer, we have Internet Computer Protocol which helps to connect one data center with another.

Some Important Things About The Internet Computer

  1. Motoko, a programming language is specifically designed to interact with the internet computer.
  2. Another awesome thing about the internet computer protocol is that it will be extended to add smart contracts to Bitcoin. Smart contracts on the Internet Computer will be able to hold, send and receive their own Bitcoin.​

If you want to learn more about Blockchain and Smart Contract then do check out our codedamn web3 learning path.

What Are The ICP tokens?

The ICP token is used for governance (holders can vote on the future of the network), to reward network participants for good behavior, and is used to pay fees for making transactions. ​

The users that will be using the data centers need to pay 0.46 dollars/per month.

How Does The Internet Computer Work?

In Internet Computer, we have smart contracts which are called Canisters. These canisters consist of the code and data.

The Internet Computer supported Dapps get compiled to WebAssembly module. And from this WebAssembly module, we get Canisters to deploy on the Blockchain. Internet Computers can run all the canisters concurrently making the Internet Computer Blockchain highly scalable.

Working

And an interesting point to note here is that no middle man is required. Users can directly interact with the Blockchain and query for data.No DNS nothing.

Direct Interaction With Blockchain

Which Programming Language Is Used To Create Dapp?

Because the Internet Computer supports Dapps compiled to standard WebAssembly modules, you can use many different programming languages to create your applications. The two officially supported languages of the Internet Computer are Motoko and Rust.

Deploy a Dapp On Internet Computer

Prerequisites

  1. Linux, macOS 12.* Monterey or later, or Windows with a Windows Subsystem for Linux (WSL) installation.
  2. Node JS installation

Step-1 – In this tutorial, we use a Canister SDK called dfx, which is the default SDK maintained by the DFINITY foundation.

To install dfx, run:

sh -ci "$(curl -fsSL https://smartcontracts.org/install.sh)"
Code language: Bash (bash)

Step-2 – To verify that dfx properly installed, run:

dfx --version
Code language: Bash (bash)

Step -3 – Create a new folder hello, run:

dfx new hello
Code language: Bash (bash)

Step-4 – Changing directory to hello, run:

cd hello
Code language: Bash (bash)

Step-5 – Start the execution environment, run:

dfx start
Code language: Bash (bash)

Step-6 – Open a new terminal without closing the execution environment terminal and after navigating to the hello directory in the new terminal, run:

npm install
Code language: Bash (bash)

Step-7 – Deploy the hello canister to the local execution environment by running, run:

dfx deploy
Code language: Bash (bash)

Step-8 – Start the development server once the installation is complete, run:

npm start
Code language: Bash (bash)

Step-9 – Open a browser and navigate to http://localhost:8080/

You should see a simple HTML page with a sample asset image file, an input field, and a button.

Dapp

Step-10 – Enter your name in the textbox and see the output.

Competitors Of Dfinity

Dfinity is not alone who is creating the decentralized internet. There are other companies as well who are also working on the decentralized internet such as SAFE, IPFS, Solid, etc. Some of these companies are working for years in this domain. The SAFE network is working on the decentralized internet for 15 years.

So yes it’s a time taking process.

Problems With The Decentralized Internet

  1. Public Acceptance: Everyone wants a decentralized internet but no one wants to switch from a centralized to decentralized internet. For example – Let’s say we are able to create a decentralized Facebook in the future. But the question is who is going to participate in that. Will you?
  2. Hardware Cost: Creating a data center is costly as it requires space and hardware. How citizens will be able to buy the costly hardware to start their own data centers. If the hardware cost is not reduced then the big corporations will control the decentralized internet.
  3. Accountability: What will happen if some abusive content is added to the decentralized internet? As there is no central authority to govern it. Then who will remove the content? If let’s say it is done through voting. But we all know voting is a time-consuming process.

Internet Computer is a wonderful technology but there are problems that needed to be resolved so that we can use it.

Conclusion

I hope by now you have understood the internet computer. We learned a lot of different concepts such as what is internet computer, internet computer protocol, how to deploy Dapp on the internet computer, etc.