Skip to content

Commit 00b9246

Browse files
OisinKyneKaloyanTanevDiogoSantoss
authored
Introduce multi-client options (#149)
* Draft of profiles work * Using multiple files to avoid name conflicts * Fix path * Specify client types in separate env vars * Bring back validator-ejector * charon v1.5.0 * Refactor .envs * Support existing config * Bring back validator ejector * Add stack-specific prefixes in .envs * Backwards compatibility for volumes * Bump compose-vc lodestar version * .env comments rephrasing * Add commit-boost * Add Nimbus VC * Remove prefix dot in toml examples * Formatting * Bring back LIGHTHOUSE_CHECKPOINT_SYNC_URL * Bring back validator-ejector * increase grandine max-empty-slots * Refactor .env clients * Add prysm and teku VCs * Remove deprecated version field in docker composes --------- Co-authored-by: Kaloyan Tanev <kalo@obol.tech> Co-authored-by: Diogo Santos <diogo@obol.tech>
1 parent d849dd7 commit 00b9246

18 files changed

Lines changed: 910 additions & 278 deletions

.env.sample.holesky

Lines changed: 121 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,108 @@
44
# Overrides network for all the relevant services.
55
NETWORK=holesky
66

7-
# Enables builder api for lodestar VC and charon services.
7+
# Execution layer client to be used in a DV setup. Uncomment only the desired client.
8+
EL=el-nethermind
9+
10+
# Consensus layer client to be used in a DV setup. Uncomment only the desired client.
11+
CL=cl-lighthouse
12+
#CL=cl-grandine
13+
14+
# Validator client to be used in a DV setup. Uncomment only the desired client.
15+
VC=vc-lodestar
16+
#VC=vc-nimbus
17+
#VC=vc-prysm
18+
#VC=vc-teku
19+
20+
# MEV client to be used in a DV setup. Uncomment only the desired client.
21+
MEV=mev-mevboost
22+
#MEV=mev-commitboost
23+
24+
# Do not edit. These profiles and files dictate Docker which client types and from where to start for execution, consensus, validator and MEV.
25+
# The actual adjustable values are specified above
26+
COMPOSE_PROFILES=${EL},${CL},${VC},${MEV}
27+
COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker-compose.yml
28+
29+
# Enables Builder API.
830
#BUILDER_API_ENABLED=
9-
#BUILDER_API_RELAY_URL=http://mev-boost:18550
10-
#BUILDER_SELECTION=
1131

12-
######### Nethermind Config #########
32+
######### Execution Layer Config #########
33+
34+
# EL host exposed IPs and ports.
35+
#EL_PORT_P2P=
36+
#EL_IP_HTTP=
37+
#EL_PORT_HTTP=
38+
#EL_IP_ENGINE=
39+
#EL_PORT_ENGINE=
1340

14-
# Nethermind docker container image version, e.g. `latest` or `1.25.3`.
41+
# Nethermind docker container image version.
1542
# See available tags https://hub.docker.com/r/nethermind/nethermind/tags
1643
#NETHERMIND_VERSION=
1744

18-
# Nethermind host exposed ip and ports
19-
#NETHERMIND_PORT_P2P=
20-
#NETHERMIND_IP_HTTP=
21-
#NETHERMIND_PORT_HTTP=
22-
#NETHERMIND_IP_ENGINE=
23-
#NETHERMIND_PORT_ENGINE=
24-
25-
######### Lighthouse Config #########
26-
27-
# Lighthouse beacon node docker container image version, e.g. `latest` or `v4.6.0`.
28-
# See available tags https://hub.docker.com/r/sigp/lighthouse/tags.
29-
#LIGHTHOUSE_VERSION=
45+
######### Consensus Layer Config #########
3046

31-
# Lighthouse beacon node host exposed ports
32-
#LIGHTHOUSE_PORT_P2P=
47+
# CL beacon node host exposed ports.
48+
#CL_PORT_P2P=
3349

34-
# Checkpoint sync url used by lighthouse to fast sync.
50+
# Lighthouse becon node checkpoint sync URL used by consensus layer to fast sync.
3551
LIGHTHOUSE_CHECKPOINT_SYNC_URL=https://checkpoint-sync.holesky.ethpandaops.io/
3652

37-
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
38-
# layer rewards vault as the suggested fee recipient reduces this risk
53+
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
54+
# layer rewards vault as the suggested fee recipient reduces this risk.
3955
LIDO_EXECUTION_LAYER_REWARDS_ADDRESS=0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8
4056

41-
######### Lodestar Config #########
57+
# Lighthouse beacon node docker container image version.
58+
# See available tags https://hub.docker.com/r/sigp/lighthouse/tags.
59+
#CL_LIGHTHOUSE_VERSION=
60+
61+
# Grandine beacon node docker container image version.
62+
# See available tags https://hub.docker.com/r/sifrai/grandine/tags.
63+
#CL_GRANDINE_VERSION=
64+
65+
######### Validator Client Config #########
4266

43-
# Lodestar validator client docker container image version, e.g. `latest` or `v1.19.0`.
67+
# Override prometheus metrics port for validator client.
68+
#VC_PORT_METRICS=
69+
70+
# Lodestar validator client docker container image version.
4471
# See available tags https://hub.docker.com/r/chainsafe/lodestar/tags
45-
#LODESTAR_VERSION=
72+
#VC_LODESTAR_VERSION=
73+
74+
#VC_LODESTAR_BUILDER_SELECTION=
4675

47-
# Override prometheus metrics port for lodestar validator client.
48-
#LODESTAR_PORT_METRICS=
76+
# Nimbus validator client docker container image version.
77+
# See available tags https://hub.docker.com/r/statusim/nimbus-validator-client/tags
78+
#VC_NIMBUS_VERSION=
4979

50-
######### Teku Config #########
80+
# Prysm validator client docker container image version.
81+
# See available tags https://hub.docker.com/r/offchainlabs/prysm-validator/tags
82+
#VC_PRYSM_VERSION=
5183

52-
# Teku validator client docker container image version, e.g. `latest` or `24.1.1`.
84+
# Teku validator client docker container image version.
5385
# See available tags https://hub.docker.com/r/consensys/teku/tags
54-
#TEKU_VERSION=
86+
#VC_TEKU_VERSION=
87+
88+
######### MEV Config #########
89+
90+
# MEV timeouts.
91+
# N.B.: Commit-boost uses TOML configuration instead of env variables. Configure those at commit-boost/.
92+
#MEV_TIMEOUT_GETHEADER=
93+
#MEV_TIMEOUT_GETPAYLOAD=
94+
#MEV_TIMEOUT_REGVAL=
95+
96+
# Comma separated list of MEV relays. You can choose public relays from https://enchanted-direction-844.notion.site/6d369eb33f664487800b0dedfe32171e?v=d255247c822c409f99c498aeb6a4e51d.
97+
# N.B.: Commit-boost uses TOML configuration instead of env variables. Configure those at commit-boost/.
98+
MEV_RELAYS=https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@boost-relay-holesky.flashbots.net,https://0xaa58208899c6105603b74396734a6263cc7d947f444f396a90f7b7d3e65d102aec7e5e5291b27e08d02c50a050825c2f@holesky.titanrelay.xyz,https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money,https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7c0406754376c2c8285a36c630346aa5c5f833@holesky.aestus.live
99+
100+
# MEV-Boost docker container image version.
101+
#MEV_MEVBOOST_VERSION=
102+
103+
# Commit-Boost docker container image version.
104+
#MEV_COMMITBOOST_VERSION=
55105

56106
######### Charon Config #########
57107

58-
# Charon docker container image version, e.g. `latest` or `v1.0.0`.
108+
# Charon docker container image version.
59109
# See available tags https://hub.docker.com/r/obolnetwork/charon/tags.
60110
#CHARON_VERSION=
61111

@@ -72,10 +122,10 @@ CHARON_P2P_RELAYS=https://0.relay.obol.tech,https://1.relay.obol.tech/,https://c
72122
# Use fallback beacon nodes sparingly, particularly if latency is high, which can impact DV cluster performance.
73123
#CHARON_FALLBACK_BEACON_NODE_ENDPOINTS=
74124

75-
# Increase the duration charon will wait for requests to the beacon node
125+
# Increase the duration charon will wait for requests to the beacon node.
76126
#CHARON_BEACON_NODE_TIMEOUT=
77127

78-
# Increase the duration charon will wait while publishing data to the beacon node
128+
# Increase the duration charon will wait while publishing data to the beacon node.
79129
#CHARON_BEACON_NODE_SUBMIT_TIMEOUT=
80130

81131
# The address of the execution engine JSON-RPC API.
@@ -93,67 +143,53 @@ CHARON_P2P_RELAYS=https://0.relay.obol.tech,https://1.relay.obol.tech/,https://c
93143
# Loki log aggregation server addresses. Disable loki log aggregation by setting an empty address.
94144
#CHARON_LOKI_ADDRESSES=
95145

96-
# Charon Cluster Name. Mandatory to send logs with Promtail
146+
# Charon Cluster Name. Mandatory to send logs with Promtail.
97147
#CLUSTER_NAME=
98148

99-
# Charon Cluster Peer. Mandatory to send logs with Promtail
149+
# Charon Cluster Peer. Mandatory to send logs with Promtail.
100150
#CLUSTER_PEER=
101151

102-
# Nickname to identify this charon node on monitoring (max 32 characters)
152+
# Nickname to identify this charon node on monitoring (max 32 characters).
103153
#CHARON_NICKNAME=
104154

105155
# Docker network of running charon node. See `docker network ls`.
106156
#CHARON_DOCKER_NETWORK=
107157

108-
# Charon host exposed ports
158+
# Charon host exposed ports.
109159
#CHARON_PORT_P2P_TCP=
110160

111-
######### MEV-Boost Config #########
112-
113-
# MEV-Boost docker container image version, e.g. `latest` or `1.6`.
114-
#MEVBOOST_VERSION=
115-
#MEVBOOST_TIMEOUT_GETHEADER=
116-
#MEVBOOST_TIMEOUT_GETPAYLOAD=
117-
#MEVBOOST_TIMEOUT_REGVAL=
161+
######### Lido validator-ejector Config #########
118162

119-
# MEV-Boost docker container image name, e.g. flashbots/mev-boost.
120-
#MEVBOOST_IMAGE=
121-
122-
# Comma separated list of MEV-Boost relays. You can choose public relays from https://enchanted-direction-844.notion.site/6d369eb33f664487800b0dedfe32171e?v=d255247c822c409f99c498aeb6a4e51d.
123-
MEVBOOST_RELAYS=https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@boost-relay-holesky.flashbots.net,https://0xaa58208899c6105603b74396734a6263cc7d947f444f396a90f7b7d3e65d102aec7e5e5291b27e08d02c50a050825c2f@holesky.titanrelay.xyz,https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money,https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7c0406754376c2c8285a36c630346aa5c5f833@holesky.aestus.live
124-
125-
##### validator-ejector Config #####
126-
127-
# validator-ejector container image version, e.g. `stable` or `1.2.0`
163+
# validator-ejector container image version`
128164
#VALIDATOR_EJECTOR_VERSION=
129165

130166
# Disable oracle transaction verification, don't toggle unless explicitly told to do so.
131167
#DISABLE_EJECTOR_SECURITY=
132168

133-
# Lido locator address
169+
# Lido locator address.
134170
VE_LOCATOR_ADDRESS=0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8
135171

136-
# validator-ejector oracles
172+
# validator-ejector oracles list.
137173
VE_ORACLE_ADDRESSES_ALLOWLIST=["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399","0xD892c09b556b547c80B7d8c8cB8d75bf541B2284","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x31fa51343297FFce0CC1E67a50B2D3428057D1b1","0x81E411f1BFDa43493D7994F82fb61A415F6b8Fd4","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0xF0F23944EfC5A63c53632C571E7377b85d5E6B6f","0xb29dD2f6672C0DFF2d2f173087739A42877A5172","0x3799bDA7B884D33F79CEC926af21160dc47fbe05"]
138174

139-
# Lido staking module ID
175+
# Lido staking module ID.
140176
#VE_STAKING_MODULE_ID=
141177

142-
# Lido operator ID
178+
# Lido operator ID.
143179
#VE_OPERATOR_ID=
144180

145-
# Beacon node URL
181+
# Beacon node URL.
146182
#VE_BEACON_NODE_URL=
147183

148-
# Execution node URL
184+
# Execution node URL.
149185
#VE_EXECUTION_NODE_URL=
150186

151-
######## lido-dv-exit config ########
187+
######### Lido lido-dv-exit Config #########
152188

153-
# lido-dv-exit container image version, e.g. `stable`
189+
# lido-dv-exit container image version.
154190
#LIDO_DV_EXIT_VERSION=
155191

156-
# lido-dv-exit beacon node endpoint
192+
# lido-dv-exit beacon node endpoint.
157193
#LIDO_DV_EXIT_BEACON_NODE_URL=
158194

159195
# Override the lido-dv-exit logging level; debug, info, warning, error.
@@ -164,57 +200,54 @@ VE_ORACLE_ADDRESSES_ALLOWLIST=["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399","0xD
164200
# Defaults to 5.
165201
#LIDO_DV_EXIT_VALIDATOR_QUERY_CHUNK_SIZE=
166202

167-
# lido-dv-exit exit epoch
203+
# lido-dv-exit exit epoch.
168204
LIDODVEXIT_EXIT_EPOCH=256
169205

170206
######### Monitoring Config #########
171207

172-
# Grafana docker container image version, e.g. `latest` or `10.3.1`.
208+
# Grafana docker container image version.
173209
# See available tags https://github.com/grafana/grafana/releases.
174210
#GRAFANA_VERSION=
175211

176-
# Grafana host exposed ip and port
212+
# Grafana host exposed IP and port.
177213
#MONITORING_IP_GRAFANA=
178214
#MONITORING_PORT_GRAFANA=
179215

180-
# Prometheus docker container image version, e.g. `latest` or `v2.42.0`.
216+
# Prometheus docker container image version.
181217
# See available tags https://github.com/prometheus/prometheus/releases.
182218
#PROMETHEUS_VERSION=
183219

184-
######### Voluntary Exit Config #########
185-
186-
# This applies to compose-voluntary-exit.yml only
187-
188-
# Cluster wide consistent exit epoch. Set to latest for fork version, see `curl $BEACON_NODE/eth/v1/config/fork_schedule`
189-
#EXIT_EPOCH=
220+
# Uncomment these if you have log exporting with Promtail
221+
# and want to disable log export on a particular container.
222+
#EL_NETHERMIND_PROMTAIL_MONITORED=false
223+
#CL_LIGHTHOUSE_PROMTAIL_MONITORED=false
224+
#CL_GRANDINE_PROMTAIL_MONITORED=false
225+
#CHARON_PROMTAIL_MONITORED=false
226+
#VC_LODESTAR_PROMTAIL_MONITORED=false
227+
#VC_NIMBUS_PROMTAIL_MONITORED=false
228+
#VC_PRYSM_PROMTAIL_MONITORED=false
229+
#VC_TEKU_PROMTAIL_MONITORED=false
230+
#MEV_MEV_BOOST_PROMTAIL_MONITORED=false
231+
#MEV_COMMIT_BOOST_PROMTAIL_MONITORED=false
232+
#EJECTOR_PROMTAIL_MONITORED=false
233+
#DV_EXIT_PROMTAIL_MONITORED=false
190234

191235
######### Debug Config #########
192236

193-
# This applies to compose-debug.yml only
237+
# This applies to compose-debug.yml only.
194238

195-
# Prometheus Node exporter docker container image version, e.g. `latest` or `1.5.0`.
239+
# Prometheus Node exporter docker container image version.
196240
# See available tags https://hub.docker.com/r/bitnami/node-exporter/tags.
197241
#NODE_EXPORTER_VERSION=
198242

199-
# Grafana Tempo docker container image version, e.g. `latest` or `2.7.1`.
243+
# Grafana Tempo docker container image version.
200244
# Use Grafana Explore to access Tempo data.
201245
# See available tags https://hub.docker.com/r/grafana/tempo/tags.
202246
#TEMPO_VERSION=
203247

204-
# Grafana Loki docker container image version, e.g. `latest` or `2.8.2`.
248+
# Grafana Loki docker container image version.
205249
# See available tags https://hub.docker.com/r/grafana/loki/tags.
206250
#LOKI_VERSION=
207251

208-
# Loki host exposed port
252+
# Loki host exposed port.
209253
#MONITORING_PORT_LOKI=
210-
211-
# Uncomment these if you have log exporting with Promtail
212-
# and want to disable log export on a particular container.
213-
214-
# NETHERMIND_PROMTAIL_MONITORED=false
215-
# LIGHTHOUSE_PROMTAIL_MONITORED=false
216-
# CHARON_PROMTAIL_MONITORED=false
217-
# LODESTAR_PROMTAIL_MONITORED=false
218-
# MEV_BOOST_PROMTAIL_MONITORED=false
219-
# EJECTOR_PROMTAIL_MONITORED=false
220-
# DV_EXIT_PROMTAIL_MONITORED=false

0 commit comments

Comments
 (0)