The repository contains Infractructure as Code (IaC) resources to deploy Gnosis Beacon Chain validators in a decentralized manner.
This repository is designed to provide a simple way to deploy Gnosis Beacon Chain (GBC) validators distributed across multiple instances, regions and clouds.
Running instances in this decentralised fashion proves to provide better fault-tolerance, risk management and might also increase your rewards.
NOTE: You can use this repo to deploy single cloud/region installations as well ;)
The communication between Gnosis Chain (GC) Nodes, GBC Nodes and GBC Validators resources flows through the Internet. Instances has a predefined set of whitelisted IPs.
The list of supported Cloud Providers:
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- Microsoft Azure (Azure)
The list of supported Gnosis Beacon Chain clients:
In order to deploy the GBC Validators you will need to:
- Install prerequisites
- Generate GBC validator's keystores, if you don't have it already
- Deploy the infrastructure using Terraform (instruction)
- Deploy the application on the created infrastructure using Ansible (instruction)
NOTE: In case you want to deploy the GBC Validators on other instances (e.g., bare metal) that are not deployed using Terraform, then you can skip step number 2.
NOTE: Links provide instructions for obtaining the necessary prerequisites.
(open in a new tab for a better visibility)
Service | Component | Network | Services connections |
---|---|---|---|
GC Node | Nethermind | rpc:8545, ws-rpc:8546, peering:30303, ssh:22 | GBC Node |
GBC Node | Lighthouse | rpc:5052, ws-rpa:5052, peering:9000, ssh:22 | GC Node, GBC Validator |
GBC Validator | Lighthouse | ssh:22 | GBC Node |
Service | URL |
---|---|
GC Node | http://gc-node.example.com |
GBC Node | http://gbc-node.example.com |
The entire infrastructure is deployed with Terraform. All applications run in docker containers managed by docker-compose.
The infrastructure components to be deployed depends on the specific cloud provider:
Component | Cloud provider | Services |
---|---|---|
GC Node, GBC Node, GBC Validator | AWS | VPC, EC2, EBS, EIP |
GCP | Compute Network, Compute Address, Compute Disk, Compute Instance | |
Azure | Virtual Network, Public IP, Managed Disk, Virtual Machine | |
DNS records and health checks | AWS | Route53 Hosted zone, Health checks |
NOTE: By default, AWS Route53 is used to create DNS records and health checks, but this can be disabled. Also the Terraform tfstate file is stored in AWS S3 by default, but this behavior can be disabled.
The contents of this repository are licensed under the Apache 2.0 License - see the LICENSE file for details.