Skip to content

Commit

Permalink
Merge pull request #2433 from dfinity/ulan/overview-of-icp
Browse files Browse the repository at this point in the history
Small adjustments to the 'What is IC' page
  • Loading branch information
jessiemongeon1 authored Jan 31, 2024
2 parents 6531c1c + 8346e1d commit 2df979a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
22 changes: 11 additions & 11 deletions docs/concepts/what-is-ic.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import useBaseUrl from "@docusaurus/useBaseUrl";

# What is the Internet Computer?
# Overview of ICP

The Internet Computer Protocol (ICP) bridges the gap between traditional programming and blockchain-based development.
Smart contracts on ICP are expressive and scalable like traditional apps, but benefit from the trustless and decentralized execution of a blockchain.
Expand All @@ -17,6 +17,7 @@ ICP is designed for a practical balance in the tradeoff between scalability and

In the conceptual diagram above, decentralization increases going from centralized servers to Ethereum, but that happens at the expense of scalability.
ICP is located in the middle of this spectrum.
The rest of this page walks through the core concepts and feature of ICP to show why that's the case.

## Subnets

Expand All @@ -25,9 +26,16 @@ ICP shards smart contracts over multiple instances of the blockchain.
Each instance is called a **subnet** and has its own set of decentralized nodes running the consensus algorithm among themselves, building their own chain of blocks, and executing smart contracts.
Each subnet runs in parallel with other subnets.
A smart contract on one subnet can communicate with another smart contract on a different subnet through sending messages.
Users can also send messages to smart contracts.
The following diagram shows the flow of a message on ICP:

A user interacts with a smart contract by sending a digitally signed message.
The following diagram shows the flow of the message on ICP:
<div class="text--center">
<img
src={useBaseUrl("/img/docs/icp-overview.png")}
alt="Flow of a message on ICP"
width="600"
/>
</div>

1. The message goes to one of the boundary nodes (RPC nodes).
1. The boundary node routes the message to the subnet that hosts the target smart contract.
Expand All @@ -38,14 +46,6 @@ The following diagram shows the flow of the message on ICP:
Note that steps 3-5 are asynchronous and decoupled from each other, which may be unusual for developers who are used to Ethereum-style atomic transactions that are executed when they are added to a block.
The motivation for this design is scalability.

<div class="text--center">
<img
src={useBaseUrl("/img/docs/icp-overview.png")}
alt="Flow of a message on ICP"
width="600"
/>
</div>

Subnets can have different sizes, i.e. replication factors, which determines the cost of running smart contracts on that subnet.
It also impacts the time to finality and security.

Expand Down
2 changes: 1 addition & 1 deletion sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const sidebars = {
items: [
{
type: "doc",
label: "What is the Internet Computer?",
label: "Overview of ICP",
id: "concepts/what-is-ic",
},
{
Expand Down

0 comments on commit 2df979a

Please sign in to comment.