From 06d77db2ad9e495de92fdf326cde15d0bc5d2b6a Mon Sep 17 00:00:00 2001 From: erl-100 Date: Sat, 15 Aug 2026 15:15:27 -0400 Subject: [PATCH] Add configurable block proposal graffiti Expose charon's --graffiti and --graffiti-disable-client-append as CHARON_GRAFFITI and CHARON_GRAFFITI_DISABLE_CLIENT_APPEND, so operators can set a custom graffiti, a per-validator list, --- .env.sample.hoodi | 8 ++++++++ .env.sample.mainnet | 8 ++++++++ CLAUDE.md | 1 + docker-compose.yml | 2 ++ 4 files changed, 19 insertions(+) diff --git a/.env.sample.hoodi b/.env.sample.hoodi index 56400c3b..9b233f91 100644 --- a/.env.sample.hoodi +++ b/.env.sample.hoodi @@ -178,6 +178,14 @@ MEV_RELAYS=https://0x98f0ef62f00780cf8eb06701a7d22725b9437d4768bb19b363e882ae871 # Nickname to identify this charon node on monitoring (max 32 characters). #CHARON_NICKNAME="" +# Graffiti to include in proposed blocks. Defaults to charon/-. +# A single value applies to all validators, or use a comma separated list with one entry per validator, ordered as in .charon/cluster-lock.json. Max 28 bytes per entry. +# For no graffiti, set '""' (single quoted, so the inner quotes survive) and disable the client append below. +#CHARON_GRAFFITI= + +# Disable the "OB" suffix charon appends to the graffiti, e.g. OBLH on Lighthouse. Increases the maximum to 32 bytes per entry. +#CHARON_GRAFFITI_DISABLE_CLIENT_APPEND=false + # Docker network of running charon node. See `docker network ls`. #CHARON_DOCKER_NETWORK= diff --git a/.env.sample.mainnet b/.env.sample.mainnet index 2758a65b..5443b57b 100644 --- a/.env.sample.mainnet +++ b/.env.sample.mainnet @@ -178,6 +178,14 @@ MEV_RELAYS=https://0xa15b52576bcbf1072f4a011c0f99f9fb6c66f3e1ff321f11f461d15e31b # Nickname to identify this charon node on monitoring (max 32 characters). #CHARON_NICKNAME="" +# Graffiti to include in proposed blocks. Defaults to charon/-. +# A single value applies to all validators, or use a comma separated list with one entry per validator, ordered as in .charon/cluster-lock.json. Max 28 bytes per entry. +# For no graffiti, set '""' (single quoted, so the inner quotes survive) and disable the client append below. +#CHARON_GRAFFITI= + +# Disable the "OB" suffix charon appends to the graffiti, e.g. OBLH on Lighthouse. Increases the maximum to 32 bytes per entry. +#CHARON_GRAFFITI_DISABLE_CLIENT_APPEND=false + # Docker network of running charon node. See `docker network ls`. #CHARON_DOCKER_NETWORK= diff --git a/CLAUDE.md b/CLAUDE.md index 41cdfea6..c743b364 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -126,6 +126,7 @@ docker compose exec charon charon alpha test --publish # infra | peers - `CHARON_BEACON_NODE_ENDPOINTS`: Override default beacon node (defaults to selected CL client) - `CHARON_FALLBACK_BEACON_NODE_ENDPOINTS`: Fallback beacon nodes for redundancy - `BUILDER_API_ENABLED`: Enable/disable MEV-boost integration +- `CHARON_GRAFFITI`, `CHARON_GRAFFITI_DISABLE_CLIENT_APPEND`: Block proposal graffiti (set on charon, not the VC) - `CLUSTER_NAME`, `CLUSTER_PEER`: Required for monitoring with Alloy/Prometheus - `ALERT_DISCORD_IDS`: Discord IDs for Obol Agent monitoring alerts diff --git a/docker-compose.yml b/docker-compose.yml index 98f4baba..7c77426c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -101,6 +101,8 @@ services: - CHARON_VALIDATOR_API_ADDRESS=0.0.0.0:3600 - CHARON_MONITORING_ADDRESS=0.0.0.0:3620 - CHARON_BUILDER_API=${BUILDER_API_ENABLED:-true} + - CHARON_GRAFFITI=${CHARON_GRAFFITI:-} + - CHARON_GRAFFITI_DISABLE_CLIENT_APPEND=${CHARON_GRAFFITI_DISABLE_CLIENT_APPEND:-false} - CHARON_FEATURE_SET_ENABLE=${CHARON_FEATURE_SET_ENABLE:-} - CHARON_LOKI_ADDRESSES=${CHARON_LOKI_ADDRESSES:-http://loki:3100/loki/api/v1/push} - CHARON_LOKI_SERVICE=charon