Chromia 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 the nodes and contribute computing power to Chromia.
Chromia employs an adapted version of the PBFT protocol known as eBFT to achieve consensus in the network. This protocol involves multiple nodes validating transactions and blocks, ensuring the network's security and reliability.
Let's look at the high-level architecture of Chromia:
Chromia strategically groups nodes into clusters to divide areas of responsibility and streamline operations. Each cluster focuses on running specific blockchains. There are two cluster types:
- System Cluster - An integral part of Chromia that orchestrates the whole 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). Every dapp in the cluster has its own blockchain and computational resources leased by the network. Each dapp cluster runs its own Cluster Anchoring Chain, which stores hashed block headers. This allows verifying the state of all underlying blockchains that each dapp operates.
Blockchain anchoring
Chromia employs an effective mechanism called Blockchain Anchoring to secure the System Cluster, Dapp Clusters, and dapps. and the dapps. This means a blockchain can increase security by storing its hashed block headers on another blockchain. The other blockchain becomes a strong point of reference, which can be used to resolve a consensus failure. This mechanism works hierarchically. Here is how it functions:
- Each Cluster Anchoring Chain waits for block headers from the cluster’s dapp blockchains. Once received, it hashes the block headers and creates blocks.
- The System Anchoring Chain follows an identical 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. The System Anchoring Chain is further anchored to Ethereum for additional security.
Dapp cluster
A dapp cluster is an environment where nodes host decentralized applications (dapps). Each hosted dapp has dedicated vCPU, memory, and storage resources, allowing for high and predictable performance while avoiding network congestion scenarios.
Each dapp has its own blockchain where the data associated with the dapp’s operations is stored. Nodes in the cluster are responsible for validating transactions and routing these validated transactions to the appropriate dapp’s blockchain.
After the deployment, the dapp gets replicated across all nodes in a cluster.
This approach makes the dapp truly decentralized and resilient.
Cluster Anchoring Chain
A dapp cluster relies on its cluster anchoring chain to manage data integrity across all dapp blockchains. For each new block created on the dapp blockchains, the corresponding block headers are sent to the Cluster Anchoring Chain, hashed, and then used to create blocks that play a major role in the state verification of all underlying blockchains.
Once the Cluster Anchoring Chain creates a new block, its block header gets transferred to the System Anchoring Chain, and the process repeats for all the other dapp clusters. Then, the System Anchoring Chain hashes the retrieved block headers and creates blocks.
System cluster
The System cluster serves as the central hub of the Chromia network. It runs four system chains: the Economy Chain, Directory Chain, System Anchoring Chain, and Archival Chain. Each chain is responsible for specialized functions such as billing for hosting operations, network resource management, network security, and archiving of dapp data.
Economy chain
The Economy Chain manages hosting prices, provider rewards, and dapp payments through leases and incentivizes node providers. When a developer leases computational resources from the network, the Economy Chain sends the corresponding information to the Directory Chain to allocate a specific number of resources in a dapp cluster for dapp deployment.
Directory chain
The directory chain stores hierarchical information about the dapp clusters, nodes, dapps, and dapps’ blockchains, as well as configurations for dapps and blockchains. The directory Chain creates data records, associating each node with the corresponding cluster and each dapp with the corresponding nodes.
The Directory Chain stores the code and configurations of dapps. In the event of an issue affecting a cluster or dapp, its configuration and code can be promptly restored. Additionally, it facilitates state validation by providing transaction history and a history of the deployed code at any given block height.
The Directory Chain communicates with the Economy Chain to allocate the corresponding number of resources that a developer has leased to deploy a dapp in the selected cluster.
System Anchoring Chain
The System Anchoring Chain is a central repository for all validated data collected across all dapp Clusters. Its primary responsibility 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.
Archival chain
If a dapp hasn't paid for hosting services, its data can be temporarily moved and stored in the Archival Chain using minimal resources. If the developer redeployes the dapp later, the archived data gets restored.
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 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.
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.