Skip to main content

Hydra CLI

Hydra CLI is a powerful command line utility designed to manage local development Docker clusters in the Euclid Development Environment. With Hydra CLI, developers can easily create, configure, and manage Constellation Network development clusters for metagraph development.

Hydra CLI is a free and open-source tool that can be easily installed on any operating system that supports bash. Hydra is currently distributed as a part of the Euclid Development Environment project and can be found in the scripts directory.

Install Dependencies

Argc

cargo install argc

Or you can install the argc binaries directly.

Docker

Install Project

Run the install command which accomplishes two things:

  • Creates templated currency starter projects for L0 and L1 Currency apps in the source/ directory.
  • Removes the project's git configuration so that you're free to check your changes into your own repo. Further infrastructure upgrades can be handled through Hydra.
scripts/hydra install

Configure

Create a Github personal access token. This token is necessary for building Tessellation from source.

See Creating a personal access token for details on how to create your token. The token only needs the read:packages permission.

Edit the .env file with your token. You can leave the other variables as default for now.

GITHUB_TOKEN=<your-token>

Build

Build using the Hydra CLI. This will build a minimal development environment for your project using Docker.

scripts/hydra build

Usage

The primary purpose of Hydra is to manage local deployment and configuration of development clusters for developing metagraph projects. Running all the necessary network clusters for development can be quite complex to do from scratch, so Hydra aims to simplify that process.

See Network Architecture for an overview of the role each cluster plays in the Hypergraph.

Hydra uses Docker to launch minimal development clusters for the following supported networks:

  • Global L0
  • Currency L0
  • Currency L1
  • DAG L1

It also includes a pair of monitoring containers supporting:

  • Prometheus
  • Grafana

Building

Build the default clusters (Global L0, Currency L0, Currency L1, Monitoring)

scripts/hydra build

To include the DAG L1 network, use the --include_dag_l1 option. This option is disabled by default because it is not strictly necessary for metagraph development and requires 3 docker containers with their corresponding resource requirements.

scripts/hydra build --include_dag_l1

You can also build clusters individually with the --only option

scripts/hydra build --only global-l0

Destroying

Built containers can be destroyed with the destroy command

scripts/hydra destroy

Starting

Run your built clusters with the start command. This command also has --include_dag_l1 and --only options.

scripts/hydra start

Stopping

Stop running containers with the stop command. This command also has a --only option.

scripts/hydra stop

Check Status

Check the status of all running containers.

scripts/hydra status