Starting with the definition of the Blockchain — it is sometimes referred to as
So we can simply define the Blockchain as a shared, immutable ledger used to record various transactions and track assets to build trust.
Since last year, the dapp industry has seen year-over-year growth of over 765%, but despite this surge and growth, the world is yet to see the emergence of hyper-scale, blockchain-based dapps such as an Amazon-like e-commerce website or a decentralized streaming platform with high computing performance to rival Twitch.
If you would like to learn more about exactly what dapps are, you can do so here:
According toDecrypt, about 70% of Ethereum nodes run on centralized services in 2020. dapps often leverage centralized web hosting and cloud providers for their front-end interfaces rather than operating entirely on-chain. This greatly undermines decentralization and makes dapps dependent on cloud corporations, which is completely contrary to the blockchain’s values.
Given social media platforms and digital marketplaces are storage-heavy applications that add a new state to almost every activity, developers creating dapps demand a more efficient approach for on-chain web3 development. On traditional blockchains, network congestion simply causes the network to slow down, resulting in increased transaction costs (aka gas) and delayed block finality.
With all of these challenges, and many more, limiting the future of dapps to small-scale projects or requiring the use of centralized storages, a peculiar layer-1 blockchain known as the Internet computer has been solving this problem with thousands of large-scale dapps already functionally running on their chain, and we’ll be diving deeper into what it is, its major features that enable it to stand out amongst other blockchains, and how we could build on it.
The
The
A set of these nodes combine to form a subnet blockchain. The Internet Computer is essentially a network of several standalone subnet blockchains, and it can scale its capacity indefinitely by adding new nodes to the network.
The Internet Computer hosts smart contracts called canisters that allow developers to deploy interoperable applications over the open internet by combining the computational capability of node computers maintained by
To further explain how the NNS works it is important to understand the meaning of the Nervous System, so allow me to take you back to college/high school. According to Biology, the nervous system is an exceptionally complex element of an animal that organizes its activities and sensory information by delivering signals to and from many parts of its body.
The nervous system serves as the command center for your body, originating in your brain, which controls your movements, thoughts, and intuitive responses to your surroundings.
The network nervous system (NNS), like the nervous system of the body, is an autonomous tokenized system that governs the Internet Computer blockchain in a totally open, decentralized manner, allowing it to be effectively improved and developed.
You can further read this amazing article by Lara Schmid, a Dfinity Researcher, to discover more about the Network Nervous System.
Each dapp on the Internet Computer has the capacity to store the data it requires within its own
Canister smart contracts on the Internet Computer can receive and respond to HTTP queries, unlike other blockchains where smart contracts cannot deliver interactive web content to consumers.
This is the first time in history when a decentralized infrastructure will self-direct with the aim of competing with proprietary centralized infrastructures run by commercial organizations with leaders and boards.
The Internet Computer employs a reverse-gas architecture whereby smart contracts pay for their own execution, computing, and storage. Application developers charge their smart contracts with cycles, and users do not have to pay any “gas” fees to communicate with these smart contracts.
Users can easily engage with on-chain dapps over the web without the requirement for a token wallet to pay for gas fees. There are simply no gas fees for minting or purchasing NFTs on the Internet Computer, and the NFT and its associated asset are both hosted on-chain, rather than storing the hash on-chain and the asset on a cloud server.
Because there is no risk of centralized servers shutting down unexpectedly, the Internet Computer is the ideal blockchain for developing dapps with large state requirements. The Internet Computer is essentially a network of several standalone subnet blockchains, and it can scale its capacity indefinitely by adding new nodes to the network.
As explained above, the Internet Computer onboards new nodes and subnets via the
Smart contract execution on the Internet Computer is divided into updates and query calls, improving the network’s scalability. Update calls are state-modifying transactions, while query calls are simple read-only requests that are executed in milliseconds.
On the Internet Computer, every honest node in a subnet processes an update call while only one node is needed to process a query call. Each subnet can independently process update and query calls without relying on other subnets. Therefore the Internet Computer scales update calls by adding more subnets and it scales query calls by adding more nodes to a subnet.
A recent performance evaluation demonstrated that the Internet Computer can process
Starting with Wikipedia’s definition of the Internet Identity, it is termed to be a
The Internet Computer’s Internet Identity, like the definition above, allows users to create sessions with Web3 services and dapps, as well as sign conventional blockchain transactions. Users can build identification “anchors” to which suitable cryptographically enabled devices, such as a laptop’s fingerprint sensor, a phone’s facial ID system, or a portable HSM, such as a YubiKey or Ledger wallet, can be assigned.
Then, using any of the devices they’ve assigned to their anchor, they may sign up for and authenticate to any dapp running on the Internet Computer. For example, your Internet Identity can be used to log in to the
This provides a high level of simplicity, allowing users to authenticate to dapps of interest with very little friction while benefiting from the highest level of cryptographic security, but without the need to directly manage or handle cryptographic key material themselves, preventing mistakes and key material theft. The technology anonymizes dapps, and if an anchor is used to engage with a dapp, the dapp sees a specially created pseudonym, preventing users from being tracked across several dapps. A user may construct an unlimited number of identification anchors.
To learn more about the Internet Identity and how it works, you may read more here:
As a developer, it is quite easy to get started with
There are two primary methods or workflow for designing dapps that operate on the Internet Computer blockchain.
Local development: you start a local canister execution environment simulating the Internet Computer blockchain on your computer. Then you write, compile, install, and iteratively update your canisters in the local execution environment. This allows you to test your canisters locally without the need for cycles.
On-chain deployment: Once your dapp is complete, you can deploy it to the Internet Computer blockchain mainnet, making it available to the rest of the world. To run on the Internet Computer blockchain mainnet, your canisters must contain cycles. You can read up on the
With this in mind, let’s go through some practical code samples to get started with building on the Internet Computer. We would start with developing new canisters and dapps for the IC blockchain.
It is important to note that the IC uses the
Install the DFINITY Canister SDK, which is called “dfx sdk,” by running the following command:
sh -ci “$(curl -fsSL https://smartcontracts.org/install.sh)"
To verify that dfx
properly installed, run:
dfx — version
The DFX SDK is necessary for both local development and deployment on the IC.
Make sure you have node.js installed before you begin building locally. After installing node.js
and the DFX SDK, use the following command to create a new dfx project:
dfx new hello
Change your project directory by running:
cd hello
Start the local canister environment by running:
dfx start
Then, you can run the following two commands to deploy your dapp locally:
npm installdfx deploy
Conclusion: Dedicated user communities are already growing around products based on the internet computer, and the
A diverse set of web3 use cases will pave the way toward an innovative, decentralized future as the Internet Computer’s dapp ecosystem evolves and grows.
Originally published here.