Vesta is a modular deployment platform for blockchains. Blockchain deployments are described as Starlark scripts that define inputs/outputs and tasks to be deployed (as Docker containers). The control plane automatically handles the full lifecycle of the deployments (create, update, destroy) and unifies under a single interface common tasks like exporting observability, tracking sync state or disk storage management.
Unlike other available options (DappNode, Sedge or eth-docker), Vesta is not only a template engine on top of docker/docker-compose, but a complete ad-hoc control-plane fully integrated with the lifecycle of a blockchain node.
Deploy the Vesta control plane and the local runner:
$ go run cmd/main.go server [--volume /data]
You can optionally set a volume directory (--volume) as the location to store persistent data.
Deploy a Geth execution node for goerli:
$ go run cmd/main.go deploy --type Geth --chain goerli
c03b3642-4732-2794-8a53-57cf1972bdde
Deploy a Teku beacon node for goerli connected to the Geth node from the previous step:
$ go run cmd/main.go deploy --type Teku --chain goerli execution_node=c03b3642-4732-2794-8a53-57cf1972bdde
Update a node:
$ go run cmd/main.go deploy --type Geth --chain goerli metrics=false --alloc c03b3642-4732-2794-8a53-57cf1972bdde
Destroy a node:
$ go run cmd/main.go destroy --alloc c03b3642-4732-2794-8a53-57cf1972bdde
The list of all the built-in deployments available can be found here.
In the future, the catalog will be available on a remote repository.
The Vesta telemetry system aggregates the logs emitted by the blockchain nodes and exposes them on a single Prometheus endpoint at localhost:5555.
Then, you can process these logs with Grafana:
cd telemetry
docker-compose up
Open the browner at localhost:3000 and use admin as username and password. There is a pre-configured datasource with all the aggregated Vesta node metrics.
In the future, Vesta will emit these metrics to external log platforms like AWS Cloudtrail or Datadog.