Skip to main content

Chromia platform architecture

The Chromia platform is organized into clusters, each consisting of multiple nodes. Nodes are individual computers or servers responsible for processing transactions, validating blocks, and maintaining the blockchain ledger. Providers manage these nodes and contribute computing power to Chromia.

Chromia utilizes an adapted version of the PBFT protocol known as eBFT to achieve consensus within the network. This protocol involves multiple nodes validating transactions and blocks to ensure the network's security and reliability. Below is a short video that highlights the Chromia architecture:

Let’s take a look at the components of the Chromia network:

Chromia architecture

Chromia strategically groups nodes into clusters to divide responsibilities and streamline operations. Each cluster focuses on running specific blockchains. There are two types of clusters:

  • System cluster - An integral part of Chromia that orchestrates the entire ecosystem. The system cluster consists of nodes that run Chromia's core system services.
  • Dapp cluster - Represents an environment where nodes run decentralized applications (dapps). Each dapp in the cluster has its own blockchain and computational resources leased from the network. Each dapp cluster operates its own Cluster Anchoring Chain, which stores hashed block headers, allowing verification of the state of all underlying blockchains.

Blockchain anchoring

Chromia employs an effective mechanism known as blockchain anchoring to secure the system cluster, dapp clusters, and dapps. This mechanism enhances security by allowing a blockchain to store its hashed block headers on another blockchain, creating a strong point of reference that can be used to resolve consensus failures. The process works hierarchically as follows:

  1. Each Cluster Anchoring Chain waits for block headers from the cluster’s dapp blockchains. Once received, it hashes the block headers and creates new blocks.
  2. The System Anchoring Chain follows the same process: it waits for block headers from the cluster anchoring chains, hashes the received block headers, and creates blocks.

In the event of a consensus failure, the System Anchoring Chain can validate the state of all clusters by referring to the hashed block headers. Additionally, the System Anchoring Chain is anchored to Ethereum for further security.

Anchoring hierarchy

Dapp cluster

A dapp cluster serves as an environment where nodes host decentralized applications (dapps). Each dapp receives dedicated vCPU, memory, and storage resources, allowing for high and consistent performance while preventing network congestion.

In terms of network architecture, each dapp operates on its own unique blockchain, incorporating custom business logic and storage solutions. Users must create separate accounts within each dapp to access its functionalities.

Developers can deploy multiple dapps within a dapp cluster and use proprietary protocols to enable communication between them.

Nodes in the cluster validate transactions and route these validated transactions to the appropriate dapp's blockchain. After deployment, each dapp replicates across all nodes in the cluster, ensuring decentralization and resilience.

Directory Chain replica

The Directory Chain replica provides a complete copy of the Directory Chain running within the system cluster. It stores configuration details and Rell code for all dapps, along with hierarchical information about dapp clusters, nodes, dapps, and their blockchains. Each dapp cluster maintains its own Directory Chain replica, which reads data from the original Directory Chain.

Dapp nodes rely heavily on this blockchain replica to determine which dapps should run within the dapp cluster. This separate replica ensures that, even in adverse situations, the dapp nodes can maintain operational continuity.

Cluster Anchoring Chain

A dapp cluster relies on its Cluster Anchoring Chain to maintain data integrity across all dapp blockchains. For every new block created on the dapp blockchains, the corresponding block headers are sent to the Cluster Anchoring Chain, hashed, and used to create blocks that play a crucial role in verifying the state of all underlying blockchains.

Once the Cluster Anchoring Chain creates a new block, it transfers the block header to the System Anchoring Chain, and this process repeats for all other dapp clusters. The System Anchoring Chain then hashes the retrieved block headers and creates new blocks as needed.

System cluster

The system cluster serves as the central hub of the Chromia network. It operates five system chains: the directory chain, the Economy Chain, the System Anchoring Chain, the transaction submitter chain, and the EVM event receiver chain.

Each blockchain has specific responsibilities. They manage network resources, bill for hosting services, ensure network security, send block headers to the Ethereum blockchain for anchoring, and manage CHR account balances for cross-chain Ethereum transfers.

