Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/GoogleCloudPlatform/eos-block-producer
https://github.com/GoogleCloudPlatform/eos-block-producer
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/GoogleCloudPlatform/eos-block-producer
- Owner: GoogleCloudPlatform
- License: apache-2.0
- Archived: true
- Created: 2021-09-02T01:47:14.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-09-13T23:08:03.000Z (about 3 years ago)
- Last Synced: 2024-01-25T04:52:44.250Z (11 months ago)
- Language: Smarty
- Size: 24.4 KB
- Stars: 9
- Watchers: 8
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-eosio - GoogleCloudPlatform/eos-block-producer - Terraform module to create an EOS Block Producer (BP) node on Google Cloud Platform (GCP). (Developers / Block Producer tools)
README
# EOS Block Producer
This is a Terraform module to create an EOS Block Producer (BP) node on Google Cloud Platform (GCP).The instructions for use assume an understanding of how a BP node works, full documnetation can be found on the EOS.io website https://developers.eos.io/manuals/eos/latest/index placeholder values have been used where possible and will need to be replaced as per the instructions.
## Instructions
1. gcloud SDK installed
2. Terraform 0.13 installed
3. A GCP project (create with the command `gcloud projects create `)
4. Set project as active (use the command `gcloud config set project `)5. Update EOS configuration files. Sample "config.ini" files are given which need to be updated according to the requirements. Agent name, Block producer key etc.
6. A GCS Storage bucket (create with the command `gsutil mb gs://')
- Copy the required files to this bucket with the command `gsutil cp configs/*_config.ini.tpl gs:///config_ini/`
7. Update `example.terraform.tfvars` and rename to `terraform.tfvars` variables are detailed in table below
8. Update `backend.tf` to store terraform state file in a GCS bucket
9. Run `terraform init`
10. Run `terraform plan` and review the output
11. Run `terraform apply`## Terrform Variables
1. Update backend.tf
Replacing bucket = "my-new-bucket" with the bucket name to save terraform state.2. Update terraform.tfvars
|variable| value|
|------|-------|
|org_id|Organization ID|
|project_id|Project ID |
|region|Region where resources will be created. |
|subnetname| name of the subnet to be created|
|network| name of the network to be created|
|subnet| The subnet in CIDR notation for the network|
|disk_type| Disk type, either pd-standard, pd-balanced, or pd-ssd|
|disk_size| Disk size in MB|
## Resources created by the scriptThis terraform script will set-up Block Produer environment. It includes following list of Components.
| Component | Description | Details |
|-----------|-------------|------------|
| sign MIG | Managed instance group for Singing API nodes.| Maximum 2 instances, Auto-heal|
| peer MIG | Managed instance group for peering API nodes. | Maximum 2 instances, Auto-heal |
| web MIG | Managed instance group for Chain API nodes.| Maximum 2 instances, Auto-heal|
| sign instance template | Instance Template for Singing node | n2-Standard-16 |
| web instance template | Instance Template for Web node (Chain API)| n2-Standard-4 |
|peer instance template | Instance Template for Peering node|n2-Standard-8 |
|Service Accounts | 3 service accouts are created for each type of instances. | peer service account, web service account, sign service account |
|TCP LB | TCP Load Balancers for Peer and Chain API Nodes | 2 LB|
|HTTP LB | HTTP Load Balancers for Peer and Chain API Noes | 2 LB |
|VPC and Subnet | Single non-default VPC with 1 subnet is created. | |
|TCP health check| TCP health check on port 8888 and 9876 |''|
|HTTP health check |HTTP health check on port 8888 |''|
|CloudNAT | All instances only have internal IP address. Internet is accessed via CloudNAT|''|