Skip to content

Commit d1f64ec

Browse files
committed
Specify client types in separate env vars
1 parent 368b92d commit d1f64ec

10 files changed

Lines changed: 235 additions & 203 deletions

.env.sample.holesky

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

7-
# These profiles dictate what client types to start for execution, consensus, validator and mev clients.
8-
COMPOSE_PROFILES=el_nethermind,cl_lighthouse,dv_charon,vc_lodestar,mev_mevboost
9-
#COMPOSE_PROFILES=el_nethermind,cl_grandine,dv_charon,vc_teku,mev_commitboost
7+
# These profiles dictate what client types to start for execution, consensus, validator and mev clients.
8+
EL=nethermind
9+
#EL=geth
10+
CL=lighthouse
11+
#CL=grandine
12+
DV=charon
13+
#DV=charon
14+
VC=lodestar
15+
#VC=nimbus
16+
MEV=mevboost
17+
#MEV=commitboost
18+
COMPOSE_PROFILES=el_${EL},cl_${CL},dv_${DV},vc_${VC},mev_${MEV}
19+
COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker-compose.yml
1020

1121
# Enables builder api for lodestar VC and charon services.
1222
#BUILDER_API_ENABLED=
@@ -38,7 +48,7 @@ COMPOSE_PROFILES=el_nethermind,cl_lighthouse,dv_charon,vc_lodestar,mev_mevboost
3848
# Checkpoint sync url used by lighthouse to fast sync.
3949
LIGHTHOUSE_CHECKPOINT_SYNC_URL=https://checkpoint-sync.holesky.ethpandaops.io/
4050

41-
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
51+
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
4252
# layer rewards vault as the suggested fee recipient reduces this risk
4353
LIDO_EXECUTION_LAYER_REWARDS_ADDRESS=0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8
4454

.env.sample.hoodi

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,19 @@
44
# Overrides network for all the relevant services.
55
NETWORK=hoodi
66

7-
# These profiles dictate what client types to start for execution, consensus, validator and mev clients.
8-
COMPOSE_PROFILES=el_nethermind,cl_lighthouse,dv_charon,vc_lodestar,mev_mevboost
9-
#COMPOSE_PROFILES=el_nethermind,cl_grandine,dv_charon,vc_teku,mev_commitboost
7+
# These profiles dictate what client types to start for execution, consensus, validator and mev clients.
8+
EL=nethermind
9+
#EL=geth
10+
CL=lighthouse
11+
#CL=grandine
12+
DV=charon
13+
#DV=charon
14+
VC=lodestar
15+
#VC=nimbus
16+
MEV=mevboost
17+
#MEV=commitboost
18+
COMPOSE_PROFILES=el_${EL},cl_${CL},dv_${DV},vc_${VC},mev_${MEV}
19+
COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker-compose.yml
1020

1121
# Enables builder api for lodestar VC and charon services.
1222
#BUILDER_API_ENABLED=
@@ -38,7 +48,7 @@ COMPOSE_PROFILES=el_nethermind,cl_lighthouse,dv_charon,vc_lodestar,mev_mevboost
3848
# Checkpoint sync url used by lighthouse to fast sync.
3949
LIGHTHOUSE_CHECKPOINT_SYNC_URL=https://checkpoint-sync.hoodi.ethpandaops.io
4050

41-
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
51+
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
4252
# layer rewards vault as the suggested fee recipient reduces this risk
4353
LIDO_EXECUTION_LAYER_REWARDS_ADDRESS=0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8
4454

.env.sample.mainnet

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,19 @@
44
# Overrides network for all the relevant services.
55
NETWORK=mainnet
66

7-
# These profiles dictate what client types to start for execution, consensus, validator and mev clients.
8-
COMPOSE_PROFILES=el_nethermind,cl_lighthouse,dv_charon,vc_lodestar,mev_mevboost
9-
#COMPOSE_PROFILES=el_nethermind,cl_grandine,dv_charon,vc_teku,mev_commitboost
7+
# These profiles dictate what client types to start for execution, consensus, validator and mev clients.
8+
EL=nethermind
9+
#EL=geth
10+
CL=lighthouse
11+
#CL=grandine
12+
DV=charon
13+
#DV=charon
14+
VC=lodestar
15+
#VC=nimbus
16+
MEV=mevboost
17+
#MEV=commitboost
18+
COMPOSE_PROFILES=el_${EL},cl_${CL},dv_${DV},vc_${VC},mev_${MEV}
19+
COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker-compose.yml
1020

1121
# Enables builder api for lodestar VC and charon services.
1222
#BUILDER_API_ENABLED=
@@ -38,7 +48,7 @@ COMPOSE_PROFILES=el_nethermind,cl_lighthouse,dv_charon,vc_lodestar,mev_mevboost
3848
# If the given url errors, try replacing it with an alternative url like https://sync-mainnet.beaconcha.in/.
3949
LIGHTHOUSE_CHECKPOINT_SYNC_URL=https://mainnet.checkpoint.sigp.io/
4050

