# Cumulus

"Cumulus clouds are shaped sort of like dots; together they form a system that is intricate, beautiful and functional."

Cumulus is an extension to Substrate that makes it easy to make any Substrate built runtime into a Polkadot-compatible parachain. See the Overview for a more technical but still high-level description of Cumulus.

## Components#

### Cumulus Consensus#

Cumulus Consensus is a consensus engine for Substrate that follows a Polkadot Relay Chain (i.e., parachains). This will run a Polkadot node internally, and dictate to the client and synchronization algorithms which chain to follow, finalize, and treat as correct.

### Cumulus Runtime#

A wrapper around Substrate runtimes to allow them to be validated by Polkadot validators and provide witness generating routines. It adds a validate_block API to the Substrate external interface, which will be called by validators.

Integrating it into your substrate runtime will be as easy as importing the crate and adding this one line macro to your code.

runtime::register_validate_block!(Block, BlockExecutor);

### Cumulus Collator#

A Polkadot collator for a parachain is implemented in the Cumulus repository here.

## Rococo#

The Rococo testnet (available via Polkadot-JS) is the testnet set aside specifically for parachains.