From f3eafcee3761e539dba51a9a7ed1489b89aaacec Mon Sep 17 00:00:00 2001 From: Diogo Santos Date: Thu, 4 Sep 2025 09:13:46 +0100 Subject: [PATCH 1/5] add reth EL, teku and lodestar CL --- .env.sample.holesky | 18 +++++++++++++ .env.sample.hoodi | 18 +++++++++++++ .env.sample.mainnet | 18 +++++++++++++ compose-cl.yml | 65 +++++++++++++++++++++++++++++++++++++++++++++ compose-el.yml | 32 ++++++++++++++++++++++ 5 files changed, 151 insertions(+) diff --git a/.env.sample.holesky b/.env.sample.holesky index 22fb038..ebc191c 100644 --- a/.env.sample.holesky +++ b/.env.sample.holesky @@ -6,10 +6,13 @@ NETWORK=holesky # Execution layer client to be used in a DV setup. Uncomment only the desired client. EL=el-nethermind +#EL=el-reth # Consensus layer client to be used in a DV setup. Uncomment only the desired client. CL=cl-lighthouse #CL=cl-grandine +#CL=cl-teku +#CL=cl-lodestar # Validator client to be used in a DV setup. Uncomment only the desired client. VC=vc-lodestar @@ -42,6 +45,10 @@ COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker # See available tags https://hub.docker.com/r/nethermind/nethermind/tags #NETHERMIND_VERSION= +# Reth docker container image version. +# See available tags https://github.com/paradigmxyz/reth/pkgs/container/reth +#RETH_VERSION= + # Nethermind ancient barrier allows you to specify how many old block bodies and receipts you want to store. #NETHERMIND_ANCIENT_BODIES_BARRIER= #NETHERMIND_ANCIENT_RECEIPTS_BARRIER= @@ -62,6 +69,14 @@ LIGHTHOUSE_CHECKPOINT_SYNC_URL=https://checkpoint-sync.holesky.ethpandaops.io/ # See available tags https://hub.docker.com/r/sifrai/grandine/tags. #CL_GRANDINE_VERSION= +# Teku beacon node docker container image version. +# See available tags https://hub.docker.com/r/consensys/teku/tags +#CL_TEKU_VERSION= + +# Lodestar beacon node docker container image version. +# See available tags https://hub.docker.com/r/chainsafe/lodestar/tags +#CL_LODESTAR_VERSION= + ######### Validator Client Config ######### # Override prometheus metrics port for validator client. @@ -181,8 +196,11 @@ MEV_RELAYS=https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7 # Uncomment these if you have log exporting with Promtail # and want to disable log export on a particular container. #EL_NETHERMIND_PROMTAIL_MONITORED=false +#EL_RETH_PROMTAIL_MONITORED=false #CL_LIGHTHOUSE_PROMTAIL_MONITORED=false #CL_GRANDINE_PROMTAIL_MONITORED=false +#CL_TEKU_PROMTAIL_MONITORED=false +#CL_LODESTAR_PROMTAIL_MONITORED=false #CHARON_PROMTAIL_MONITORED=false #VC_LODESTAR_PROMTAIL_MONITORED=false #VC_NIMBUS_PROMTAIL_MONITORED=false diff --git a/.env.sample.hoodi b/.env.sample.hoodi index 5ce012c..89b4e40 100644 --- a/.env.sample.hoodi +++ b/.env.sample.hoodi @@ -6,10 +6,13 @@ NETWORK=hoodi # Execution layer client to be used in a DV setup. Uncomment only the desired client. EL=el-nethermind +#EL=el-reth # Consensus layer client to be used in a DV setup. Uncomment only the desired client. CL=cl-lighthouse #CL=cl-grandine +#CL=cl-teku +#CL=cl-lodestar # Validator client to be used in a DV setup. Uncomment only the desired client. VC=vc-lodestar @@ -42,6 +45,10 @@ COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker # See available tags https://hub.docker.com/r/nethermind/nethermind/tags #NETHERMIND_VERSION= +# Reth docker container image version. +# See available tags https://github.com/paradigmxyz/reth/pkgs/container/reth +#RETH_VERSION= + # Nethermind ancient barrier allows you to specify how many old block bodies and receipts you want to store. #NETHERMIND_ANCIENT_BODIES_BARRIER= #NETHERMIND_ANCIENT_RECEIPTS_BARRIER= @@ -62,6 +69,14 @@ LIGHTHOUSE_CHECKPOINT_SYNC_URL=https://checkpoint-sync.hoodi.ethpandaops.io/ # See available tags https://hub.docker.com/r/sifrai/grandine/tags. #CL_GRANDINE_VERSION= +# Teku beacon node docker container image version. +# See available tags https://hub.docker.com/r/consensys/teku/tags +#CL_TEKU_VERSION= + +# Lodestar beacon node docker container image version. +# See available tags https://hub.docker.com/r/chainsafe/lodestar/tags +#CL_LODESTAR_VERSION= + ######### Validator Client Config ######### # Override prometheus metrics port for validator client. @@ -181,8 +196,11 @@ MEV_RELAYS=https://0x98f0ef62f00780cf8eb06701a7d22725b9437d4768bb19b363e882ae871 # Uncomment these if you have log exporting with Promtail # and want to disable log export on a particular container. #EL_NETHERMIND_PROMTAIL_MONITORED=false +#EL_RETH_PROMTAIL_MONITORED=false #CL_LIGHTHOUSE_PROMTAIL_MONITORED=false #CL_GRANDINE_PROMTAIL_MONITORED=false +#CL_TEKU_PROMTAIL_MONITORED=false +#CL_LODESTAR_PROMTAIL_MONITORED=false #CHARON_PROMTAIL_MONITORED=false #VC_LODESTAR_PROMTAIL_MONITORED=false #VC_NIMBUS_PROMTAIL_MONITORED=false diff --git a/.env.sample.mainnet b/.env.sample.mainnet index 3b19db0..6708329 100644 --- a/.env.sample.mainnet +++ b/.env.sample.mainnet @@ -6,10 +6,13 @@ NETWORK=mainnet # Execution layer client to be used in a DV setup. Uncomment only the desired client. EL=el-nethermind +#EL=el-reth # Consensus layer client to be used in a DV setup. Uncomment only the desired client. CL=cl-lighthouse #CL=cl-grandine +#CL=cl-teku +#CL=cl-lodestar # Validator client to be used in a DV setup. Uncomment only the desired client. VC=vc-lodestar @@ -42,6 +45,10 @@ COMPOSE_FILE=compose-el.yml:compose-cl.yml:compose-vc.yml:compose-mev.yml:docker # See available tags https://hub.docker.com/r/nethermind/nethermind/tags #NETHERMIND_VERSION= +# Reth docker container image version. +# See available tags https://github.com/paradigmxyz/reth/pkgs/container/reth +#RETH_VERSION= + # Nethermind ancient barrier allows you to specify how many old block bodies and receipts you want to store. #NETHERMIND_ANCIENT_BODIES_BARRIER= #NETHERMIND_ANCIENT_RECEIPTS_BARRIER= @@ -62,6 +69,14 @@ LIGHTHOUSE_CHECKPOINT_SYNC_URL=https://mainnet.checkpoint.sigp.io/ # See available tags https://hub.docker.com/r/sifrai/grandine/tags. #CL_GRANDINE_VERSION= +# Teku beacon node docker container image version. +# See available tags https://hub.docker.com/r/consensys/teku/tags +#CL_TEKU_VERSION= + +# Lodestar beacon node docker container image version. +# See available tags https://hub.docker.com/r/chainsafe/lodestar/tags +#CL_LODESTAR_VERSION= + ######### Validator Client Config ######### # Override prometheus metrics port for validator client. @@ -181,8 +196,11 @@ MEV_RELAYS=https://0xa15b52576bcbf1072f4a011c0f99f9fb6c66f3e1ff321f11f461d15e31b # Uncomment these if you have log exporting with Promtail # and want to disable log export on a particular container. #EL_NETHERMIND_PROMTAIL_MONITORED=false +#EL_RETH_PROMTAIL_MONITORED=false #CL_LIGHTHOUSE_PROMTAIL_MONITORED=false #CL_GRANDINE_PROMTAIL_MONITORED=false +#CL_TEKU_PROMTAIL_MONITORED=false +#CL_LODESTAR_PROMTAIL_MONITORED=false #CHARON_PROMTAIL_MONITORED=false #VC_LODESTAR_PROMTAIL_MONITORED=false #VC_NIMBUS_PROMTAIL_MONITORED=false diff --git a/compose-cl.yml b/compose-cl.yml index 9e7b741..69304c5 100644 --- a/compose-cl.yml +++ b/compose-cl.yml @@ -72,3 +72,68 @@ services: - ./data/lighthouse:/opt/app/beacon # Keep data in lighthouse and not cl-lighthouse for backwards compatibility - ./jwt:/opt/jwt networks: [dvnode] + + # _ _ + # | |_ ___| | ___ _ + # | __/ _ \ |/ / | | | + # | || __/ <| |_| | + # \__\___|_|\_\\__,_| + + cl-teku: + profiles: [cl-teku] + image: consensys/teku:${VC_VERSION:-25.7.1} + restart: unless-stopped + labels: + - "promtail-monitored=${CL_TEKU_PROMTAIL_MONITORED:-true}" + command: | + --network=${NETWORK} + --checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL} + --ee-endpoint=http://${EL}:8551 + --ee-jwt-secret-file=/jwt/jwt.hex + --builder-endpoint=http://${MEV}:18550 + --rest-api-enabled=true + --rest-api-interface=0.0.0.0 + --rest-api-port=5052 + --rest-api-host-allowlist="*" + --metrics-enabled=true + --metrics-interface=0.0.0.0 + --metrics-port=5054 + --metrics-host-allowlist="*" + --validators-proposer-default-fee-recipient=${LIDO_EXECUTION_LAYER_REWARDS_ADDRESS:-0x388C818CA8B9251b393131C08a736A67ccB19297} + volumes: + - ./data/teku:/opt/teku/data + - ./jwt:/jwt:ro + networks: [dvnode] + + # _ _ _ + # | | ___ __| | ___ ___| |_ __ _ _ __ + # | |/ _ \ / _` |/ _ \/ __| __/ _` | '__| + # | | (_) | (_| | __/\__ \ || (_| | | + # |_|\___/ \__,_|\___||___/\__\__,_|_| + + cl-lodestar: + profiles: [cl-lodestar] + image: chainsafe/lodestar:${VC_VERSION:-v1.33.0} + restart: unless-stopped + labels: + - "promtail-monitored=${CL_LODESTAR_PROMTAIL_MONITORED:-true}" + command: | + beacon + --network=${NETWORK} + --checkpointSyncUrl=${LIGHTHOUSE_CHECKPOINT_SYNC_URL} + --execution.urls=http://${EL}:8551 + --jwt-secret=/jwt/jwt.hex + --dataDir=/opt/lodestar/data + --builder + --builder.url=http://${MEV}:18550 + --rest + --rest.address=0.0.0.0 + --rest.port=5052 + --metrics + --metrics.address=0.0.0.0 + --metrics.port=5054 + --suggestedFeeRecipient=${LIDO_EXECUTION_LAYER_REWARDS_ADDRESS:-0x388C818CA8B9251b393131C08a736A67ccB19297} + volumes: + - ./data/lodestar:/opt/lodestar/data + - ./jwt:/jwt:ro + networks: [dvnode] \ No newline at end of file diff --git a/compose-el.yml b/compose-el.yml index c3cf8c1..f883e6d 100644 --- a/compose-el.yml +++ b/compose-el.yml @@ -39,3 +39,35 @@ services: volumes: - ./data/nethermind:/nethermind/data - ./jwt:/root/jwt + + # _ _ + # _ __ ___| |_| |__ + # | '__/ _ \ __| '_ \ + # | | | __/ |_| | | | + # |_| \___|\__|_| |_| + + el-reth: + profiles: [el-reth] + image: ghcr.io/paradigmxyz/reth:${EL_RETH_VERSION:-v1.6.0} + restart: unless-stopped + ports: + - ${EL_PORT_P2P:-30303}:30303/tcp # P2P TCP + - ${EL_PORT_P2P:-30303}:30303/udp # P2P UDP + - ${EL_IP_HTTP:-127.0.0.1}:${EL_PORT_HTTP:-8545}:8545 # JSON-RPC + - ${EL_IP_ENGINE:-127.0.0.1}:${EL_PORT_ENGINE:-8551}:8551 # ENGINE-API + labels: + - "promtail-monitored=${EL_RETH_PROMTAIL_MONITORED:-true}" + command: | + node + --chain=${NETWORK} + --datadir=data + --authrpc.jwtsecret="/root/jwt/jwt.hex" + --authrpc.addr=0.0.0.0 + --authrpc.port=8551 + --http + --http.addr=0.0.0.0 + --http.port=8545 + --metrics=0.0.0.0:8008 + networks: [dvnode] + volumes: + - ./jwt:/root/jwt From 756ce2bbd85cecbaea5aed4477c886c7a726283b Mon Sep 17 00:00:00 2001 From: Diogo Santos Date: Thu, 4 Sep 2025 09:23:52 +0100 Subject: [PATCH 2/5] remove suggested fee recipient --- compose-cl.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/compose-cl.yml b/compose-cl.yml index 69304c5..9d94bcf 100644 --- a/compose-cl.yml +++ b/compose-cl.yml @@ -65,7 +65,6 @@ services: --metrics-address=0.0.0.0 --metrics-port=5054 --metrics-allow-origin="*" - --suggested-fee-recipient=${LIDO_EXECUTION_LAYER_REWARDS_ADDRESS:-0x388C818CA8B9251b393131C08a736A67ccB19297} ports: - ${CL_PORT_P2P:-9000}:9000 # P2P TCP+UDP volumes: @@ -99,7 +98,6 @@ services: --metrics-interface=0.0.0.0 --metrics-port=5054 --metrics-host-allowlist="*" - --validators-proposer-default-fee-recipient=${LIDO_EXECUTION_LAYER_REWARDS_ADDRESS:-0x388C818CA8B9251b393131C08a736A67ccB19297} volumes: - ./data/teku:/opt/teku/data - ./jwt:/jwt:ro @@ -132,7 +130,6 @@ services: --metrics --metrics.address=0.0.0.0 --metrics.port=5054 - --suggestedFeeRecipient=${LIDO_EXECUTION_LAYER_REWARDS_ADDRESS:-0x388C818CA8B9251b393131C08a736A67ccB19297} volumes: - ./data/lodestar:/opt/lodestar/data - ./jwt:/jwt:ro From 36ab03e4b1dd97e62e7ae0e2c5f8b8dd9e52e24f Mon Sep 17 00:00:00 2001 From: Diogo Santos Date: Thu, 4 Sep 2025 09:25:51 +0100 Subject: [PATCH 3/5] remove state cache size --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 14e7dd3..48ae049 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -72,7 +72,6 @@ services: --metrics-address=0.0.0.0 --metrics-port=5054 --metrics-allow-origin="*" - --state-cache-size=128 networks: [dvnode] volumes: - ./data/lighthouse:/opt/app/beacon From 4dafac3fefe5fcae17e15c48e73714d423550d7b Mon Sep 17 00:00:00 2001 From: Diogo Santos Date: Thu, 4 Sep 2025 10:34:44 +0100 Subject: [PATCH 4/5] add data dir to teku --- compose-cl.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/compose-cl.yml b/compose-cl.yml index 9d94bcf..44af0bc 100644 --- a/compose-cl.yml +++ b/compose-cl.yml @@ -89,6 +89,7 @@ services: --checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL} --ee-endpoint=http://${EL}:8551 --ee-jwt-secret-file=/jwt/jwt.hex + --data-base-path=/opt/teku/data --builder-endpoint=http://${MEV}:18550 --rest-api-enabled=true --rest-api-interface=0.0.0.0 From b81031c315a7ea0444fee8c1ea884e0e08025010 Mon Sep 17 00:00:00 2001 From: Diogo Santos Date: Thu, 4 Sep 2025 11:33:07 +0100 Subject: [PATCH 5/5] update volume names --- compose-cl.yml | 4 ++-- compose-el.yml | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/compose-cl.yml b/compose-cl.yml index 44af0bc..aaa4b14 100644 --- a/compose-cl.yml +++ b/compose-cl.yml @@ -100,7 +100,7 @@ services: --metrics-port=5054 --metrics-host-allowlist="*" volumes: - - ./data/teku:/opt/teku/data + - ./data/cl-teku:/opt/teku/data - ./jwt:/jwt:ro networks: [dvnode] @@ -132,6 +132,6 @@ services: --metrics.address=0.0.0.0 --metrics.port=5054 volumes: - - ./data/lodestar:/opt/lodestar/data + - ./data/cl-lodestar:/opt/lodestar/data - ./jwt:/jwt:ro networks: [dvnode] \ No newline at end of file diff --git a/compose-el.yml b/compose-el.yml index f883e6d..4851eae 100644 --- a/compose-el.yml +++ b/compose-el.yml @@ -22,7 +22,7 @@ services: - "promtail-monitored=${EL_NETHERMIND_PROMTAIL_MONITORED:-true}" command: | --config=${NETWORK} - --datadir=data + --data-dir=/nethermind/data --HealthChecks.Enabled=true --JsonRpc.Enabled=true --JsonRpc.JwtSecretFile="/root/jwt/jwt.hex" @@ -60,7 +60,7 @@ services: command: | node --chain=${NETWORK} - --datadir=data + --datadir=/reth/data --authrpc.jwtsecret="/root/jwt/jwt.hex" --authrpc.addr=0.0.0.0 --authrpc.port=8551 @@ -70,4 +70,5 @@ services: --metrics=0.0.0.0:8008 networks: [dvnode] volumes: + - ./data/reth:/reth/data - ./jwt:/root/jwt