2020-11-25 14:58:44 +00:00
|
|
|
---
|
2022-09-14 13:16:37 +00:00
|
|
|
# Beacon nodes are held on /data so we can't bind it.
|
|
|
|
bootstrap__extra_volume_path: '/docker'
|
|
|
|
bootstrap__extra_volume_bind_path: null
|
|
|
|
|
|
|
|
# SWAP
|
2021-10-05 10:08:14 +00:00
|
|
|
swap_file_size_mb: 2048
|
|
|
|
|
2022-09-14 13:24:15 +00:00
|
|
|
# Go-Ethereum
|
|
|
|
geth_service_name: 'geth-{{ geth_network_name }}'
|
|
|
|
geth_service_path: '/docker/{{ geth_service_name }}'
|
|
|
|
geth_network_name: 'mainnet'
|
|
|
|
geth_cont_name: '{{ geth_service_name }}-node'
|
|
|
|
geth_cont_vol: '{{ geth_service_path }}/node'
|
|
|
|
geth_sync_mode: 'snap'
|
|
|
|
geth_log_level_name: 'info'
|
|
|
|
geth_account_pass: '{{lookup("bitwarden", "nimbus/geth", field="password")}}'
|
|
|
|
geth_authrpc_jwtsecret: '{{lookup("bitwarden", "nimbus/jwt-token")}}'
|
|
|
|
# Memory settings¬
|
|
|
|
geth_cont_mem_ratio: 0.15
|
|
|
|
geth_cache_size: '{{ (ansible_memtotal_mb * 0.05|float) | int }}'
|
|
|
|
# Ports
|
|
|
|
geth_port: 30303
|
|
|
|
geth_rpc_addr: '0.0.0.0'
|
|
|
|
geth_rpc_port: 8545
|
|
|
|
geth_authrpc_addr: '127.0.0.1'
|
|
|
|
geth_authrpc_port: 8551
|
|
|
|
# Geth metrics¬
|
|
|
|
geth_expo_service_name: '{{ geth_service_name }}'
|
|
|
|
geth_expo_source_cont_name: '{{ geth_cont_name }}'
|
|
|
|
geth_expo_source_data_path: '{{ geth_cont_vol }}/data'
|
|
|
|
geth_expo_cont_port: 9400
|
|
|
|
|
2022-09-14 13:16:37 +00:00
|
|
|
# Nimbus Beacon Node
|
2020-11-25 14:58:44 +00:00
|
|
|
beacon_node_network: 'mainnet'
|
2021-10-25 12:30:22 +00:00
|
|
|
# TODO This is to avoid too long service names.
|
|
|
|
beacon_node_repo_branch: '{{ (node.branch == "libp2p") | ternary("nim-libp2p-auto-bump-unstable", node.branch) }}'
|
2021-10-05 15:48:01 +00:00
|
|
|
# TODO Drop this once all nodes have an number.
|
|
|
|
service_number: '{{ node.get("num", False) | ternary(("-%02d"|format(node.get("num", 0))), "") }}'
|
2022-07-13 23:00:29 +00:00
|
|
|
beacon_node_service_name: 'beacon-node-{{ beacon_node_network }}-{{ node.branch | mandatory }}{{ service_number }}'
|
2022-02-28 16:32:01 +00:00
|
|
|
beacon_node_service_path: '/data/{{ beacon_node_service_name }}'
|
2022-08-29 11:08:06 +00:00
|
|
|
beacon_node_era_dir_path: '{{ nimbus_era_files_timer_path }}'
|
2021-10-05 15:48:01 +00:00
|
|
|
# Ports
|
2022-08-10 14:54:21 +00:00
|
|
|
beacon_node_discovery_port: '{{ 9000 + idx }}'
|
|
|
|
beacon_node_listening_port: '{{ 9000 + idx }}'
|
|
|
|
beacon_node_metrics_port: '{{ 9200 + idx }}'
|
2022-08-10 20:34:21 +00:00
|
|
|
beacon_node_rest_port: '{{ beacon_node_rest_port_base + idx }}'
|
|
|
|
beacon_node_rest_port_base: 9300
|
2022-08-13 09:42:41 +00:00
|
|
|
beacon_node_rest_address: '0.0.0.0'
|
2021-10-05 15:48:01 +00:00
|
|
|
# Firewall
|
|
|
|
beacon_node_firewall_libp2p_open: '{{ node.get("open_libp2p_ports", true) }}'
|
|
|
|
# Builds
|
2022-08-10 14:54:21 +00:00
|
|
|
beacon_node_build_frequency: '*-*-* {{ 12 + idx }}:00:00'
|
2021-10-05 15:48:01 +00:00
|
|
|
# Tuning
|
2023-02-24 10:24:53 +00:00
|
|
|
beacon_node_cores_per_node: '{{ (ansible_processor_vcpus / nodes_layout[hostname]|length) | round(0, "ceil") | int }}'
|
|
|
|
beacon_node_threads: '{{ (node.branch == "libp2p") | ternary(1, beacon_node_cores_per_node) }}'
|
2023-02-21 11:55:37 +00:00
|
|
|
beacon_node_history_retention: '{{ "archive" if node.get("public_api") else node.get("history", "prune") }}'
|
2022-01-21 11:27:06 +00:00
|
|
|
# Monitoring
|
2022-06-01 09:47:50 +00:00
|
|
|
beacon_node_validator_monitor_auto: true
|
|
|
|
beacon_node_validator_monitor_totals: '{{ (node.public_api is defined and node.public_api) }}'
|
2021-10-04 10:07:32 +00:00
|
|
|
# Mainnet validators run on a separate fleet.
|
|
|
|
beacon_node_dist_validators_enabled: false
|
2021-03-08 14:09:51 +00:00
|
|
|
# Bootnodes should subscribe to all subnets
|
|
|
|
beacon_node_subscribe_all: true
|
2022-04-17 14:23:19 +00:00
|
|
|
# Light client data
|
|
|
|
beacon_node_light_client_data_enabled: '{{ (node.public_api is defined and node.public_api) }}'
|
|
|
|
beacon_node_light_client_data_serve: true
|
|
|
|
beacon_node_light_client_data_import_mode: 'full'
|
2023-03-15 23:46:17 +00:00
|
|
|
# Execution layer Enginer API
|
|
|
|
beacon_node_exec_layer_jwt_secret: '{{ geth_authrpc_jwtsecret }}'
|
2023-05-05 17:21:49 +00:00
|
|
|
beacon_node_exec_layer_urls_local_geth: ['http://localhost:{{ geth_authrpc_port|string }}']
|
2023-05-05 18:07:00 +00:00
|
|
|
beacon_node_exec_layer_urls_auto: |-
|
2023-04-20 20:28:26 +00:00
|
|
|
{{ (data_center in ["he-eu-hel1", "ih-eu-mda1"])
|
2022-09-15 12:31:04 +00:00
|
|
|
| ternary(
|
2023-05-05 17:21:49 +00:00
|
|
|
beacon_node_exec_layer_urls_local_geth,
|
|
|
|
beacon_node_exec_layer_urls_discovered_geth
|
2022-09-15 12:31:04 +00:00
|
|
|
) }}
|
2023-05-05 18:07:00 +00:00
|
|
|
beacon_node_exec_layer_urls: |-
|
|
|
|
{{ beacon_node_exec_layer_urls_auto if inventory_hostname_short == "linux-01"
|
|
|
|
else (idx % 2 == 0) | ternary(beacon_node_exec_layer_urls_auto, []) }}
|
|
|
|
|
2022-08-10 20:34:21 +00:00
|
|
|
# Periodic resync to save space
|
2022-08-18 07:04:38 +00:00
|
|
|
beacon_node_resync_enabled: true
|
2023-02-21 11:55:37 +00:00
|
|
|
beacon_node_resync_timer_enabled: '{{ (idx % 2 == 1) and not node.get("public_api") }}'
|
2022-08-22 08:51:22 +00:00
|
|
|
beacon_node_resync_timer_frequency: 'monthly'
|
|
|
|
beacon_node_resync_timer_random_delay_sec: 604800 # 7 days
|
2023-03-02 10:30:55 +00:00
|
|
|
beacon_node_resync_timer_trusted_api_url: >-
|
|
|
|
{{ "http://stable-small-01.aws-eu-central-1a.nimbus.mainnet.wg:9300"
|
|
|
|
if idx == 0 else "http://localhost:"+(beacon_node_rest_port_base|string) }}
|
2021-10-05 15:48:01 +00:00
|
|
|
|
2022-07-13 23:00:29 +00:00
|
|
|
# ERA files geneartion.
|
2022-08-08 08:32:48 +00:00
|
|
|
nimbus_era_files_timer_enabled: '{{ (nodes_layout[hostname]|length) > 1 }}'
|
2022-07-20 12:27:17 +00:00
|
|
|
nimbus_era_files_timer_path: '/data/era'
|
2022-10-12 07:30:46 +00:00
|
|
|
nimbus_era_files_network: '{{ beacon_node_network }}'
|
2022-07-13 23:00:29 +00:00
|
|
|
# FIXME: Not pretty, since hardcoded, but the simplest way to do it right now.
|
2022-11-30 09:46:37 +00:00
|
|
|
nimbus_era_files_db_path: '/data/beacon-node-{{ beacon_node_network }}-stable-01/data/db'
|
2023-05-16 10:14:27 +00:00
|
|
|
nimbus_era_files_nclidb_path: '/data/beacon-node-{{ beacon_node_network }}-stable-01/repo/build/ncli_db'
|
2022-07-13 23:00:29 +00:00
|
|
|
|
2022-09-14 13:34:23 +00:00
|
|
|
# Open Ports
|
|
|
|
open_ports_default_comment: 'Nimbus REST API'
|
|
|
|
open_ports_default_chain: 'VPN'
|
|
|
|
open_ports_list:
|
2023-03-18 17:02:58 +00:00
|
|
|
- { port: '9300:9310', ipset: '{{ env }}.{{ stage }}' }
|
|
|
|
- { port: '9400', ipset: 'metrics.hq', comment: 'Geth Exporter' }
|
|
|
|
- { port: '{{ smart_metrics_listen_port }}', ipset: 'metrics.hq', comment: 'SMART Metrics' }
|
2022-09-14 13:34:23 +00:00
|
|
|
|
2021-10-05 15:48:01 +00:00
|
|
|
# Split by hostname for more central location
|
|
|
|
nodes_layout:
|
2023-04-20 20:28:26 +00:00
|
|
|
# AWS --------------------------------------------------------------
|
2021-10-05 15:48:01 +00:00
|
|
|
'stable-small-01.aws-eu-central-1a.nimbus.mainnet':
|
2023-03-02 11:22:51 +00:00
|
|
|
- { branch: 'stable', history: 'archive' }
|
2021-10-05 15:48:01 +00:00
|
|
|
|
|
|
|
'stable-small-02.aws-eu-central-1a.nimbus.mainnet':
|
2023-03-02 11:22:51 +00:00
|
|
|
- { branch: 'stable', history: 'archive' }
|
2021-10-05 15:48:01 +00:00
|
|
|
|
2023-04-18 16:14:32 +00:00
|
|
|
# Innova Hosting ---------------------------------------------------
|
2023-05-05 18:07:00 +00:00
|
|
|
'linux-01.ih-eu-mda1.nimbus.mainnet': # Frankenstein host, all nodes use one Geth.
|
2023-04-18 16:14:32 +00:00
|
|
|
- { branch: 'stable', num: 1 }
|
|
|
|
- { branch: 'stable', num: 2 }
|
|
|
|
- { branch: 'testing', num: 1, open_libp2p_ports: false }
|
|
|
|
- { branch: 'testing', num: 2 }
|
|
|
|
- { branch: 'unstable', num: 1, public_api: true }
|
|
|
|
- { branch: 'unstable', num: 2 }
|
|
|
|
|
|
|
|
'linux-02.ih-eu-mda1.nimbus.mainnet':
|
|
|
|
- { branch: 'stable', num: 1 }
|
|
|
|
- { branch: 'stable', num: 2 }
|
|
|
|
- { branch: 'testing', num: 1, public_api: true }
|
|
|
|
- { branch: 'testing', num: 2 }
|
|
|
|
- { branch: 'unstable', num: 1, open_libp2p_ports: false }
|
|
|
|
- { branch: 'unstable', num: 2 }
|
|
|
|
|
|
|
|
'linux-03.ih-eu-mda1.nimbus.mainnet':
|
|
|
|
- { branch: 'stable', num: 1 }
|
|
|
|
- { branch: 'stable', num: 2 }
|
|
|
|
- { branch: 'testing', num: 1 }
|
|
|
|
- { branch: 'testing', num: 2 }
|
|
|
|
- { branch: 'unstable', num: 1 }
|
|
|
|
- { branch: 'unstable', num: 2 }
|
|
|
|
|
|
|
|
'linux-04.ih-eu-mda1.nimbus.mainnet':
|
|
|
|
- { branch: 'stable', num: 1 }
|
|
|
|
- { branch: 'stable', num: 2 }
|
|
|
|
- { branch: 'testing', num: 1 }
|
|
|
|
- { branch: 'testing', num: 2 }
|
|
|
|
- { branch: 'unstable', num: 1 }
|
|
|
|
- { branch: 'unstable', num: 2 }
|
|
|
|
|
|
|
|
'linux-05.ih-eu-mda1.nimbus.mainnet':
|
|
|
|
- { branch: 'stable', num: 1 }
|
|
|
|
- { branch: 'stable', num: 2 }
|
|
|
|
- { branch: 'testing', num: 1 }
|
|
|
|
- { branch: 'testing', num: 2 }
|
|
|
|
- { branch: 'unstable', num: 1 }
|
|
|
|
- { branch: 'unstable', num: 2 }
|
|
|
|
|
2023-04-28 09:47:00 +00:00
|
|
|
'linux-06.ih-eu-mda1.nimbus.mainnet': # Doesn't exist yet.
|
2023-04-18 16:14:32 +00:00
|
|
|
- { branch: 'stable', num: 1 }
|
|
|
|
- { branch: 'stable', num: 2 }
|
|
|
|
- { branch: 'testing', num: 1 }
|
|
|
|
- { branch: 'testing', num: 2 }
|
|
|
|
- { branch: 'unstable', num: 1 }
|
|
|
|
- { branch: 'unstable', num: 2 }
|
|
|
|
|
2023-04-28 09:47:00 +00:00
|
|
|
'linux-07.ih-eu-mda1.nimbus.mainnet': # Doesn't exist yet.
|
2023-04-18 16:14:32 +00:00
|
|
|
- { branch: 'stable', num: 1 }
|
|
|
|
- { branch: 'libp2p', num: 1 }
|
|
|
|
- { branch: 'libp2p', num: 2 }
|
|
|
|
- { branch: 'libp2p', num: 3 }
|
|
|
|
- { branch: 'libp2p', num: 4 }
|