Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Casper Validator — Deployment Plan

Purpose: Plan and operational runbook for running a real Casper Mainnet validator on a dedicated Manifest Network box. Status: Planning / pre-provisioning Last updated: 2026-06-30 Applies to: one dedicated, single-purpose validator box (no other apps co-located)


What this is

Manifest Network is standing up a Casper Layer-1 validator on Mainnet. We will be given a box sized appropriately for the validator, and it will not host any other application.

A Casper node is not a k8s web app. It runs as the casper-node-launcher systemd service managed by the casper OS user. Because of that, this box is an explicit exception to the Manifest k3s app-host standard — a new casper-validator role overlay that still inherits the shared Manifest box baseline (bootstrap, deploy user, SSH two-key model, /data layout, box metadata, console/agent inspection contract) but skips k3s, Traefik, and PostgreSQL.

See decisions/001-dedicated-non-k3s-validator-box.md for the rationale, which is grounded in the existing manifest-box-runtime-decision.md "dedicated box" exception class.


The plan at a glance

Phase Goal Doc
0 Decide sizing, network, key custody this README + ADR 001
1 Provision the box to the Manifest baseline + Casper overlay runbook/01-provision-and-install.md
2 Install Casper, generate keys, sync to tip runbook/01-provision-and-install.md
3 Fund the validator account, submit the bid, enter the validator set runbook/02-sync-and-bond.md
4 Operate: monitor, upgrade protocols, back up, recover from ejection runbook/03-operate-and-maintain.md
R Testnet dry-run (rehearse the whole pipeline on free faucet CSPR first) runbook/04-testnet-dry-run.md

Go-live gate: do not submit the bond until the box passes checklists/go-live.md.


Target facts (decided)

  • Network: Casper Mainnet (chain-name = casper). No testnet dry-run in this plan; extra care on the go-live checklist compensates.
  • Node type: validator / TTL nodesync_handling = ttl (not archival). ~500 GB is sufficient for ≥1 year; disk on /data.
  • Keys: generated on the box via casper-client keygen, backed up offline before funding. The funding wallet (the CSPR that pays the bid) is owned separately by the team — see standards/key-and-funding-management.md.
  • Minimum bid: 10,000 CSPR (chainspec minimum). Real amount TBD by the team; the box only needs enough to cover the bid + gas.

Casper node requirements (from Casper operator docs)

Resource Requirement Notes
OS Ubuntu 22.04 / 24.04 or Debian 13 Manifest baseline is Ubuntu — matches
CPU 4+ cores, must support AVX2 + Intel SHA extensions AMD Zen / Intel Ice Lake or newer. Older CPUs crash. Verify before accepting the box.
RAM 32 GB More helps LMDB read cache
Disk SSD required, ~500 GB (TTL validator) HDD cannot keep sync. 2 TB only if archival.
Ports 35000 (external, required), 8888 / 9999 / 7777 See overlay doc for firewall policy

Source: https://docs.casper.network/operators/setup/install-node and /operators/setup/hardware.


Repository structure

validator_casper/
├── README.md                     # you are here
├── docs/
│   └── critical-risks.md                        # the 3 things most likely to cost us the box/money/slot
├── decisions/
│   └── 001-dedicated-non-k3s-validator-box.md   # ADR: why this box breaks the k3s standard
├── infrastructure/
│   ├── casper-validator-overlay.md              # the role overlay: what the box gets
│   └── casper-validator-agent-adapter.md        # how the box satisfies the console/agent contract
├── runbook/
│   ├── 01-provision-and-install.md              # bare box → synced node
│   ├── 02-sync-and-bond.md                      # funded account → active validator
│   ├── 03-operate-and-maintain.md               # monitoring, upgrades, backups, recovery
│   └── 04-testnet-dry-run.md                    # testnet rehearsal: faucet, wallet→validator, casper-test bid
├── standards/
│   └── key-and-funding-management.md            # validator key custody + funding boundary
├── inventory/
│   └── box-entry.md                             # entry to add to manifest servers.md + box.json
├── checklists/
│   └── go-live.md                               # hard gate before submitting the bond
├── provisioning/                 # self-contained box provisioning + tooling (standalone, not blended into shared deploy scripts)
│   ├── README.md                                # the deploy model on this box
│   ├── bootstrap-casper.sh                      # idempotent phased provisioner (hardening, firewall, Casper, /data)
│   └── install-tooling.sh                       # installs ucn/dcn/now/vhelp (what `dcn` runs)
├── bin/                          # operator tooling installed to /usr/local/bin (ucn/dcn/now/vhelp + aliases/MOTD)
└── .deploy.env                   # wires ucn→git pull, dcn→install-tooling.sh

Provisioning is automated but deliberately standaloneprovisioning/bootstrap-casper.sh does not touch the shared manifest-internal-docs deploy scripts, but gives operators the same ucn/dcn/now muscle memory (plus a vh validator menu). See provisioning/README.md.


Open items to resolve with the team

  1. Box specs confirmation — confirm the provided box meets CPU (AVX2+SHA), 32 GB RAM, SSD, and has a separate data disk for /data.
  2. Funding owner + amount — who sends CSPR to the generated validator account, and how much above the 10,000 CSPR minimum (stake competitiveness — see ADR 001 §Risks).
  3. Delegation rate — the commission % we charge delegators (delegation_rate in the bid).
  4. Monitoring integration — whether the box feeds the future Manifest-console agent contract, an existing Prometheus/Grafana, or both (see agent-adapter doc).
  5. Key backup destination — the offline location for the validator secret key backup.

About

validator node on casper blockchain

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages