Sign inSign up

svetekllc/casper-node-launcher

By svetekllc

Updated 3 months ago

Runs and auto-upgrades casper-node across protocol versions, built from official source

Image
Networking
Databases & storage
0

82

svetekllc/casper-node-launcher repository overview

Casper Node Launcher

casper-node-launcher runs and upgrades the casper-node binary for the Casper Network. It watches the installed protocol versions under /etc/casper and /var/lib/casper/bin, always starts the highest installed version, and automatically switches to a new version (running migrate-data/migrate-config as needed) when the network activates a protocol upgrade — without manual intervention on every upgrade.

This image is built directly from the official casper-network/casper-node-launcher source (not repackaged from a third-party binary), on a minimal Debian base.

Supported tags

Directory layout it expects

The launcher does not download or stage anything itself — protocol configs and binaries must already be in place before it starts:

/etc/casper/<protocol_version>/config.toml       # e.g. /etc/casper/2_2_2/config.toml
/etc/casper/validator_keys/secret_key.pem
/etc/casper/validator_keys/public_key.pem
/etc/casper/validator_keys/public_key_hex
/var/lib/casper/bin/<protocol_version>/casper-node   # e.g. /var/lib/casper/bin/2_2_2/casper-node

<protocol_version> uses underscores, not dots (e.g. 2_2_2), matching the folder naming used by casper-node itself. Config/binary archives per protocol version and network are published at https://genesis.casper.network/<network>/<protocol_version>/{config,bin}.tar.gz — download and extract those before starting this container. Node identity keys (validator_keys/) are required even for non-validating/RPC-only nodes — generate them with casper-client keygen <path>.

Quick start

docker run -d \
  --name casper-node \
  -v /opt/casper/configs:/etc/casper \
  -v /opt/casper/data:/var/lib/casper \
  -p 35000:35000 \
  -p 8888:8888 \
  --ulimit nofile=1048576:1048576 \
  --restart unless-stopped \
  svetekllc/casper-node-launcher:v1.0.8

Check it's up and syncing:

curl -s http://127.0.0.1:8888/status | jq '.reactor_state, .last_added_block_info'

If sync_handling = 'ttl' is set in config.toml (fast-sync, not full genesis replay), you must also set trusted_hash under [node] to a recent block hash from a synced peer's /status endpoint — otherwise the node stops with "CatchUp: cannot proceed without trusted hash".

Ports

PortPurposeRequired externally?
35000P2P networkingYes — the only port the docs require to be open
7779Binary port (used by casper-sidecar for JSON-RPC/state queries)No — internal only
8888REST (/status, /metrics)Optional — courtesy for network health visibility
9999SSE event streamNo — internal only

JSON-RPC is not served by this image — since Casper 2.0, that's the job of a separate casper-sidecar container pointed at this node's binary port.

Resource limits

casper-node requests nofile up to 64000 on startup; give the container headroom above that (e.g. --ulimit nofile=1048576:1048576) or it may hit the container's default limit.

Source

Tag summary

Content type

Image

Digest

sha256:ae1769296

Size

36 MB

Last updated

3 months ago

docker pull svetekllc/casper-node-launcher:v1.0.8