Skip to content

Commit f4294a2

Browse files
committed
Support existing config
1 parent 024e775 commit f4294a2

File tree

8 files changed

+169
-58
lines changed

8 files changed

+169
-58
lines changed

.env.sample.holesky

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,18 @@ NETWORK=holesky
66

77
# Execution layer client to be used in a DV setup.
88
# Available options are: nethermind.
9-
EL=nethermind
9+
EL=el-nethermind
1010
# Consensus layer client to be used in a DV setup.
1111
# Available options are: lighthouse, grandine.
12-
CL=lighthouse
13-
# Distributed validator client to be used in a DV setup.
14-
# Available options are: charon.
15-
DV=charon
12+
CL=cl-lighthouse
1613
# Validator client to be used in a DV setup.
1714
# Available options are: lodestar.
18-
VC=lodestar
15+
VC=vc-lodestar
1916
# MEV client to be used in a DV setup.
2017
# Available options are: mevboost.
21-
MEV=mevboost
18+
MEV=mev-mevboost
2219
# Do not edit. These profiles and files dictate Docker what client types to start for execution, consensus, validator and mev clients, which are specified above.
23-
COMPOSE_PROFILES=el_${EL},cl_${CL},dv_${DV},vc_${VC},mev_${MEV}
20+
COMPOSE_PROFILES=${EL},${CL},${VC},${MEV}
2421
COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker-compose.yml
2522

2623
# Enables builder api for lodestar VC and charon services.

.env.sample.hoodi

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,18 @@ NETWORK=hoodi
66

77
# Execution layer client to be used in a DV setup.
88
# Available options are: nethermind.
9-
EL=nethermind
9+
EL=el-nethermind
1010
# Consensus layer client to be used in a DV setup.
1111
# Available options are: lighthouse, grandine.
12-
CL=lighthouse
13-
# Distributed validator client to be used in a DV setup.
14-
# Available options are: charon.
15-
DV=charon
12+
CL=cl-lighthouse
1613
# Validator client to be used in a DV setup.
1714
# Available options are: lodestar.
18-
VC=lodestar
15+
VC=vc-lodestar
1916
# MEV client to be used in a DV setup.
2017
# Available options are: mevboost.
21-
MEV=mevboost
18+
MEV=mev-mevboost
2219
# Do not edit. These profiles and files dictate Docker what client types to start for execution, consensus, validator and mev clients, which are specified above.
23-
COMPOSE_PROFILES=el_${EL},cl_${CL},dv_${DV},vc_${VC},mev_${MEV}
20+
COMPOSE_PROFILES=${EL},${CL},${VC},${MEV}
2421
COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker-compose.yml
2522

2623
# Enables builder api for lodestar VC and charon services.

.env.sample.mainnet

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,18 @@ NETWORK=mainnet
66

77
# Execution layer client to be used in a DV setup.
88
# Available options are: nethermind.
9-
EL=nethermind
9+
EL=el-nethermind
1010
# Consensus layer client to be used in a DV setup.
1111
# Available options are: lighthouse, grandine.
12-
CL=lighthouse
13-
# Distributed validator client to be used in a DV setup.
14-
# Available options are: charon.
15-
DV=charon
12+
CL=cl-lighthouse
1613
# Validator client to be used in a DV setup.
1714
# Available options are: lodestar.
18-
VC=lodestar
15+
VC=vc-lodestar
1916
# MEV client to be used in a DV setup.
2017
# Available options are: mevboost.
21-
MEV=mevboost
18+
MEV=mev-mevboost
2219
# Do not edit. These profiles and files dictate Docker what client types to start for execution, consensus, validator and mev clients, which are specified above.
23-
COMPOSE_PROFILES=el_${EL},cl_${CL},dv_${DV},vc_${VC},mev_${MEV}
20+
COMPOSE_PROFILES=${EL},${CL},${VC},${MEV}
2421
COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker-compose.yml
2522

2623
# Enables builder api for lodestar VC and charon services.

compose-cl.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ services:
1111
# |___/
1212

1313
cl-grandine:
14-
profiles: [cl_grandine]
14+
profiles: [cl-grandine]
1515
image: sifrai/grandine:${GRANDINE_VERSION:-1.1.1}
1616
restart: unless-stopped
1717
command:
1818
- --datadir=/root/.grandine
19-
- --eth1-rpc-urls=http://el-${EL}:8551
19+
- --eth1-rpc-urls=http://${EL}:8551
2020
- --jwt-secret=/jwt
2121
- --http-address=0.0.0.0
2222
- --http-port=5052
@@ -25,7 +25,7 @@ services:
2525
- --metrics-port=5054
2626
- --metrics-address=0.0.0.0
2727
- --checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL}
28-
- --builder=http://mev-${MEV}:18550
28+
- --builder=http://${MEV}:18550
2929
ports:
3030
- 9000:9000 # TCP + UDP LibP2P
3131
volumes:
@@ -42,7 +42,7 @@ services:
4242
# |___/
4343

