diff --git a/besu/docker-entrypoint.sh b/besu/docker-entrypoint.sh index 0e9ce101f..107ea0572 100755 --- a/besu/docker-entrypoint.sh +++ b/besu/docker-entrypoint.sh @@ -93,6 +93,12 @@ case "${NODE_TYPE}" in echo "Besu minimal node with aggressive expiry" __prune="--snapsync-server-enabled --Xchain-pruning-enabled=ALL --Xchain-pruning-blocks-retained=113056" ;; + use-cl-zkproofs) + echo "ERROR: The node type ${NODE_TYPE} is designed to not run an execution layer client" + echo "Remove \"besu.yml\" from configuration, or change the node type" + sleep 30 + exit 1 + ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Besu implementation." sleep 30 diff --git a/default.env b/default.env index 1893646b5..24a34bc91 100644 --- a/default.env +++ b/default.env @@ -265,6 +265,7 @@ LODESTAR_HEAP= CL_NODE_TYPE=pruned # EL_NODE_TYPE can be "archive", "full", "pre-merge-expiry", "pre-prague-expiry", # "rolling-expiry" or "aggressive-expiry" +# "use-cl-zkproofs" can be used with an experimental Lighthouse build, and omits the EL # "pre-merge-expiry" is only meaningful for mainnet and sepolia # Switching node type typically requires a resync # Consider using `./ethd prune-history`, which guides you as to whether to prune in-place diff --git a/erigon/docker-entrypoint.sh b/erigon/docker-entrypoint.sh index ba8e31e2f..e9122a282 100755 --- a/erigon/docker-entrypoint.sh +++ b/erigon/docker-entrypoint.sh @@ -97,6 +97,12 @@ case "${NODE_TYPE}" in echo "Erigon minimal node with aggressive expiry" __prune="--prune.mode=minimal --persist.receipts=false" ;; + use-cl-zkproofs) + echo "ERROR: The node type ${NODE_TYPE} is designed to not run an execution layer client" + echo "Remove \"erigon.yml\" from configuration, or change the node type" + sleep 30 + exit 1 + ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Erigon implementation." sleep 30 diff --git a/ethrex/docker-entrypoint.sh b/ethrex/docker-entrypoint.sh index 6f2a26873..75dff68d5 100755 --- a/ethrex/docker-entrypoint.sh +++ b/ethrex/docker-entrypoint.sh @@ -89,6 +89,12 @@ case "${NODE_TYPE}" in echo "Ethrex minimal node with pre-merge history expiry and snap sync" __sync="--syncmode snap" ;; + use-cl-zkproofs) + echo "ERROR: The node type ${NODE_TYPE} is designed to not run an execution layer client" + echo "Remove \"ethrex.yml\" from configuration, or change the node type" + sleep 30 + exit 1 + ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Ethrex implementation." sleep 30 diff --git a/geth/docker-entrypoint.sh b/geth/docker-entrypoint.sh index ed7a61bc9..e0b1f5b49 100755 --- a/geth/docker-entrypoint.sh +++ b/geth/docker-entrypoint.sh @@ -220,6 +220,12 @@ case "${NODE_TYPE}" in ;; esac ;; + use-cl-zkproofs) + echo "ERROR: The node type ${NODE_TYPE} is designed to not run an execution layer client" + echo "Remove \"geth.yml\" from configuration, or change the node type" + sleep 30 + exit 1 + ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Geth implementation." sleep 30 diff --git a/lighthouse-cl-only.yml b/lighthouse-cl-only.yml index aa828f2eb..ab3a3337e 100644 --- a/lighthouse-cl-only.yml +++ b/lighthouse-cl-only.yml @@ -37,6 +37,7 @@ services: - BEACON_STATS_MACHINE=${BEACON_STATS_MACHINE} - CL_EXTRAS=${CL_EXTRAS:-} - NODE_TYPE=${CL_NODE_TYPE:-pruned} + - EL_NODE_TYPE=${EL_NODE_TYPE} - EL_NODE=${EL_NODE} - IPV6=${IPV6:-false} - CL_P2P_PORT=${CL_P2P_PORT:-9000} diff --git a/lighthouse.yml b/lighthouse.yml index 66f9e3ae7..bd3a1f483 100644 --- a/lighthouse.yml +++ b/lighthouse.yml @@ -47,6 +47,7 @@ services: - BEACON_STATS_MACHINE=${BEACON_STATS_MACHINE} - CL_EXTRAS=${CL_EXTRAS:-} - NODE_TYPE=${CL_NODE_TYPE:-pruned} + - EL_NODE_TYPE=${EL_NODE_TYPE} - EL_NODE=${EL_NODE} - IPV6=${IPV6:-false} - CL_P2P_PORT=${CL_P2P_PORT:-9000} diff --git a/lighthouse/docker-entrypoint.sh b/lighthouse/docker-entrypoint.sh index 750c7e024..e7d2bff0e 100755 --- a/lighthouse/docker-entrypoint.sh +++ b/lighthouse/docker-entrypoint.sh @@ -68,27 +68,6 @@ case "${NODE_TYPE}" in full|pruned) __prune="" ;; - pruned-with-zkproofs) - if [[ ! "${NETWORK}" = "mainnet" ]]; then - echo "Lighthouse with zkProof verification only works on mainnet, as far as Eth Docker is aware." - echo "Aborting." - sleep 30 - exit 1 - fi - echo "Lighthouse node with zkProof verification. HIGHLY experimental." - echo "Please make sure that you have edited \".env\" and changed:" - echo "CL_EXTRAS=--boot-nodes enr:-Oy4QJgMz9S1Eb7s13nKIbulKC0nvnt7AEqbmwxnTdwzptxNCGWjc9ipteUaCwqlu2bZDoNz361vGC_IY4fbdkR1K9iCDeuHYXR0bmV0c4gAAAAAAAAABoNjZ2MEhmNsaWVudNGKTGlnaHRob3VzZYU4LjAuMYRldGgykK1TLOsGAAAAAEcGAAAAAACCaWSCdjSCaXCEisV68INuZmSEzCxc24RxdWljgiMpiXNlY3AyNTZrMaEDEIWq41UTcFUgL8LRletpbIwrrpxznIMN_F5jRgatngmIc3luY25ldHMAg3RjcIIjKIR6a3ZtAQ" - echo "LH_SRC_BUILD_TARGET=ethproofs/zkattester-demo" - echo "LH_SRC_REPO=https://github.com/ethproofs/lighthouse" - echo "LH_DOCKERFILE=Dockerfile.source" - echo "MEV_BOOST=true" - echo "MEV_BUILD_FACTOR=100" - echo "And have source-built Lighthouse with \"./ethd update\"" - echo "A PBS sidecar needs to be in COMPOSE_FILE, and MEV relays need to be configured" - echo "Note the bootnodes ENR may have changed, check on the zkEVM attesting Telegram group!" - __prune="" - __engine="--execution-proofs" - ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Lighthouse implementation." sleep 30 @@ -96,6 +75,27 @@ case "${NODE_TYPE}" in ;; esac +if [[ "${EL_NODE_TYPE}" = "use-cl-zkproofs" ]]; then + if [[ ! "${NETWORK}" = "mainnet" ]]; then + echo "Lighthouse with zkProof verification only works on mainnet, as far as Eth Docker is aware." + echo "Aborting." + sleep 30 + exit 1 + fi + echo "Lighthouse node with zkProof verification. HIGHLY experimental." + echo "Please make sure that you have edited \".env\" and changed:" + echo "CL_EXTRAS=--boot-nodes enr:-Oy4QJgMz9S1Eb7s13nKIbulKC0nvnt7AEqbmwxnTdwzptxNCGWjc9ipteUaCwqlu2bZDoNz361vGC_IY4fbdkR1K9iCDeuHYXR0bmV0c4gAAAAAAAAABoNjZ2MEhmNsaWVudNGKTGlnaHRob3VzZYU4LjAuMYRldGgykK1TLOsGAAAAAEcGAAAAAACCaWSCdjSCaXCEisV68INuZmSEzCxc24RxdWljgiMpiXNlY3AyNTZrMaEDEIWq41UTcFUgL8LRletpbIwrrpxznIMN_F5jRgatngmIc3luY25ldHMAg3RjcIIjKIR6a3ZtAQ" + echo "LH_SRC_BUILD_TARGET=ethproofs/zkattester-demo" + echo "LH_SRC_REPO=https://github.com/ethproofs/lighthouse" + echo "LH_DOCKERFILE=Dockerfile.source" + echo "MEV_BOOST=true" + echo "MEV_BUILD_FACTOR=100" + echo "And have source-built Lighthouse with \"./ethd update\"" + echo "A PBS sidecar needs to be in COMPOSE_FILE, and MEV relays need to be configured" + echo "Note the bootnodes ENR may have changed, check on the zkEVM attesting Telegram group!" + __engine="--execution-proofs" +fi + # Check whether we should rapid sync if [[ -n "${CHECKPOINT_SYNC_URL}" ]]; then __checkpoint_sync="--checkpoint-sync-url=${CHECKPOINT_SYNC_URL}" diff --git a/nethermind/docker-entrypoint.sh b/nethermind/docker-entrypoint.sh index e93e55f23..a6373c15c 100755 --- a/nethermind/docker-entrypoint.sh +++ b/nethermind/docker-entrypoint.sh @@ -180,6 +180,12 @@ case "${NODE_TYPE}" in echo "\"EL_EXTRAS=--history-retentionepochs \" in \".env\" can override, minimum are 82125." __prune+=" --History.Pruning=Rolling" ;; + use-cl-zkproofs) + echo "ERROR: The node type ${NODE_TYPE} is designed to not run an execution layer client" + echo "Remove \"nethermind.yml\" from configuration, or change the node type" + sleep 30 + exit 1 + ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Nethermind implementation." sleep 30 diff --git a/nimbus-el/docker-entrypoint.sh b/nimbus-el/docker-entrypoint.sh index 7834aeedb..536837b45 100755 --- a/nimbus-el/docker-entrypoint.sh +++ b/nimbus-el/docker-entrypoint.sh @@ -139,6 +139,12 @@ case "${NODE_TYPE}" in echo "Nimbus EL minimal node with 33,024 epochs rolling expiry - ~5 months" __prune="--prune" ;; + use-cl-zkproofs) + echo "ERROR: The node type ${NODE_TYPE} is designed to not run an execution layer client" + echo "Remove \"nimbus-el.yml\" from configuration, or change the node type" + sleep 30 + exit 1 + ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Nimbus EL implementation." sleep 30 diff --git a/reth/docker-entrypoint.sh b/reth/docker-entrypoint.sh index c38169b48..f4a4838cc 100755 --- a/reth/docker-entrypoint.sh +++ b/reth/docker-entrypoint.sh @@ -152,6 +152,12 @@ case "${NODE_TYPE}" in __prune="--minimal" __snap="--minimal" ;; + use-cl-zkproofs) + echo "ERROR: The node type ${NODE_TYPE} is designed to not run an execution layer client" + echo "Remove \"reth.yml\" from configuration, or change the node type" + sleep 30 + exit 1 + ;; *) echo "ERROR: The node type ${NODE_TYPE} is not known to Eth Docker's Reth implementation." sleep 30