Caplin

The embedded Consensus Layer

Caplin is a full-fledged consensus validation client like Prysm, Lighthouse, Teku, Nimbus, and Lodestar. Its goal is to:

  • Provide better stability

  • Validate the chain

  • Stay in sync

  • Keep the execution of blocks at the top of the chain

  • Serve the Beacon API with a fast and compact data model, while keeping CPU and memory usage low.

The main reason for developing a new consensus layer is to experiment with the possible benefits it might bring. For example, the Engine API does not work well with Erigon. The Engine API sends data one block at a time, while Erigon is designed to handle many blocks at once and needs to sort and process data efficiently. Therefore, it would be better for Erigon to handle the blocks independently instead of relying on the Engine API.

Info: more info about Caplin, the Erigon CL, can be found here and here.

Caplin Usage

Caplin can be enabled with the --internalcl flag, at which point an external consensus layer is no longer needed.

./build/bin/erigon --internalcl

Caplin also has an archive mode for historical states and blocks, which can be enabled with the --caplin.archive flag. To enable Caplin's beacon API, the flag --beacon.api= must be added. For instance, the following flag will enable endpoints:

--beacon.api=beacon,builder,config,debug,node,validator,lighthouse

Caplin is not staking ready, so aggregation endpoints still need to be implemented. Additionally, enabling the Beacon API will result in an additional 6GB of RAM usage.

Additionally enabling the Beacon API will lead to a 6 GB higher RAM usage.

Last updated