-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathnimbus.prater.yml
143 lines (130 loc) · 7.66 KB
/
nimbus.prater.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
---
# Go-Ethereum
geth_service_name: 'geth-goerli-{{ "%02d"|format(idx|int+1) }}'
geth_service_path: '/docker/{{ geth_service_name }}'
geth_network_name: 'goerli'
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_rpc_enabled: true
geth_rpc_addr: '0.0.0.0'
geth_rpc_port: '{{ 8545 + (idx|int) + 1 }}'
geth_port: '{{ 30303 + (idx|int) + 1 }}'
geth_metrics_port: '{{ 6060 + (idx|int) + 1 }}'
geth_authrpc_port: '{{ 8551 + (idx|int) + 1 }}'
geth_websocket_addr: '0.0.0.0'
geth_websocket_port: '{{ 9546 + (idx|int) + 1 }}'
# 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 + (idx|int) + 1 }}'
# Nimbus Beacon node
beacon_node_service_name: 'beacon-node-{{ beacon_node_network }}-{{ node.branch }}'
beacon_node_network: 'prater'
# TODO This is to avoid too long service names.
beacon_node_repo_branch: >-
{{ node.branch_override is defined | ternary(
node.branch_override,
((node.branch == "libp2p") | ternary("nim-libp2p-auto-bump-unstable", node.branch))
) }}
# Ports
beacon_node_discovery_port: '{{ 9000 + idx }}'
beacon_node_listening_port: '{{ 9000 + idx }}'
beacon_node_metrics_port: '{{ 9200 + idx }}'
beacon_node_rest_port: '{{ 9300 + idx }}'
beacon_node_rest_address: '0.0.0.0'
# Firewall
beacon_node_firewall_libp2p_open: '{{ node.get("open_libp2p_ports", true) }}'
# Tuning
beacon_node_max_peers: 300
beacon_node_threads: '{{ (node.branch == "testing") | ternary(4, 1) }}'
# Monitoring
beacon_node_validator_monitor_auto: true
beacon_node_validator_monitor_totals: >-
{{ (node.public_api is defined and node.public_api)
or (node.end is defined and (node.end - node.start) > 64) }}
# Builds
beacon_node_nim_commit: '{{ node.get("nim_commit", "") }}'
beacon_node_build_nim_flags: '-d:noSignalHandler {{ node.get("nim_flags", "") }}'
beacon_node_build_frequency: '{{ node.get("build_freq", "daily") }}'
beacon_node_build_start_time: '{{ node.get("build_start", omit) }}'
# Validators from nimbus-private repo
beacon_node_dist_validators_enabled: '{{ node.start is defined and node.end is defined }}'
beacon_node_dist_validators_start: '{{ node.start | mandatory }}'
beacon_node_dist_validators_end: '{{ node.end | mandatory }}'
# Suggests it to the Execution Layer client.
beacon_node_suggested_fee_recipient: '{{lookup("bitwarden", "nimbus/wallet/prater", field="address")}}'
# Windows service user
beacon_node_service_user_pass: '{{lookup("bitwarden", "nimbus/windows", field="password")}}'
# MEV Payload Builder
beacon_node_payload_builder_enabled: '{{ node.get("payload_builder", false) }}'
beacon_node_payload_builder_url: 'https://builder-relay-goerli.flashbots.net/'
# 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'
# Web3 Auth RPC
beacon_node_web3_urls: ['http://localhost:{{ geth_authrpc_port }}']
beacon_node_web3_jwt_secret: '{{ geth_authrpc_jwtsecret }}'
# Open Ports
open_ports_default_comment: 'Nimbus REST API'
open_ports_default_chain: 'VPN'
open_ports_list:
- { port: '9300:9310', ipset: '{{ env }}.{{ stage }}' }
# https://github.com/status-im/infra-nim-waku/issues/59
- { port: '9546:9550', ipset: 'wakuv2.test', comment: 'Wakuv2 Websocket' }
# Split by hostname for more central location
nodes_layout:
# WARNING: The nodes hosted on AWS are bootstrap nodes and should not be changed.
'stable-large-01.aws-eu-central-1a.nimbus.prater': # 2000 each
- { branch: 'stable', start: 0, end: 2000 }
'testing-large-01.aws-eu-central-1a.nimbus.prater': # 2000 each
- { branch: 'testing', start: 2000, end: 4000 }
'unstable-large-01.aws-eu-central-1a.nimbus.prater': # 2000 each
- { branch: 'unstable', start: 4000, end: 6000, payload_builder: true }
'macos-01.ms-eu-dublin.nimbus.prater': # 2000 each
- { branch: 'stable', start: 6000, end: 8000, build_start: '13:00:00' }
- { branch: 'testing', start: 8000, end: 10000, build_start: '15:00:00' }
- { branch: 'unstable', start: 12000, end: 14000, build_start: '16:00:00', nim_flags: '-d:json_rpc_websocket_package=websock' }
'windows-01.he-eu-hel1.nimbus.prater': # 2000 each
- { branch: 'stable', start: 14000, end: 16000, build_start: '13:00:00' }
- { branch: 'testing', start: 16000, end: 18000, build_start: '15:00:00' }
- { branch: 'unstable', start: 18000, end: 20000, build_start: '16:00:00', nim_flags: '-d:json_rpc_websocket_package=websock' }
'linux-01.he-eu-hel1.nimbus.prater': # 0 each
- { branch: 'stable', build_freq: '*-*-* 13:00:00' }
- { branch: 'testing', build_freq: '*-*-* 15:00:00', nim_commit: 'version-1-6' }
- { branch: 'unstable', build_freq: '*-*-* 17:00:00', public_api: true }
- { branch: 'libp2p', build_freq: '*-*-* 19:00:00' }
'linux-02.he-eu-hel1.nimbus.prater': # 1 each
- { branch: 'stable', start: 20000, end: 20001, build_freq: '*-*-* 13:00:00' }
- { branch: 'testing', start: 20001, end: 20002, build_freq: '*-*-* 15:00:00', nim_commit: 'version-1-6', public_api: true }
- { branch: 'unstable', start: 20002, end: 20003, build_freq: '*-*-* 17:00:00' }
- { branch: 'libp2p', start: 20003, end: 20004, build_freq: '*-*-* 19:00:00' }
'linux-03.he-eu-hel1.nimbus.prater': # 10 each
- { branch: 'stable', start: 20004, end: 20014, build_freq: '*-*-* 11:00:00' }
- { branch: 'testing', start: 20024, end: 20034, build_freq: '*-*-* 15:00:00', nim_commit: 'version-1-6' }
- { branch: 'unstable', start: 20014, end: 20024, build_freq: '*-*-* 13:00:00', open_libp2p_ports: false }
- { branch: 'libp2p', start: 20034, end: 20044, build_freq: '*-*-* 17:00:00' }
'linux-04.he-eu-hel1.nimbus.prater': # 30 each
- { branch: 'stable', start: 20044, end: 20074, build_freq: '*-*-* 11:00:00' }
- { branch: 'testing', start: 20104, end: 20134, build_freq: '*-*-* 15:00:00', nim_commit: 'version-1-6' }
- { branch: 'unstable', start: 20074, end: 20104, build_freq: '*-*-* 13:00:00', payload_builder: true }
- { branch: 'libp2p', start: 20134, end: 20164, build_freq: '*-*-* 17:00:00', nim_flags: '-d:json_rpc_websocket_package=websock' }
'linux-05.he-eu-hel1.nimbus.prater': # 60 each
- { branch: 'stable', start: 20164, end: 20224, build_freq: '*-*-* 11:00:00' }
- { branch: 'testing', start: 20284, end: 20344, build_freq: '*-*-* 15:00:00', nim_commit: 'version-1-6' }
- { branch: 'unstable', start: 20224, end: 20284, build_freq: '*-*-* 13:00:00', open_libp2p_ports: false }
- { branch: 'libp2p', start: 20344, end: 20404, build_freq: '*-*-* 17:00:00', nim_commit: 'version-1-6', nim_flags: '-d:json_rpc_websocket_package=websock' }
'linux-06.he-eu-hel1.nimbus.prater':
- { branch: 'stable', start: 20404, end: 31303, build_freq: '*-*-* 11:00:00' } # 10899 validators
- { branch: 'testing', start: 31303, end: 39202, build_freq: '*-*-* 15:00:00', open_libp2p_ports: false, nim_commit: 'version-1-6' } # 7899 validators
- { branch: 'unstable', start: 39202, end: 45101, build_freq: '*-*-* 13:00:00' } # 5899 validators
- { branch: 'libp2p', start: 45101, end: 50000, build_freq: '*-*-* 17:00:00' } # 4899 validators