Skip to main content

Chromia architecture

Chromia's architecture is built around a hierarchical and modular structure, enabling horizontal scaling and efficient resource allocation. The platform is organized into clusters, each consisting of multiple nodes, which are individual computers or servers responsible for processing transactions, validating blocks, and maintaining the blockchain ledger. The nodes are managed by providers, who contribute computing power to Chromia.

To achieve consensus in the network, Chromia employs an adapted version of the PBFT protocol known as eBFT. This protocol involves multiple nodes validating transactions and blocks, ensuring the network's security and reliability.

Clusters

Let's look at the high-level architecture of Chromia.

Chromia architectureChromia architecture

Chromia strategically groups nodes into clusters to streamline operations and maximize efficiency. Each cluster focuses on running specific blockchains. There are multiple dapp clusters centered around a single system cluster. Here's how they break down:

  • System cluster: Serves as the central hub of the Chromia network. It runs multiple system chains, each responsible for specialized functions such as network management, anchoring blocks, and managing the ecosystem's tokenomics.
  • Dapp clusters: These are dedicated to running individual decentralized applications (dapps) deployed by developers. Each dapp has its own blockchain, along with dedicated vCPU, memory, and storage resources. This innovative approach allows dapps to achieve high and predictable throughput without risking overall network congestion.

When a transaction is sent to a dapp on the network, the nodes in that dapp's cluster build consensus before committing it to the dapp's blockchain. Dapp blockchains are then anchored using a tree structure of anchoring chains to secure the entire network.

Blockchain anchoring

Chromia employs a hierarchical anchoring mechanism to maintain security and scalability. Blocks from dapp chains are anchored to dedicated cluster anchoring chains, which, in turn, are anchored to the system anchoring chain. This central chain serves as a reference point for the entire network, anchoring the state of all clusters and facilitating consensus failure detection and resolution. Although Chromia has its own consensus mechanisms and functions as a standalone Layer 1 platform, the system anchoring chain is further anchored to Ethereum for additional security.

System chains

Chromia's system chains are system-level dapps that manage and secure the network as a whole. As with any other dapp on Chromia, each system chain has its own blockchain and is implemented in the Rell programming language. Updates to these dapps require a supermajority vote among Chromia's System Providers (validators that form part of Chromia's governance).

Most system chains run in the system cluster, except for cluster anchoring chains, of which there is one in each dapp cluster.

Let's take a closer look at each system chain:

System chainDescription
Directory chainA dapp for managing all blockchains in the network, including itself. It stores all the needed information to run the network, such as a list of providers, nodes, and configurations (code) of all dapps on the Chromia network. This information is crucial for nodes to synchronize and maintain a consistent network state.
Economy chainThe economy chain acts as the financial core of the network, managing hosting prices, provider rewards, and dapp payments through leases. It communicates with the directory chain for resource allocation and leverages a pooled reward system to incentivize node providers. Cost and reward calculations factor in metrics like node availability, occupancy, and set fees.
Cluster anchoring chainEach cluster has its anchoring chain, specifically responsible for anchoring blocks from its associated chains. This process involves serializing and committing the headers of all blockchains within a cluster to the cluster anchoring chain. Subsequently, blocks in each cluster anchoring chain are anchored to the central system anchoring chain in the system cluster.
System anchoring chainThe system anchoring chain is the top-level anchoring point for the entire Chromia network. It serves as a repository for anchoring blocks from all cluster anchoring chains. This comprehensive anchoring mechanism provides a unified view of the network's state, facilitating the detection and resolution of consensus failures. In the event of a consensus failure, blocks anchored in the system anchoring chain take precedence over conflicting versions, ensuring the integrity and reliability of the Chromia network. The system anchoring chain is further anchored to an external blockchain, currently Ethereum, for additional security.

Scalability of the network

Chromia's unique architecture allows the network to scale horizontally. As demand for the network increases, Providers (Chromia's validators) add more nodes and more dapp clusters, thus allowing more dapps to deploy and run. With each dapp receiving its own dedicated compute, memory, and storage resources, a traffic spike on one dapp doesn't cause congestion or performance degradation for the rest of the dapps on the network. Dapps themselves can scale by leasing more resources on the network or even sharding into multiple blockchains that communicate with each other.

Cross-chain communication

Blockchains within the Chromia network can send events and data between them using Chromia's Interchain Messaging Facility (ICMF) and Interchain Confirmation Facility (ICCF) protocols, both within clusters and between different clusters. Some dapp clusters also have access to Chromia's extensive EVM interoperability framework, allowing dapps to bridge tokens, events, and other forms of data to and from Ethereum and other EVM chains. More information on this will follow in subsequent sections of this overview.

Next up

In the next section we'll dive into the anatomy of nodes in the Chromia network, including how they handle transactions, store data and build consensus.