Quick Start
Quick Start Guide
This guide will walk you through the process of setting up a minimal development environment using the Euclid Development Environment project, installing the Metagraph Framework, and launching clusters. The process should take less than an hour, including installing dependencies.
Install Dependencies
Install Basic Dependencies
Many developers can skip this step because these dependencies are already installed.
Install argc
cargo install argcInstall Giter
cs install giter8Configure Docker
The Euclid Development Environment starts up to 10 individual docker containers to create a minimal development environment which takes some significant system resources. Configure docker to make at least 8GB of RAM available. If you are using Docker Desktop, this setting can be found under Preferences -> Resources.
Install
Clone
Clone the Euclid Development Environment project to your local machine.
git clone https://github.com/Constellation-Labs/euclid-development-environment
cd euclid-development-environmentSee the Development Environment section for an overview of the directory structure of the project.
Configure
Update the project_name field to the name of your project.
Hydra
Familiarize yourself with the hydra CLI. We can use the hydra CLI tool to build the necessary docker containers and manage our network clusters.
scripts/hydra -h
USAGE: hydra <COMMAND>
COMMANDS:
install Installs a local framework and detaches project
install-template Installs a project from templates
build Build containers
start-genesis Start containers from the genesis snapshot (erasing history) [aliases: start_genesis]
start-rollback Start containers from the last snapshot (maintaining history) [aliases: start_rollback]
stop Stop containers
destroy Destroy containers
purge Destroy containers and images
status Check the status of the containers
remote-deploy Remotely deploy to cloud instances using Ansible [aliases: remote_deploy]
remote-start Remotely start the metagraph on cloud instances using Ansible [aliases: remote_start]
remote-status Check the status of the remote nodes
update Update Euclid
logs Get the logs from containers
install-monitoring-service Download the metagraph-monitoring-service (https://github.com/Constellation-Labs/metagraph-monitoring-service) [aliases: install_monitoring_service]
remote-deploy-monitoring-service Deploy the metagraph-monitoring-service to remote host [aliases: remote_deploy_monitoring_service]
remote-start-monitoring-service Start the metagraph-monitoring-service on remote host [aliases: remote_start_monitoring_service]Install Project
Running the install command will do two things:
Creates currency-l0 and currency-l1 projects from a g8 template and moves them to the
source/projectdirectory.Detach your project from the source repo.
Detaching your project from the source repo removes its remote git configuration and prepares your project to be included in your own version control. Once detached, your project can be updated with hydra.
scripts/hydra install You can import a metagraph template from custom examples by using the following command:
scripts/hydra install-templateBy default, we use the Metagraph Examples repository. You should provide the template name when running this command. To list the templates available to install, type:
scripts/hydra install-template --listBuild
Build your network clusters with hydra. By default, this builds metagraph-ubuntu, metagraph-base-image, and prometheus + grafana monitoring containers. These images will allow deploy the containers with metagraph layers: global-l0, metagraph-l0, currency-l1, and data-l1. The dag-l1 layer is not built by default since it isn't strictly necessary for metagraph development. You can include it on the euclid.json file.
Start the build process. This can take a significant amount of time... be patient.
scripts/hydra buildRun
After your containers are built, go ahead and start them with the start-genesis command. This starts all network components from a fresh genesis snapshot.
scripts/hydra start-genesisOnce the process is complete you should see output like this:
################################################################
######################### METAGRAPH INFO #########################
Metagraph ID: :your_id
Container metagraph-node-1 URLs
Global L0: http://localhost:9000/node/info
Metagraph L0: http://localhost:9200/node/info
Currency L1: http://localhost:9300/node/info
Data L1: http://localhost:9400/node/info
Container metagraph-node-2 URLs
Metagraph L0: http://localhost:9210/node/info
Currency L1: http://localhost:9310/node/info
Data L1: http://localhost:9410/node/info
Container metagraph-node-3 URLs
Metagraph L0: http://localhost:9220/node/info
Currency L1: http://localhost:9320/node/info
Data L1: http://localhost:9420/node/info
Clusters URLs
Global L0: http://localhost:9000/cluster/info
Metagraph L0: http://localhost:9200/cluster/info
Currency L1: http://localhost:9300/cluster/info
Data L1: http://localhost:9400/cluster/info
####################################################################You can also check the status of your containers with the status command.
scripts/hydra statusNext Steps
You now have a minimal development environment installed and running 🎉
Send your first transaction
Set up the FE Developer Dashboard and send your hello world metagraph transaction.
Manual Setup
Prefer to configure your environment by hand? Explore manual setup.
Last updated
Was this helpful?