The system cluster also hosts replicas of the cluster anchoring chains, which source and store data from the dapp clusters. For every Cluster Anchoring Chain replica in the system cluster, there is a corresponding unique cluster anchoring chain in the dapp cluster. These replicas help the system cluster verify the network's state and maintain the overall security of the ecosystem.

Dapp Cluster Anchoring Chain replica

Each dapp cluster has a Cluster Anchoring Chain that sources block headers from all dapp blockchains within the cluster. This process creates blocks and ensures the security of all dapps. In this context, the Cluster Anchoring Chain replica is a copy of the Cluster Anchoring Chain hosted in the system cluster. It acts as the source of block headers for the System Anchoring Chain, which uses these headers to verify the state of the entire ecosystem and include them in newly created blocks for anchoring purposes.

System Anchoring Chain

The System Anchoring Chain serves as a central repository for all validated data collected across all dapp clusters. Its primary role is to ensure the security and integrity of all data on the network by collecting block headers from all cluster anchoring chains and using them to create blocks.

Cluster Anchoring Chain

The Cluster Anchoring Chain sources block headers from all blockchains running in the system cluster and generates blocks. The System Anchoring Chain then queries these block headers to produce a new set of anchoring blocks. This anchoring process is essential for maintaining the network's tamper-proof nature.

Transaction Submitter Chain

The Transaction Submitter Chain operates as an independent blockchain within the system cluster. It reads block headers from the System Anchoring Chain to produce its own blocks, securing the entire Chromia ecosystem by anchoring the network's state to the Ethereum blockchain. Periodically, the Transaction Submitter Chain submits transactions to the Ethereum blockchain for anchoring.

Economy Chain

The Economy Chain manages hosting prices, provider rewards, and payments for decentralized applications (dapps) through lease agreements, while also incentivizing node providers. When developers lease computational resources from the network, the Economy Chain communicates this information to the Directory Chain using the Interchain Messaging Facility (ICMF) protocol. This process allocates the necessary resources within a dapp cluster for deployment.

EVM Event Receiver Chain

The Economy Chain retrieves data from the EVM Event Receiver Chain via the ICMF protocol. When a user deposits CHR tokens into the Ethereum CHR contract, the EVM Event Receiver Chain reads the updated state of the smart contract and informs the Economy Chain of the new deposit. Once the Economy Chain receives confirmation of the deposit, it allocates the corresponding number of CHR tokens to the specific account on the Chromia network.

Directory Chain

The Directory Chain stores hierarchical information about dapp clusters, nodes, dapps, and their respective blockchains, along with configurations for dapps and blockchains. It creates data records that link each node to its corresponding cluster and each dapp to the relevant nodes.

The Directory Chain preserves the code and configurations of dapps, allowing for quick restoration in case of issues affecting a cluster or dapp. It also facilitates state validation by providing transaction history and records of deployed code at any specific block height.

The Directory Chain communicates with the Economy Chain through the ICMF protocol to allocate the required resources that developers lease for their dapp deployment.

Scalability of the network

Chromia's unique architecture allows the network to scale horizontally. As demand increases, Providers (Chromia's validators) add more nodes and dapp clusters, enabling more dapps to deploy and operate. Each dapp receives dedicated computing, memory, and storage resources, ensuring that a traffic spike on one dapp does not cause congestion or performance degradation for others on the network. Additionally, dapps can scale by leasing more resources or even sharding into multiple blockchains that communicate with each other.

Cross-chain communication

Blockchains within the Chromia network share events and data using Chromia's Interchain Messaging Facility (ICMF) and Interchain Confirmation Facility (ICCF) protocols. This communication occurs both within clusters and across different clusters. Some dapp clusters also access Chromia's extensive EVM interoperability framework, allowing them to bridge tokens, events, and other forms of data to and from Ethereum and other EVM-compatible chains.

Next up

Next, we will explore how the various chains within Chromia work together to maintain the network's security and efficiency. We will cover the roles of each chain, including the Cluster Chain, System Anchoring Chain, Directory Chain, Economy Chain, and Token Chain, and examine how they manage data, assets, and tokens within the Chromia ecosystem.