Casper NCTL 2 Docker provides containerized environments for running Casper NCTL (Node Control Tool) versions 1.x and 2.x. This setup supports different branches and configurations for stable, development, and version-specific releases of Casper Node and Client.
This repository contains Docker images and Docker Compose services that simplify the process of running the Casper network's NCTL (Node Control Tool). NCTL is a tool used for managing Casper testnets. The images are configured to work with different branches and versions, including stable, development, and version-specific releases.
-
Stable Version: Uses Casper Node 1.5.8 and Casper Client 2.0.0 for a stable environment.
-
2.0 Version: Uses the 2.0.0-rc9 release candidate for the Casper Node, v3.0.1 for the Client, and v1.0.3 for the Sidecar.
-
Development Version: Tracks the latest development versions of Casper Node, Client, and Sidecar.
You can choose between stable
, dev
, or 2.0
.
If no profile is specified, stable
is used by default.
make build 2.0
make start-log 2.0
make build-start-log 2.0
To replace 2.0
with another version, use stable
or dev
.
Casper NCTL 2 Docker supports three configurations:
- Uses release-1.5.8 for the node and release-2.0.0 for the client.
- BRANCH_NODE=release-1.5.8
- BRANCH_CLIENT=release-2.0.0
- Uses release-2.0.0-rc9 for the node, v3.0.1 for the client, and v1.0.3 for the sidecar.
- BRANCH_NODE=release-2.0.0-rc9
- BRANCH_CLIENT=v3.0.1
- BRANCH_SIDECAR=v1.0.3
- Tracks the latest development versions of node, client, and sidecar.
- BRANCH_NODE=dev
- BRANCH_CLIENT=dev
- BRANCH_SIDECAR=dev
This project provides multiple Docker Compose services:
- Provides the core infrastructure for running a Casper NCTL node.
- Used by
stable
,2.0
, anddev
profiles. - Exposes Ports:
11101-11105, 14101-14105, 18101-18105, 25101-25105, 28101-28105
- Maps Volumes for Persistence:
- Logs
- Faucet
- Users
- Chainspec
- Node Data
- Runs a CORS proxy on port 11100.
- Required for front-end applications making cross-origin requests.
- To enable, use the
cors-anywhere
profile.
make build 2.0
or build without cache:
make build-no-cache 2.0
make start dev
make build-start dev
make start-log dev
make stop dev
This is the base service for running a Casper NCTL instance.
- Image:
casper-nctl-2-docker:latest
- Ports:
- 11101-11105, 14101-14105, 18101-18105, 25101-25105, 28101-28105
- Volumes:
- Logs, faucet, users, chainspec, and node data for persistence
Provides the stable environment for Casper Node and Client.
- Image:
casper-nctl-2-docker-stable:latest
- Build Args:
BRANCH_NODE=release-1.5.8
BRANCH_CLIENT=release-2.0.0
- Profiles:
stable
Provides the 2.0 environment for Casper Node and Client.
- Image:
casper-nctl-2-docker-2.0:latest
- Build Args:
BRANCH_NODE=release-2.0.0-rc9
BRANCH_CLIENT=v3.0.1
BRANCH_SIDECAR=v1.0.3
- Profiles:
2.0
Tracks the latest development versions of the node, client, and sidecar.
- Image:
casper-nctl-2-docker-dev:latest
- Build Args:
BRANCH_NODE=dev
BRANCH_CLIENT=dev
BRANCH_SIDECAR=dev
- Profiles:
dev
Runs a CORS proxy on port 11100.
- Image: Custom build using
cors-anywhere.Dockerfile
- Environment Variables:
PORT=11100
- Ports:
11100:11100
If you want to spin up everything at once (nodes 2.0 + CORS proxy):
docker compose --profile 2.0 up -d
docker compose --profile cors-anywhere up -d