4444
cl-lighthouse:
45-
profiles: [cl_lighthouse]
45+
profiles: [cl-lighthouse]
4646
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v7.0.1}
4747
ports:
4848
- ${LIGHTHOUSE_PORT_P2P:-9000}:9000/tcp # P2P TCP
@@ -54,10 +54,10 @@ services:
5454
--network=${NETWORK}
5555
--checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL}
5656
--checkpoint-sync-url-timeout=600
57-
--execution-endpoint=http://el-${EL}:8551
57+
--execution-endpoint=http://${EL}:8551
5858
--execution-jwt=/opt/jwt/jwt.hex
5959
--datadir=/opt/app/beacon/
60-
--builder=http://mev-${MEV}:18550
60+
--builder=http://${MEV}:18550
6161
--http
6262
--http-address=0.0.0.0
6363
--http-port=5052

compose-el.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ services:
1010
# |_| |_|\___|\__|_| |_|\___|_| |_| |_| |_|_|_| |_|\__,_|
1111

1212
el-nethermind:
13-
profiles: [el_nethermind]
13+
profiles: [el-nethermind]
1414
image: nethermind/nethermind:${NETHERMIND_VERSION:-1.32.2}
1515
restart: unless-stopped
1616
ports:

compose-mev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ services:
99
# | | | | | | __/\ V /_____| |_) | (_) | (_) \__ \ |_
1010
# |_| |_| |_|\___| \_/ |_.__/ \___/ \___/|___/\__|
1111
mev-mevboost:
12-
profiles: [mev_mevboost]
12+
profiles: [mev-mevboost]
1313
image: ${MEVBOOST_IMAGE:-flashbots/mev-boost}:${MEVBOOST_VERSION:-1.9}
1414
command: |
1515
-${NETWORK}

compose-vc.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ services:
1010
# |_|\___/ \__,_|\___||___/\__\__,_|_|
1111

1212
vc-lodestar:
13-
profiles: [vc_lodestar]
13+
profiles: [vc-lodestar]
1414
image: chainsafe/lodestar:${LODESTAR_VERSION:-v1.29.0}
15-
depends_on: [dv-charon]
15+
depends_on: [charon]
1616
entrypoint: /opt/lodestar/run.sh
1717
networks: [dvnode]
1818
environment:
19-
BEACON_NODE_ADDRESS: http://dv-${DV}:3600
19+
BEACON_NODE_ADDRESS: http://${DV}:3600
2020
NETWORK: ${NETWORK}
2121
BUILDER_API_ENABLED: ${BUILDER_API_ENABLED:-true}
2222
BUILDER_SELECTION: ${BUILDER_SELECTION:-builderalways}

docker-compose.yml

Lines changed: 143 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,90 @@
33
# ${VARIABLE-default} evaluates to default only if VARIABLE is unset in the environment.
44

