Skip to content

feat: add Caplin (Erigon embedded CL) as a supported consensus launcher#1339

Merged
barnabasbusa merged 10 commits intomainfrom
feat/add-caplin-cl-launcher
Mar 26, 2026
Merged

feat: add Caplin (Erigon embedded CL) as a supported consensus launcher#1339
barnabasbusa merged 10 commits intomainfrom
feat/add-caplin-cl-launcher

Conversation

@barnabasbusa
Copy link
Copy Markdown
Collaborator

Summary

  • Adds caplin as a new supported cl_type for running Erigon's embedded consensus layer client
  • Caplin runs as a standalone binary (caplin) from the same Docker image as Erigon, connecting via Engine API with JWT auth
  • Caplin has no built-in validator client, so vc_type defaults to lighthouse when not specified
  • Beacon API is served on port 5555 (Caplin's default), metrics on port 6060

Usage example

participants:
  - el_type: erigon
    cl_type: caplin
    cl_image: erigontech/erigon:latest
    use_separate_vc: true
    vc_type: lighthouse

Changes

  • src/package_io/constants.star: Added caplin to CL_TYPE
  • src/package_io/input_parser.star: Added default images, VC type defaults to lighthouse for caplin
  • src/cl/caplin/caplin_launcher.star: New launcher following existing patterns (consensoor/lighthouse)
  • src/cl/cl_launcher.star: Registered caplin in the dispatcher

Closes #1337

Test plan

  • Run kurtosis run . --args-file with a config using cl_type: caplin and el_type: erigon
  • Verify beacon API responds on port 5555
  • Verify metrics are served on port 6060
  • Verify separate VC (lighthouse) connects successfully
  • Verify bootnode ENR peering works between caplin and other CL clients

🤖 Generated with Claude Code

barnabasbusa and others added 5 commits March 23, 2026 15:56
Caplin is Erigon's embedded consensus layer client that runs as a
standalone binary connecting to an Erigon EL node via the Engine API.
This adds it as a supported cl_type in ethereum-package.

Closes #1337

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add caplin-basic.yaml test with erigon+caplin and geth+lighthouse
participants. Add caplin to erigon-all.yaml to test alongside other CL
clients.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
mh0lt and others added 4 commits March 23, 2026 19:59
Fix caplin launcher flags based on actual caplin --help output:
- --execution.addr -> --engine.api + --engine.api.host/port
- --execution.jwtSecret -> --engine.api.jwtsecret
- --beacon.api takes endpoint list, not boolean
- --beacon-cfg -> --custom-config
- --genesis-ssz -> --custom-genesis-state
- --checkpoint-sync-url -> --caplin.checkpoint-sync-url
- Add User(uid=0, gid=0) for /data directory permissions
- Use pprof for metrics endpoint

Add caplin participant to mix-with-tools.yaml (per-PR CI),
mix-with-tools-minimal.yaml, and mix.yaml test configs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@barnabasbusa barnabasbusa enabled auto-merge (squash) March 26, 2026 12:18
@barnabasbusa barnabasbusa merged commit 173e3d5 into main Mar 26, 2026
14 checks passed
@barnabasbusa barnabasbusa deleted the feat/add-caplin-cl-launcher branch March 26, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Caplin (Erigon embedded CL) as a supported consensus launcher

3 participants