Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 13 additions & 19 deletions docs-gitbook/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,23 @@
# Introduction

With IPC, dApps can reach planetary scale through recursively scalable subnets, sub-second transactions, robust compute workloads, and highly adaptable WebAssembly runtimes tailored to developer requirements.
Inter-Planetary Consensus (IPC) provides **extensible, customizable** blockchain infrastructure through autonomous sidechains — subnets. Each subnet is a **sovereign** blockchain with its own validators, governance, and data. Subnet state is cryptographically anchored through checkpoints that serve as **objective trust anchors**, securing cross-chain messaging and guarding against long-range attacks. Failures are **contained** within individual security boundaries. The architecture is **recursive**: subnets can themselves be extended with lower-level subnets.

## What is IPC?
## What IPC enables

[Interplanetary Consensus (IPC)](https://www.ipc.space/) is a framework that enables on-demand horizontal scalability of networks, by deploying "subnets" running different consensus algorithms depending on the application's requirements.
- **Scalability** — delegate operations to subnets optimized for performance: faster finality, higher throughput, cheaper block space. Subnets can be launched and terminated programmatically to match demand.

Let's break that down.
- **Customizability** — tailor the consensus mechanism, execution environment, fee model, governance, and data availability strategy to the application's requirements. Subnets can be permissioned or permissionless.

### What is horizontal scalability and why is it important for dApps?
- **Interoperability** — native cross-chain communication through protocol-level bridging. Asset deposits, withdrawals, and general message passing across chains, without external bridges.

[Horizontal scalability](https://en.wikipedia.org/wiki/Scalability#Horizontal\_or\_scale\_out) generally refers to the addition of nodes to a system, to increase its performance. For example, adding more nodes to a compute network helps distribute the effort needed to run a single compute task. This reduces cost per task and decreases latency, while improving overall throughput. 
- **Autonomy** — subnets operate as sovereign blockchains, owning their data and governance. No centralized sequencers, no posting bulk data to parent chains. Partition-tolerant: subnets keep running when temporarily disconnected.

In web3, horizontal scalability refers to _scaling_ blockchains, for _desired_ performance. More specifically, _scaling_ the ability of a blockchain to process transactions and achieve consensus, across an increasing number of users, at _desired_ latencies and throughput. IPC is one such scaling solution, alongside other popular layer 2 solutions, like [sidechains](https://ethereum.org/en/developers/docs/scaling/sidechains/) and [rollups](https://ethereum.org/en/developers/docs/scaling/#rollups). 
- **Objective security** — checkpoint-based objectivity secures against long-range attacks and enables trustless bootstrapping. Risk is contained: failures in one subnet do not propagate to others.

For decentralized applications (dApps), there are several key motivations to adopt scaling - performance, decentralization, security. The challenge is that these factors are known to be conflicting goals. 
## Documentation overview

### How does IPC achieve horizontal scalability? 

IPC is a scaling solution intentionally designed to achieve considerable performance, decentralization and security for dApps.

It achieves scaling through the permission-less spawning of new blockchain sub-systems, which are composed of subnets. 

[Subnets](concepts/subnets/README.md) are organized in a hierarchy, with one parent subnet being able to spawn infinite child subnets. Within a hierarchical subsystem, subnets can seamlessly communicate with each other, reducing the need for cross-chain bridges.

Subnets also have their own specific consensus algorithms, whilst leveraging security features from parent subnets. This allows dApps to use subnets for hosting sets of applications or to [shard](https://en.wikipedia.org/wiki/Shard\_\(database\_architecture\)) a single application, according to its various cost or performance needs. \
\
IPC-powered networks will also be able to dynamically adjust their throughput by spawning and closing temporary subnets as needed.
- [**Protocol**](protocol/README.md) — how the IPC protocol works: core concepts, mechanisms, architecture, workflows, security model.
- [**Getting Started**](quickstarts/deploy-a-subnet.md) — deploy your first subnet.
- [**Guides**](user-guides/performing-transactions-in-a-subnet.md) — transacting in subnets, customizing and upgrading subnets, deploying an explorer.
- [**Specifications**](../specs/addressing.md) — implementation-level specs.
- [**Reference**](reference/networks.md) — networks, CLI usage, glossary, troubleshooting, FAQ.
35 changes: 17 additions & 18 deletions docs-gitbook/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,30 @@
## Overview

- [Introduction](README.md)
- [How IPC works](overview/how-it-works.md)
- [Use cases](overview/use-cases.md)
- [How IPC compares](overview/how-ipc-compares.md)
- [Architecture](overview/architecture.md)
- [How IPC Compares](overview/how-ipc-compares.md)
- [Use Cases](overview/use-cases.md)

## Quickstarts
## Protocol

- [Deploy a subnet](quickstarts/deploy-a-subnet.md)
- [Protocol Overview](protocol/README.md)
- [Requirements & Guarantees](protocol/requirements-and-guarantees.md)
- [Core Mechanisms](protocol/core-mechanisms.md)
- [Architecture](protocol/architecture.md)
- [Workflows](protocol/workflows.md)
- [Security & Economics](protocol/security-and-economics.md)

## Concepts
## Getting Started

- [Subnets](concepts/subnets/README.md)
- [Parent-child interactions](concepts/subnets/parent-child-interactions.md)
- [Circulating supply](concepts/circulating-supply.md)
- [Deploy a Subnet](quickstarts/deploy-a-subnet.md)

## User guides
## Guides

- [Performing transactions in a subnet](user-guides/performing-transactions-in-a-subnet.md)

## Developer Guides

- [Customizing a subnet](developer-guides/pluggable-syscall-tutorial.md)
- [Upgrading a subnet](developer-guides/upgrades/README.md)
- [Performing Transactions in a Subnet](user-guides/performing-transactions-in-a-subnet.md)
- [Customizing a Subnet](developer-guides/pluggable-syscall-tutorial.md)
- [Upgrading a Subnet](developer-guides/upgrades/README.md)
- [Example: Patching actor state](developer-guides/upgrades/patch-state.md)
- [Example: Upgrading Wasm actor](developer-guides/upgrades/upgrade-wasm-actor.md)
- [Deploying an explorer](developer-guides/deploy-blockscout.md)
- [Deploying an Explorer](developer-guides/deploy-blockscout.md)

## Specifications

Expand All @@ -43,5 +41,6 @@

- [Networks](reference/networks.md)
- [IPC CLI](reference/ipc-cli-usage.md)
- [Glossary](reference/glossary.md)
- [Troubleshooting](reference/troubleshooting.md)
- [FAQ](reference/faq.md)
31 changes: 0 additions & 31 deletions docs-gitbook/concepts/circulating-supply.md

This file was deleted.

47 changes: 0 additions & 47 deletions docs-gitbook/concepts/subnets/README.md

This file was deleted.

46 changes: 0 additions & 46 deletions docs-gitbook/concepts/subnets/parent-child-interactions.md

This file was deleted.

Loading
Loading