41-
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
51+
# In certain cases, beacon nodes produce blocks with unexpected fee recipients. Setting the Lido execution
4252
# layer rewards vault as the suggested fee recipient reduces this risk
4353
LIDO_EXECUTION_LAYER_REWARDS_ADDRESS=0x388C818CA8B9251b393131C08a736A67ccB19297
4454

Makefile

Lines changed: 0 additions & 14 deletions
This file was deleted.

compose-cl.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Override any defaults specified by `${FOO:-bar}` in `.env` with `FOO=qux`.
2+
# ${VARIABLE:-default} evaluates to default if VARIABLE is unset or empty in the environment.
3+
# ${VARIABLE-default} evaluates to default only if VARIABLE is unset in the environment.
4+
5+
services:
6+
# _ _
7+
# __ _ _ __ __ _ _ __ __| (_)_ __ ___
8+
# / _` | '__/ _` | '_ \ / _` | | '_ \ / _ \
9+
# | (_| | | | (_| | | | | (_| | | | | | __/
10+
# \__, |_| \__,_|_| |_|\__,_|_|_| |_|\___|
11+
# |___/
12+
13+
cl-grandine:
14+
profiles: [cl_grandine]
15+
image: sifrai/grandine:${GRANDINE_VERSION:-1.1.1}
16+
restart: unless-stopped
17+
command:
18+
- --datadir=/root/.grandine
19+
- --eth1-rpc-urls=http://el-${EL}:8551
20+
- --jwt-secret=/jwt
21+
- --http-address=0.0.0.0
22+
- --http-port=5052
23+
- --network=${NETWORK}
24+
- --metrics
25+
- --metrics-port=5054
26+
- --metrics-address=0.0.0.0
27+
- --checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL}
28+
- --builder=http://mev-${MEV}:18550
29+
ports:
30+
- 9000:9000 # TCP + UDP LibP2P
31+
volumes:
32+
- ./data/grandine:/root/.grandine
33+
- ./jwt:/jwt:ro
34+
networks:
35+
- dvnode
36+
37+
# _ _ _ _ _
38+
# | (_) __ _| |__ | |_| |__ ___ _ _ ___ ___
39+
# | | |/ _` | '_ \| __| '_ \ / _ \| | | / __|/ _ \
40+
# | | | (_| | | | | |_| | | | (_) | |_| \__ \ __/
41+
# |_|_|\__, |_| |_|\__|_| |_|\___/ \__,_|___/\___|
42+
# |___/
43+
44+
cl-lighthouse:
45+
profiles: [cl_lighthouse]
46+
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v7.0.1}
47+
ports:
48+
- ${LIGHTHOUSE_PORT_P2P:-9000}:9000/tcp # P2P TCP
49+
- ${LIGHTHOUSE_PORT_P2P:-9000}:9000/udp # P2P UDP
50+
labels:
51+
- "promtail-monitored=${LIGHTHOUSE_PROMTAIL_MONITORED:-true}"
52+
command: |
53+
lighthouse bn
54+
--network=${NETWORK}
55+
--checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL}
56+
--checkpoint-sync-url-timeout=600
57+
--execution-endpoint=http://el-${EL}:8551
58+
--execution-jwt=/opt/jwt/jwt.hex
59+
--datadir=/opt/app/beacon/
60+
--builder=http://mev-${MEV}:18550
61+
--http
62+
--http-address=0.0.0.0
63+
--http-port=5052
64+
--metrics
65+
--metrics-address=0.0.0.0
66+
--metrics-port=5054
67+
--metrics-allow-origin="*"
68+
--suggested-fee-recipient=${LIDO_EXECUTION_LAYER_REWARDS_ADDRESS:-0x388C818CA8B9251b393131C08a736A67ccB19297}
69+
networks: [dvnode]
70+
volumes:
71+
- ./data/lighthouse:/opt/app/beacon
72+
- ./jwt:/opt/jwt
73+
restart: unless-stopped