55
services:
6+
# _ _ _ _
7+
# _ __ ___| |_| |__ ___ _ __ _ __ ___ (_)_ __ __| |
8+
# | '_ \ / _ \ __| '_ \ / _ \ '__| '_ ` _ \| | '_ \ / _` |
9+
# | | | | __/ |_| | | | __/ | | | | | | | | | | | (_| |
10+
# |_| |_|\___|\__|_| |_|\___|_| |_| |_| |_|_|_| |_|\__,_|
11+
nethermind:
12+
image: nethermind/nethermind:${NETHERMIND_VERSION:-1.32.2}
13+
profiles: [""]
14+
restart: unless-stopped
15+
ports:
16+
- ${NETHERMIND_PORT_P2P:-30303}:30303/tcp # P2P TCP
17+
- ${NETHERMIND_PORT_P2P:-30303}:30303/udp # P2P UDP
18+
- ${NETHERMIND_IP_HTTP:-127.0.0.1}:${NETHERMIND_PORT_HTTP:-8545}:8545 # JSON-RPC
19+
- ${NETHERMIND_IP_ENGINE:-127.0.0.1}:${NETHERMIND_PORT_ENGINE:-8551}:8551 # ENGINE-API
20+
labels:
21+
- "promtail-monitored=${NETHERMIND_PROMTAIL_MONITORED:-true}"
22+
command: |
23+
--config=${NETWORK}
24+
--datadir=data
25+
--HealthChecks.Enabled=true
26+
--JsonRpc.Enabled=true
27+
--JsonRpc.JwtSecretFile="/root/jwt/jwt.hex"
28+
--JsonRpc.EngineHost=0.0.0.0
29+
--JsonRpc.EnginePort=8551
30+
--JsonRpc.Host=0.0.0.0
31+
--JsonRpc.Port=8545
32+
--Metrics.Enabled=true
33+
--Metrics.ExposePort=8008
34+
--Sync.SnapSync=true
35+
--Sync.AncientBodiesBarrier=4367322
36+
--Sync.AncientReceiptsBarrier=4367322
37+
networks: [dvnode]
38+
volumes:
39+
- ./data/nethermind:/nethermind/data
40+
- ./jwt:/root/jwt
41+
42+
# _ _ _ _ _
43+
# | (_) __ _| |__ | |_| |__ ___ _ _ ___ ___
44+
# | | |/ _` | '_ \| __| '_ \ / _ \| | | / __|/ _ \
45+
# | | | (_| | | | | |_| | | | (_) | |_| \__ \ __/
46+
# |_|_|\__, |_| |_|\__|_| |_|\___/ \__,_|___/\___|
47+
# |___/
48+
49+
lighthouse:
50+
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v7.0.1}
51+
profiles: [""]
52+
ports:
53+
- ${LIGHTHOUSE_PORT_P2P:-9000}:9000/tcp # P2P TCP
54+
- ${LIGHTHOUSE_PORT_P2P:-9000}:9000/udp # P2P UDP
55+
labels:
56+
- "promtail-monitored=${LIGHTHOUSE_PROMTAIL_MONITORED:-true}"
57+
command: |
58+
lighthouse bn
59+
--network=${NETWORK}
60+
--checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL}
61+
--checkpoint-sync-url-timeout=600
62+
--execution-endpoint=http://nethermind:8551
63+
--execution-jwt=/opt/jwt/jwt.hex
64+
--datadir=/opt/app/beacon/
65+
--builder=http://mev-boost:18550
66+
--http
67+
--http-address=0.0.0.0
68+
--http-port=5052
69+
--metrics
70+
--metrics-address=0.0.0.0
71+
--metrics-port=5054
72+
--metrics-allow-origin="*"
73+
--suggested-fee-recipient=${LIDO_EXECUTION_LAYER_REWARDS_ADDRESS:-0x388C818CA8B9251b393131C08a736A67ccB19297}
74+
networks: [dvnode]
75+
volumes:
76+
- ./data/lighthouse:/opt/app/beacon
77+
- ./jwt:/opt/jwt
78+
restart: unless-stopped
79+
680
# _
781
# ___| |__ __ _ _ __ ___ _ __
882
# / __| '_ \ / _` | '__/ _ \| '_ \
983
# | (__| | | | (_| | | | (_) | | | |
1084
# \___|_| |_|\__,_|_| \___/|_| |_|
1185

