Skip to content

feat: checkpoint verification#124

Merged
matthias-wright merged 8 commits intomainfrom
m/checkpoint-verification
Feb 13, 2026
Merged

feat: checkpoint verification#124
matthias-wright merged 8 commits intomainfrom
m/checkpoint-verification

Conversation

@matthias-wright
Copy link
Collaborator

This adds checkpoint verification.
Starting from the genesis, we verify that every validator set attests to the validator set of the next epoch. We also verify that the last validator set attests to the checkpoint hash of the loaded checkpoint.

Currently the --checkpoint-path CLI arg can be either a path to a checkpoint or a path to a checkpoint directory.
This format is kept, and the checkpoint directory is extended to house the finalized headers that contain the aggregated validator signatures:

checkpoint_dir/
├── checkpoint              # Required: SSZ-encoded Checkpoint
├── last_block              # Optional: SSZ-encoded last Block
├── finalized_header        # Optional: SSZ-encoded FinalizedHeader for the checkpoint epoch
└── finalized_headers/      # Optional: directory of epoch-indexed headers for verification
    ├── 0                   # SSZ-encoded FinalizedHeader for epoch 0
    ├── 1                   # SSZ-encoded FinalizedHeader for epoch 1
    ├── 2                   # ...
    └── n                   # SSZ-encoded FinalizedHeader for epoch n (the checkpoint epoch)

Changes:

  • Implements checkpoint verification
  • Adds an RPC endpoint for the finalized headers
  • Adds e2e tests for checkpoint verification
  • Updates checkpointing docs

@matthias-wright matthias-wright merged commit 91ccf66 into main Feb 13, 2026
4 checks passed
@matthias-wright matthias-wright deleted the m/checkpoint-verification branch February 13, 2026 14:53
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.

1 participant