Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/umbracle/vesta
Control plane to deploy blockchain nodes at scale
https://github.com/umbracle/vesta
blockchain
Last synced: about 1 month ago
JSON representation
Control plane to deploy blockchain nodes at scale
- Host: GitHub
- URL: https://github.com/umbracle/vesta
- Owner: umbracle
- License: mpl-2.0
- Created: 2022-10-25T15:44:15.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-06T11:31:39.000Z (5 months ago)
- Last Synced: 2024-08-06T13:29:09.873Z (5 months ago)
- Topics: blockchain
- Language: Go
- Homepage: https://vestaproject.io
- Size: 628 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Vesta
[![Chat Badge]][chat link]
[chat badge]: https://img.shields.io/badge/chat-discord-%237289da
[chat link]: https://discord.gg/YajpNSvT22Vesta is a modular deployment platform for blockchains. Blockchain deployments are described as [Starlark](https://bazel.build/rules/language) 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](https://github.com/umbracle/vesta#Telemetry), tracking sync state or disk storage management.
Unlike other available options ([DappNode](https://www.dappnode.io/), [Sedge](https://github.com/NethermindEth/sedge) or [eth-docker](https://github.com/eth-educators/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.
## Usage
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
```## Catalog
The list of all the built-in deployments available can be found [here](https://www.vestaproject.io/docs/plugins/overview).
In the future, the `catalog` will be available on a remote repository.
## Telemetry
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.