12-
dv-charon:
13-
profiles: [dv_charon]
86+
charon:
1487
image: obolnetwork/charon:${CHARON_VERSION:-v1.5.0}
1588
environment:
16-
- CHARON_BEACON_NODE_ENDPOINTS=${CHARON_BEACON_NODE_ENDPOINTS:-http://cl-${CL}:5052}
89+
- CHARON_BEACON_NODE_ENDPOINTS=${CHARON_BEACON_NODE_ENDPOINTS:-http://${CL:-lighthouse}:5052}
1790
- CHARON_BEACON_NODE_HEADERS=${CHARON_BEACON_NODE_HEADERS:-}
1891
- CHARON_BEACON_NODE_TIMEOUT=${CHARON_BEACON_NODE_TIMEOUT:-3s}
1992
- CHARON_BEACON_NODE_SUBMIT_TIMEOUT=${CHARON_BEACON_NODE_SUBMIT_TIMEOUT:-4s}
@@ -41,6 +114,53 @@ services:
41114
healthcheck:
42115
test: wget -qO- http://localhost:3620/readyz
43116

117+
# _ _ _
118+
# | | ___ __| | ___ ___| |_ __ _ _ __
119+
# | |/ _ \ / _` |/ _ \/ __| __/ _` | '__|
120+
# | | (_) | (_| | __/\__ \ || (_| | |
121+
# |_|\___/ \__,_|\___||___/\__\__,_|_|
122+
123+
lodestar:
124+
image: chainsafe/lodestar:${LODESTAR_VERSION:-v1.31.0}
125+
profiles: [""]
126+
depends_on: [charon]
127+
entrypoint: /opt/lodestar/run.sh
128+
networks: [dvnode]
129+
environment:
130+
BEACON_NODE_ADDRESS: http://charon:3600
131+
NETWORK: ${NETWORK}
132+
BUILDER_API_ENABLED: ${BUILDER_API_ENABLED:-true}
133+
BUILDER_SELECTION: ${BUILDER_SELECTION:-builderalways}
134+
labels:
135+
- "promtail-monitored=${LODESTAR_PROMTAIL_MONITORED:-true}"
136+
volumes:
137+
- ./lodestar/run.sh:/opt/lodestar/run.sh
138+
- .charon/validator_keys:/home/charon/validator_keys
139+
- ./data/lodestar:/opt/data
140+
restart: unless-stopped
141+
142+
# _ _
143+
# _ __ ___ _____ __ | |__ ___ ___ ___| |_
144+
# | '_ ` _ \ / _ \ \ / /____| '_ \ / _ \ / _ \/ __| __|
145+
# | | | | | | __/\ V /_____| |_) | (_) | (_) \__ \ |_
146+
# |_| |_| |_|\___| \_/ |_.__/ \___/ \___/|___/\__|
147+
mev-boost:
148+
image: ${MEVBOOST_IMAGE:-flashbots/mev-boost}:${MEVBOOST_VERSION:-1.9}
149+
profiles: [""]
150+
command: |
151+
-${NETWORK}
152+
-loglevel=debug
153+
-addr=0.0.0.0:18550
154+
-relay-check
155+
-relays=${MEVBOOST_RELAYS}
156+
-request-timeout-getheader=${MEVBOOST_TIMEOUT_GETHEADER:-950}
157+
-request-timeout-getpayload=${MEVBOOST_TIMEOUT_GETPAYLOAD:-4000}
158+
-request-timeout-regval=${MEVBOOST_TIMEOUT_REGVAL:-3000}
159+
labels:
160+
- "promtail-monitored=${MEV_BOOST_PROMTAIL_MONITORED:-true}"
161+
networks: [dvnode]
162+
restart: unless-stopped
163+
44164
# _ _ _
45165
# _ __ ___ ___ _ __ (_) |_ ___ _ __(_)_ __ __ _
46166
# | '_ ` _ \ / _ \| '_ \| | __/ _ \| '__| | '_ \ / _` |
@@ -88,26 +208,26 @@ services:
88208
# \_/ \__,_|_|_|\__,_|\__,_|\__\___/|_| \___|/ |\___|\___|\__\___/|_|
89209
# |__/
90210

91-
validator-ejector:
92-
image: lidofinance/validator-ejector:${VALIDATOR_EJECTOR_VERSION:-1.7.0}
93-
user: ":"
94-
networks: [dvnode]
95-
volumes:
96-
- ./validator-ejector:/exitmessages
97-
labels:
98-
- "promtail-monitored=${EJECTOR_PROMTAIL_MONITORED:-true}"
99-
restart: unless-stopped
100-
environment:
101-
- EXECUTION_NODE=${VE_EXECUTION_NODE_URL:-http://nethermind:8545}
102-
- CONSENSUS_NODE=${VE_BEACON_NODE_URL:-http://lighthouse:5052}
103-
- LOCATOR_ADDRESS=${VE_LOCATOR_ADDRESS}
104-
- STAKING_MODULE_ID=${VE_STAKING_MODULE_ID:-2}
105-
- OPERATOR_ID=${VE_OPERATOR_ID}
106-
- ORACLE_ADDRESSES_ALLOWLIST=${VE_ORACLE_ADDRESSES_ALLOWLIST}
107-
- MESSAGES_LOCATION=/exitmessages
108-
- RUN_METRICS=true
109-
- HTTP_PORT=8989
110-
- DISABLE_SECURITY_DONT_USE_IN_PRODUCTION=${DISABLE_EJECTOR_SECURITY:-false}
211+
# validator-ejector:
212+
# image: lidofinance/validator-ejector:${VALIDATOR_EJECTOR_VERSION:-1.7.0}
213+
# user: ":"
214+
# networks: [dvnode]
215+
# volumes:
216+
# - ./validator-ejector:/exitmessages
217+
# labels:
218+
# - "promtail-monitored=${EJECTOR_PROMTAIL_MONITORED:-true}"
219+
# restart: unless-stopped
220+
# environment:
221+
# - EXECUTION_NODE=${VE_EXECUTION_NODE_URL:-http://nethermind:8545}
222+
# - CONSENSUS_NODE=${VE_BEACON_NODE_URL:-http://lighthouse:5052}
223+
# - LOCATOR_ADDRESS=${VE_LOCATOR_ADDRESS}
224+
# - STAKING_MODULE_ID=${VE_STAKING_MODULE_ID:-2}
225+
# - OPERATOR_ID=${VE_OPERATOR_ID}
226+
# - ORACLE_ADDRESSES_ALLOWLIST=${VE_ORACLE_ADDRESSES_ALLOWLIST}
227+
# - MESSAGES_LOCATION=/exitmessages
228+
# - RUN_METRICS=true
229+
# - HTTP_PORT=8989
230+
# - DISABLE_SECURITY_DONT_USE_IN_PRODUCTION=${DISABLE_EJECTOR_SECURITY:-false}
111231

112232
# _ _ _ _ _ _
113233
# | (_) __| | ___ __| |_ __ _____ _(_) |_

0 commit comments

Comments
 (0)