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.