compose-el.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Override any defaults specified by `${FOO:-bar}` in `.env` with `FOO=qux`.
2+
# ${VARIABLE:-default} evaluates to default if VARIABLE is unset or empty in the environment.
3+
# ${VARIABLE-default} evaluates to default only if VARIABLE is unset in the environment.
4+
5+
services:
6+
# _ _ _ _
7+
# _ __ ___| |_| |__ ___ _ __ _ __ ___ (_)_ __ __| |
8+
# | '_ \ / _ \ __| '_ \ / _ \ '__| '_ ` _ \| | '_ \ / _` |
9+
# | | | | __/ |_| | | | __/ | | | | | | | | | | | (_| |
10+
# |_| |_|\___|\__|_| |_|\___|_| |_| |_| |_|_|_| |_|\__,_|
11+
12+
el-nethermind:
13+
profiles: [el_nethermind]
14+
image: nethermind/nethermind:${NETHERMIND_VERSION:-1.32.2}
15+
restart: unless-stopped
16+
ports:
17+
- ${NETHERMIND_PORT_P2P:-30303}:30303/tcp # P2P TCP
18+
- ${NETHERMIND_PORT_P2P:-30303}:30303/udp # P2P UDP
19+
- ${NETHERMIND_IP_HTTP:-127.0.0.1}:${NETHERMIND_PORT_HTTP:-8545}:8545 # JSON-RPC
20+
- ${NETHERMIND_IP_ENGINE:-127.0.0.1}:${NETHERMIND_PORT_ENGINE:-8551}:8551 # ENGINE-API
21+
labels:
22+
- "promtail-monitored=${NETHERMIND_PROMTAIL_MONITORED:-true}"
23+
command: |
24+
--config=${NETWORK}
25+
--datadir=data
26+
--HealthChecks.Enabled=true
27+
--JsonRpc.Enabled=true
28+
--JsonRpc.JwtSecretFile="/root/jwt/jwt.hex"
29+
--JsonRpc.EngineHost=0.0.0.0
30+
--JsonRpc.EnginePort=8551
31+
--JsonRpc.Host=0.0.0.0
32+
--JsonRpc.Port=8545
33+
--Metrics.Enabled=true
34+
--Metrics.ExposePort=8008
35+
--Sync.SnapSync=true
36+
--Sync.AncientBodiesBarrier=4367322
37+
--Sync.AncientReceiptsBarrier=4367322
38+
networks: [dvnode]
39+
volumes:
40+
- ./data/nethermind:/nethermind/data
41+
- ./jwt:/root/jwt

compose-grandine.yml

Lines changed: 0 additions & 35 deletions
This file was deleted.

compose-mev.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Override any defaults specified by `${FOO:-bar}` in `.env` with `FOO=qux`.
2+
# ${VARIABLE:-default} evaluates to default if VARIABLE is unset or empty in the environment.
3+
# ${VARIABLE-default} evaluates to default only if VARIABLE is unset in the environment.
4+
5+
services:
6+
# _ _
7+
# _ __ ___ _____ __ | |__ ___ ___ ___| |_
8+
# | '_ ` _ \ / _ \ \ / /____| '_ \ / _ \ / _ \/ __| __|
9+
# | | | | | | __/\ V /_____| |_) | (_) | (_) \__ \ |_
10+
# |_| |_| |_|\___| \_/ |_.__/ \___/ \___/|___/\__|
11+
mev-mevboost:
12+
profiles: [mev_mevboost]
13+
image: ${MEVBOOST_IMAGE:-flashbots/mev-boost}:${MEVBOOST_VERSION:-1.9}
14+
command: |
15+
-${NETWORK}
16+
-loglevel=debug
17+
-addr=0.0.0.0:18550
18+
-relay-check
19+
-relays=${MEVBOOST_RELAYS}
20+
-request-timeout-getheader=${MEVBOOST_TIMEOUT_GETHEADER:-950}
21+
-request-timeout-getpayload=${MEVBOOST_TIMEOUT_GETPAYLOAD:-4000}
22+
-request-timeout-regval=${MEVBOOST_TIMEOUT_REGVAL:-3000}
23+
labels:
24+
- "promtail-monitored=${MEV_BOOST_PROMTAIL_MONITORED:-true}"
25+
networks: [dvnode]
26+
restart: unless-stopped

compose-vc.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Override any defaults specified by `${FOO:-bar}` in `.env` with `FOO=qux`.
2+
# ${VARIABLE:-default} evaluates to default if VARIABLE is unset or empty in the environment.
3+
# ${VARIABLE-default} evaluates to default only if VARIABLE is unset in the environment.
4+
5+
services:
6+
# _ _ _
7+
# | | ___ __| | ___ ___| |_ __ _ _ __
8+
# | |/ _ \ / _` |/ _ \/ __| __/ _` | '__|
9+
# | | (_) | (_| | __/\__ \ || (_| | |
10+
# |_|\___/ \__,_|\___||___/\__\__,_|_|
11+
12+
vc-lodestar:
13+
profiles: [vc_lodestar]
14+
image: chainsafe/lodestar:${LODESTAR_VERSION:-v1.29.0}
15+
depends_on: [dv-charon]
16+
entrypoint: /opt/lodestar/run.sh
17+
networks: [dvnode]
18+
environment:
19+
BEACON_NODE_ADDRESS: http://dv-${DV}:3600
20+
NETWORK: ${NETWORK}
21+
BUILDER_API_ENABLED: ${BUILDER_API_ENABLED:-true}
22+
BUILDER_SELECTION: ${BUILDER_SELECTION:-builderalways}
23+
labels:
24+
- "promtail-monitored=${LODESTAR_PROMTAIL_MONITORED:-true}"
25+
volumes:
26+
- ./lodestar/run.sh:/opt/lodestar/run.sh
27+
- .charon/validator_keys:/home/charon/validator_keys
28+
- ./data/lodestar:/opt/data
29+
restart: unless-stopped

0 commit comments

Comments
 (0)