From 19be2c6e6e3c8c146c7c58883450ad7de81ce52c Mon Sep 17 00:00:00 2001 From: hcastc00 Date: Thu, 14 Aug 2025 17:30:01 +0200 Subject: [PATCH] Add advanced configuration for P2P ports in documentation and Docker setup --- README.md | 15 ++ cluster/Dockerfile | 6 +- docker-compose.yml | 162 ++++++++++---------- package_variants/gnosis/docker-compose.yml | 29 ++-- package_variants/hoodi/docker-compose.yml | 25 +-- package_variants/mainnet/docker-compose.yml | 25 +-- 6 files changed, 143 insertions(+), 119 deletions(-) diff --git a/README.md b/README.md index 7fc7ff4..a51d440 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,21 @@ This package includes the following services: Only the `Definition File URL` is mandatory for starting the DKG process. All other fields are optional and can be left blank during setup if importing configuration via file or URL. +### Advanced config + +- **P2P Ports**: To modify the default P2P ports, you will have to: +1. **Advanced Config** + Set these environment variables: + - `CHARON_P2P_TCP_ADDRESS` → `0.0.0.0:` + - `CHARON_P2P_UDP_ADDRESS` → `0.0.0.0:` + +2. **Network** tab + Add the corresponding port mappings: + - `:` (TCP) + - `:` (UDP) + > The env vars **must** match the published ports. If they differ, external peers won’t be able to reach your node. + + ### Script Integration - **Staker Tools Integration**: The `dvt_lsd_tools.sh` script is sourced from the `staker-package-scripts` repository. It is downloaded during the Docker build process using the release version specified in the `STAKER_SCRIPTS_VERSION` argument. The script is placed in `/etc/profile.d/` to manage staking-related operations. diff --git a/cluster/Dockerfile b/cluster/Dockerfile index cb8bce2..cb13ce7 100644 --- a/cluster/Dockerfile +++ b/cluster/Dockerfile @@ -5,8 +5,6 @@ ARG CLUSTER_ID ARG VALIDATOR_CLIENT_VERSION ARG STAKER_SCRIPTS_VERSION ARG NETWORK -ARG P2P_TCP_PORT -ARG P2P_UDP_PORT ARG TARGETARCH USER root @@ -47,8 +45,8 @@ WORKDIR /import # Placed here to regenerate less layers ENV NETWORK=${NETWORK} \ - CHARON_P2P_TCP_ADDRESS="0.0.0.0:${P2P_TCP_PORT}" \ - CHARON_P2P_UDP_ADDRESS="0.0.0.0:${P2P_UDP_PORT}" + CHARON_P2P_TCP_ADDRESS="${CHARON_P2P_TCP_ADDRESS}" \ + CHARON_P2P_UDP_ADDRESS="${CHARON_P2P_UDP_ADDRESS}" # Use supervisord to start services ENTRYPOINT ["supervisord", "-c", "/etc/supervisord.conf"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index eae7ab5..126bf5b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,23 +13,21 @@ services: - charon-1-data:/opt/charon/.charon - validator-1-data:/opt/validator/data environment: - - DEFINITION_FILE_URL - - CHARON_LOG_LEVEL=info - - CHARON_LOKI_ADDRESSES=http://loki.dms.dappnode:3100/loki/api/v1/push - - CHARON_P2P_RELAYS=https://0.relay.obol.tech,https://1.relay.obol.tech/ - - CHARON_P2P_TCP_ADDRESS - - CHARON_P2P_UDP_ADDRESS - - CHARON_LOKI_SERVICE=cluster-1 - - ENABLE_MEV_BOOST=false - - CHARON_EXTRA_OPTS - - DEFAULT_FEE_RECIPIENT=0x0000000000000000000000000000000000000000 - - GRAFFITI=validating_from_DAppNode - - JAVA_OPTS=-Xmx5g - - SIGN_EXIT=false - - EXIT_EPOCH=256 - - VALIDATOR_EXTRA_OPTS - - CUSTOM_BEACON_NODE_URLS - - CHARON_NICKNAME + DEFINITION_FILE_URL: "" + CHARON_LOG_LEVEL: "info" + CHARON_LOKI_ADDRESSES: "http://loki.dms.dappnode:3100/loki/api/v1/push" + CHARON_P2P_RELAYS: "https://0.relay.obol.tech,https://1.relay.obol.tech/" + CHARON_LOKI_SERVICE: "cluster-1" + ENABLE_MEV_BOOST: "false" + CHARON_EXTRA_OPTS: "" + DEFAULT_FEE_RECIPIENT: "0x0000000000000000000000000000000000000000" + GRAFFITI: "validating_from_DAppNode" + JAVA_OPTS: "-Xmx5g" + SIGN_EXIT: "false" + EXIT_EPOCH: "256" + VALIDATOR_EXTRA_OPTS: "" + CUSTOM_BEACON_NODE_URLS: "" + CHARON_NICKNAME: "" healthcheck: test: wget -qO- http://localhost:3620/readyz security_opt: @@ -47,23 +45,23 @@ services: - charon-2-data:/opt/charon/.charon - validator-2-data:/opt/validator/data environment: - - DEFINITION_FILE_URL - - CHARON_LOG_LEVEL=info - - CHARON_LOKI_ADDRESSES=http://loki.dms.dappnode:3100/loki/api/v1/push - - CHARON_P2P_RELAYS=https://0.relay.obol.tech,https://1.relay.obol.tech/ - - CHARON_P2P_TCP_ADDRESS - - CHARON_P2P_UDP_ADDRESS - - CHARON_LOKI_SERVICE=cluster-2 - - ENABLE_MEV_BOOST=false - - CHARON_EXTRA_OPTS - - DEFAULT_FEE_RECIPIENT=0x0000000000000000000000000000000000000000 - - GRAFFITI=validating_from_DAppNode - - JAVA_OPTS=-Xmx5g - - SIGN_EXIT=false - - EXIT_EPOCH=256 - - VALIDATOR_EXTRA_OPTS - - CUSTOM_BEACON_NODE_URLS - - CHARON_NICKNAME + DEFINITION_FILE_URL: "" + CHARON_LOG_LEVEL: "info" + CHARON_LOKI_ADDRESSES: "http://loki.dms.dappnode:3100/loki/api/v1/push" + CHARON_P2P_RELAYS: "https://0.relay.obol.tech,https://1.relay.obol.tech/" + CHARON_P2P_TCP_ADDRESS: "" + CHARON_P2P_UDP_ADDRESS: "" + CHARON_LOKI_SERVICE: "cluster-2" + ENABLE_MEV_BOOST: "false" + CHARON_EXTRA_OPTS: "" + DEFAULT_FEE_RECIPIENT: "0x0000000000000000000000000000000000000000" + GRAFFITI: "validating_from_DAppNode" + JAVA_OPTS: "-Xmx5g" + SIGN_EXIT: "false" + EXIT_EPOCH: "256" + VALIDATOR_EXTRA_OPTS: "" + CUSTOM_BEACON_NODE_URLS: "" + CHARON_NICKNAME: "" healthcheck: test: wget -qO- http://localhost:3620/readyz security_opt: @@ -81,23 +79,21 @@ services: - charon-3-data:/opt/charon/.charon - validator-3-data:/opt/validator/data environment: - - DEFINITION_FILE_URL - - CHARON_LOG_LEVEL=info - - CHARON_LOKI_ADDRESSES=http://loki.dms.dappnode:3100/loki/api/v1/push - - CHARON_P2P_RELAYS=https://0.relay.obol.tech,https://1.relay.obol.tech/ - - CHARON_P2P_TCP_ADDRESS - - CHARON_P2P_UDP_ADDRESS - - CHARON_LOKI_SERVICE=cluster-3 - - ENABLE_MEV_BOOST=false - - CHARON_EXTRA_OPTS - - DEFAULT_FEE_RECIPIENT=0x0000000000000000000000000000000000000000 - - GRAFFITI=validating_from_DAppNode - - JAVA_OPTS=-Xmx5g - - SIGN_EXIT=false - - EXIT_EPOCH=256 - - VALIDATOR_EXTRA_OPTS - - CUSTOM_BEACON_NODE_URLS - - CHARON_NICKNAME + DEFINITION_FILE_URL: "" + CHARON_LOG_LEVEL: "info" + CHARON_LOKI_ADDRESSES: "http://loki.dms.dappnode:3100/loki/api/v1/push" + CHARON_P2P_RELAYS: "https://0.relay.obol.tech,https://1.relay.obol.tech/" + CHARON_LOKI_SERVICE: "cluster-3" + ENABLE_MEV_BOOST: "false" + CHARON_EXTRA_OPTS: "" + DEFAULT_FEE_RECIPIENT: "0x0000000000000000000000000000000000000000" + GRAFFITI: "validating_from_DAppNode" + JAVA_OPTS: "-Xmx5g" + SIGN_EXIT: "false" + EXIT_EPOCH: "256" + VALIDATOR_EXTRA_OPTS: "" + CUSTOM_BEACON_NODE_URLS: "" + CHARON_NICKNAME: "" healthcheck: test: wget -qO- http://localhost:3620/readyz security_opt: @@ -115,23 +111,21 @@ services: - charon-4-data:/opt/charon/.charon - validator-4-data:/opt/validator/data environment: - - DEFINITION_FILE_URL - - CHARON_LOG_LEVEL=info - - CHARON_LOKI_ADDRESSES=http://loki.dms.dappnode:3100/loki/api/v1/push - - CHARON_P2P_RELAYS=https://0.relay.obol.tech,https://1.relay.obol.tech/ - - CHARON_P2P_TCP_ADDRESS - - CHARON_P2P_UDP_ADDRESS - - CHARON_LOKI_SERVICE=cluster-4 - - ENABLE_MEV_BOOST=false - - CHARON_EXTRA_OPTS - - DEFAULT_FEE_RECIPIENT=0x0000000000000000000000000000000000000000 - - GRAFFITI=validating_from_DAppNode - - JAVA_OPTS=-Xmx5g - - SIGN_EXIT=false - - EXIT_EPOCH=256 - - VALIDATOR_EXTRA_OPTS - - CUSTOM_BEACON_NODE_URLS - - CHARON_NICKNAME + DEFINITION_FILE_URL: "" + CHARON_LOG_LEVEL: "info" + CHARON_LOKI_ADDRESSES: "http://loki.dms.dappnode:3100/loki/api/v1/push" + CHARON_P2P_RELAYS: "https://0.relay.obol.tech,https://1.relay.obol.tech/" + CHARON_LOKI_SERVICE: "cluster-4" + ENABLE_MEV_BOOST: "false" + CHARON_EXTRA_OPTS: "" + DEFAULT_FEE_RECIPIENT: "0x0000000000000000000000000000000000000000" + GRAFFITI: "validating_from_DAppNode" + JAVA_OPTS: "-Xmx5g" + SIGN_EXIT: "false" + EXIT_EPOCH: "256" + VALIDATOR_EXTRA_OPTS: "" + CUSTOM_BEACON_NODE_URLS: "" + CHARON_NICKNAME: "" healthcheck: test: wget -qO- http://localhost:3620/readyz security_opt: @@ -149,23 +143,21 @@ services: - charon-5-data:/opt/charon/.charon - validator-5-data:/opt/validator/data environment: - - DEFINITION_FILE_URL - - CHARON_LOG_LEVEL=info - - CHARON_LOKI_ADDRESSES=http://loki.dms.dappnode:3100/loki/api/v1/push - - CHARON_P2P_RELAYS=https://0.relay.obol.tech,https://1.relay.obol.tech/ - - CHARON_P2P_TCP_ADDRESS - - CHARON_P2P_UDP_ADDRESS - - CHARON_LOKI_SERVICE=cluster-5 - - ENABLE_MEV_BOOST=false - - CHARON_EXTRA_OPTS - - DEFAULT_FEE_RECIPIENT=0x0000000000000000000000000000000000000000 - - GRAFFITI=validating_from_DAppNode - - JAVA_OPTS=-Xmx5g - - SIGN_EXIT=false - - EXIT_EPOCH=256 - - VALIDATOR_EXTRA_OPTS - - CUSTOM_BEACON_NODE_URLS - - CHARON_NICKNAME + DEFINITION_FILE_URL: "" + CHARON_LOG_LEVEL: "info" + CHARON_LOKI_ADDRESSES: "http://loki.dms.dappnode:3100/loki/api/v1/push" + CHARON_P2P_RELAYS: "https://0.relay.obol.tech,https://1.relay.obol.tech/" + CHARON_LOKI_SERVICE: "cluster-5" + ENABLE_MEV_BOOST: "false" + CHARON_EXTRA_OPTS: "" + DEFAULT_FEE_RECIPIENT: "0x0000000000000000000000000000000000000000" + GRAFFITI: "validating_from_DAppNode" + JAVA_OPTS: "-Xmx5g" + SIGN_EXIT: "false" + EXIT_EPOCH: "256" + VALIDATOR_EXTRA_OPTS: "" + CUSTOM_BEACON_NODE_URLS: "" + CHARON_NICKNAME: "" healthcheck: test: wget -qO- http://localhost:3620/readyz security_opt: diff --git a/package_variants/gnosis/docker-compose.yml b/package_variants/gnosis/docker-compose.yml index d281f97..1dcebb4 100644 --- a/package_variants/gnosis/docker-compose.yml +++ b/package_variants/gnosis/docker-compose.yml @@ -3,44 +3,53 @@ services: build: args: NETWORK: gnosis - P2P_TCP_PORT: 3811 - P2P_UDP_PORT: 3831 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3811" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3831" ports: - 3811:3811/tcp - 3831:3831/udp + cluster-2: build: args: NETWORK: gnosis - P2P_TCP_PORT: 3812 - P2P_UDP_PORT: 3832 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3812" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3832" ports: - 3812:3812/tcp - 3832:3832/udp + cluster-3: build: args: NETWORK: gnosis - P2P_TCP_PORT: 3813 - P2P_UDP_PORT: 3833 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3813" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3833" ports: - 3813:3813/tcp - 3833:3833/udp + cluster-4: build: args: NETWORK: gnosis - P2P_TCP_PORT: 3814 - P2P_UDP_PORT: 3834 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3814" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3834" ports: - 3814:3814/tcp - 3834:3834/udp + cluster-5: build: args: NETWORK: gnosis - P2P_TCP_PORT: 3815 - P2P_UDP_PORT: 3835 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3815" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3835" ports: - 3815:3815/tcp - 3835:3835/udp diff --git a/package_variants/hoodi/docker-compose.yml b/package_variants/hoodi/docker-compose.yml index e361f46..02f86a2 100644 --- a/package_variants/hoodi/docker-compose.yml +++ b/package_variants/hoodi/docker-compose.yml @@ -3,8 +3,9 @@ services: build: args: NETWORK: hoodi - P2P_TCP_PORT: 3911 - P2P_UDP_PORT: 3931 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3911" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3931" ports: - 3911:3911/tcp - 3931:3931/udp @@ -12,8 +13,9 @@ services: build: args: NETWORK: hoodi - P2P_TCP_PORT: 3912 - P2P_UDP_PORT: 3932 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3912" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3932" ports: - 3912:3912/tcp - 3932:3932/udp @@ -21,8 +23,9 @@ services: build: args: NETWORK: hoodi - P2P_TCP_PORT: 3913 - P2P_UDP_PORT: 3933 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3913" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3933" ports: - 3913:3913/tcp - 3933:3933/udp @@ -30,8 +33,9 @@ services: build: args: NETWORK: hoodi - P2P_TCP_PORT: 3914 - P2P_UDP_PORT: 3934 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3914" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3934" ports: - 3914:3914/tcp - 3934:3934/udp @@ -39,8 +43,9 @@ services: build: args: NETWORK: hoodi - P2P_TCP_PORT: 3915 - P2P_UDP_PORT: 3935 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3915" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3935" ports: - 3915:3915/tcp - 3935:3935/udp diff --git a/package_variants/mainnet/docker-compose.yml b/package_variants/mainnet/docker-compose.yml index 1844512..65cf3d6 100644 --- a/package_variants/mainnet/docker-compose.yml +++ b/package_variants/mainnet/docker-compose.yml @@ -3,8 +3,9 @@ services: build: args: NETWORK: mainnet - P2P_TCP_PORT: 3411 - P2P_UDP_PORT: 3431 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3411" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3431" ports: - 3411:3411/tcp - 3431:3431/udp @@ -12,8 +13,9 @@ services: build: args: NETWORK: mainnet - P2P_TCP_PORT: 3412 - P2P_UDP_PORT: 3432 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3412" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3432" ports: - 3412:3412/tcp - 3432:3432/udp @@ -21,8 +23,9 @@ services: build: args: NETWORK: mainnet - P2P_TCP_PORT: 3413 - P2P_UDP_PORT: 3433 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3413" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3433" ports: - 3413:3413/tcp - 3433:3433/udp @@ -30,8 +33,9 @@ services: build: args: NETWORK: mainnet - P2P_TCP_PORT: 3414 - P2P_UDP_PORT: 3434 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3414" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3434" ports: - 3414:3414/tcp - 3434:3434/udp @@ -39,8 +43,9 @@ services: build: args: NETWORK: mainnet - P2P_TCP_PORT: 3415 - P2P_UDP_PORT: 3435 + environment: + CHARON_P2P_TCP_ADDRESS: "0.0.0.0:3415" + CHARON_P2P_UDP_ADDRESS: "0.0.0.0:3435" ports: - 3415:3415/tcp - 3435:3435/udp