Skip to content

Commit

Permalink
EL/CL/VC can take user-defined parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
yorickdowne committed Sep 26, 2022
1 parent a7f8cdc commit 247c119
Show file tree
Hide file tree
Showing 21 changed files with 53 additions and 30 deletions.
1 change: 1 addition & 0 deletions akula.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ services:
- ${NETWORK:-mainnet}
# For now only Archive node works, as we need the eth_getLogs back to deposit contract deployment
# - --prune
command: ${EL_EXTRAS}
volumes:
akula-el-data:
jwtsecret:
1 change: 1 addition & 0 deletions besu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ services:
- --data-storage-format=BONSAI
# - --sync-mode=X_CHECKPOINT
- --sync-mode=X_SNAP
command: ${EL_EXTRAS}
volumes:
besu-eth1-data:
jwtsecret:
23 changes: 14 additions & 9 deletions default.env
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@
COMPOSE_FILE=teku.yml:besu.yml:deposit-cli.yml
# Set the ETH address that priority fees and MEV rewards should be sent to
FEE_RECIPIENT=
# Decide whether to connect the CL to Flashbots MEV boost. Set MEV_BOOST to "true" for MEV
# boost, or any other value including empty for not using MEV boost.
# If "true" it also requires :mev-boost.yml in COMPOSE_FILE
# Decide whether to connect the CL to Flashbots MEV boost, and configure the VC to register with it.
# Set MEV_BOOST to "true" for MEV boost, or any other value including empty for not using MEV boost.
# If "true" and used with a CL, it also requires :mev-boost.yml in COMPOSE_FILE
MEV_BOOST=false
# For relay information, please see https://ethstaker.cc/mev-relay-list/
MEV_RELAYS=https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net,https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.max-profit.builder.goerli.blxrbdn.com,https://0x8f7b17a74569b7a57e9bdafd2e159380759f5dc3ccbd4bf600414147e8c4e1dc6ebada83c0139ac15850eb6c975e82d0@builder-relay-goerli.blocknative.com,https://0xaa1488eae4b06a1fff840a2b6db167afc520758dc2c8af0dfb57037954df3431b747e2f900fe8805f05d635e9a29717b@relay-goerli.edennetwork.io
MEV_RELAYS=https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net,https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.max-profit.builder.goerli.blxrbdn.com,https://0x8f7b17a74569b7a57e9bdafd2e159380759f5dc3ccbd4bf600414147e8c4e1dc6ebada83c0139ac15850eb6c975e82d0@builder-relay-goerli.blocknative.com,https://0xaa1488eae4b06a1fff840a2b6db167afc520758dc2c8af0dfb57037954df3431b747e2f900fe8805f05d635e9a29717b@relay-goerli.edennetwork.io,https://0x8a72a5ec3e2909fff931c8b42c9e0e6c6e660ac48a98016777fc63a73316b3ffb5c622495106277f8dbcc17a06e92ca3@goerli-relay.securerpc.com/
# Graffiti to use for validator
GRAFFITI=🐼eth-docker🐼
# Merged network to use. If using main net, set to mainnet.
NETWORK=goerli
# CL rapid sync via initial state/checkpoint. Please use one from https://eth-clients.github.io/checkpoint-sync-endpoints/ or create an Infura eth2/beacon project first, then place the URL here
# CL rapid sync via initial state/checkpoint. Please use one from https://eth-clients.github.io/checkpoint-sync-endpoints/ or create an Infura eth2/beacon project
# first, then place the URL here
# Alternatively, use an already synced CL that you trust. No trailing / for Teku, please.
RAPID_SYNC_URL=
# Doppelganger protection - set to "true" to enable. This will intentionally skip two epochs on client start, and attempt to
Expand Down Expand Up @@ -85,10 +86,14 @@ EE_PORT=8551
# Consensus layer REST port. Only for distributed setups, this should otherwise be left alone
CL_REST_PORT=5052

# Geth cache size. This matters for low-memory machines such as RasPi 4, where
# you may want to set it to 256. Geth will use the default if this is left blank.
#GETH_CACHE=--cache=256
GETH_CACHE=
# Additional parameters for the EL client. For example, on low-memory machines,
# you may want to use it to lower Geth cache, or to increase it on high-memory machines
#EL_EXTRAS=--cache=256
EL_EXTRAS=
# Additional parameters for the CL client.
CL_EXTRAS=
# Additional parameters for the validator client.
VC_EXTRAS=

# If you want debug logs, set this to debug instead of info
LOG_LEVEL=info
Expand Down
1 change: 1 addition & 0 deletions erigon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ services:
# Workaround for high memory use in alpha
- --batchSize
- 128m
command: ${EL_EXTRAS}
volumes:
erigon-el-data:
jwtsecret:
37 changes: 17 additions & 20 deletions ethd
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,8 @@ envmigrate() {
PROM_HOST HOST_IP PRYSM_HOST EE_HOST EL_HOST EL_LB EL_WS_HOST EL_WS_LB CL_HOST CL_LB DDNS_SUBDOMAIN DDNS_PROXY RAPID_SYNC_URL \
CL_NODE BEACON_STATS_API BEACON_STATS_MACHINE EL_P2P_PORT CL_P2P_PORT PRYSM_PORT DOPPELGANGER \
PRYSM_UDP_PORT GRAFANA_PORT KEY_API_PORT TRAEFIK_WEB_PORT TRAEFIK_WEB_HTTP_PORT CL_REST_PORT \
EL_RPC_PORT EL_WS_PORT EE_PORT ERIGON_TORRENT_PORT LOG_LEVEL JWT_SECRET GETH_CACHE SSV_P2P_PORT SSV_P2P_PORT_UDP )
EL_RPC_PORT EL_WS_PORT EE_PORT ERIGON_TORRENT_PORT LOG_LEVEL JWT_SECRET EL_EXTRAS CL_EXTRAS \
VC_EXTRAS SSV_P2P_PORT SSV_P2P_PORT_UDP )
TARGET_VARS=( NIM_SRC_BUILD_TARGET NIM_DOCKER_TAG NIM_DOCKERFILE TEKU_SRC_BUILD_TARGET TEKU_DOCKER_TAG \
TEKU_DOCKERFILE LH_SRC_BUILD_TARGET LH_DOCKER_TAG LH_DOCKERFILE PRYSM_SRC_BUILD_TARGET \
PRYSM_DOCKER_TAG PRYSM_DOCKERFILE ERIGON_SRC_BUILD_TARGET ERIGON_DOCKER_TAG ERIGON_DOCKERFILE \
Expand All @@ -367,9 +368,9 @@ envmigrate() {
GETH_DOCKERFILE NM_SRC_BUILD_TARGET NM_DOCKER_TAG NM_DOCKERFILE BESU_SRC_BUILD_TARGET \
BESU_DOCKER_TAG BESU_DOCKERFILE SSV_NODE_TAG SSV2_NODE_TAG DEPCLI_SRC_BUILD_TARGET DEPCLI_DOCKER_TAG \
NODE_EXPORTER_IGNORE_MOUNT_REGEX )
OLD_VARS=( LH_PORT PRYSM_WEB_PORT EC_NODE REWARDS_TO \
OLD_VARS=( LH_PORT PRYSM_WEB_PORT EC_NODE REWARDS_TO GETH_CACHE \
EC_HOST EC_LB EC_WS_HOST EC_WS_LB CC_HOST CC_LB EC_P2P_PORT CC_NODE CC_P2P_PORT EC_RPC_PORT EC_WS_PORT )
NEW_VARS=( CL_P2P_PORT KEY_API_PORT EL_NODE FEE_RECIPIENT \
NEW_VARS=( CL_P2P_PORT KEY_API_PORT EL_NODE FEE_RECIPIENT EL_EXTRAS \
EL_HOST EL_LB EL_WS_HOST EL_WS_LB CL_HOST CL_LB EL_P2P_PORT CL_NODE CL_P2P_PORT EL_RPC_PORT EL_WS_PORT )

if [ "${EUID}" -eq 0 ]; then
Expand Down Expand Up @@ -1244,10 +1245,10 @@ query_mev() {
MEV_RELAYS=https://0x845bd072b7cd566f02faeb0a4033ce9399e42839ced64e8b2adcfc859ed1e8e1a5a293336a49feac6d9a5edb779be53a@builder-relay-sepolia.flashbots.net
;;
"goerli")
MEV_RELAYS=https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net,https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.max-profit.builder.goerli.blxrbdn.com,https://0x8f7b17a74569b7a57e9bdafd2e159380759f5dc3ccbd4bf600414147e8c4e1dc6ebada83c0139ac15850eb6c975e82d0@builder-relay-goerli.blocknative.com,https://0xaa1488eae4b06a1fff840a2b6db167afc520758dc2c8af0dfb57037954df3431b747e2f900fe8805f05d635e9a29717b@relay-goerli.edennetwork.io
MEV_RELAYS=https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net,https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.max-profit.builder.goerli.blxrbdn.com,https://0x8f7b17a74569b7a57e9bdafd2e159380759f5dc3ccbd4bf600414147e8c4e1dc6ebada83c0139ac15850eb6c975e82d0@builder-relay-goerli.blocknative.com,https://0xaa1488eae4b06a1fff840a2b6db167afc520758dc2c8af0dfb57037954df3431b747e2f900fe8805f05d635e9a29717b@relay-goerli.edennetwork.io,https://0x8a72a5ec3e2909fff931c8b42c9e0e6c6e660ac48a98016777fc63a73316b3ffb5c622495106277f8dbcc17a06e92ca3@goerli-relay.securerpc.com/
;;
"mainnet")
MEV_RELAYS=https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net,https://0x8b5d2e73e2a3a55c6c87b8b6eb92e0149a125c852751db1422fa951e42a09b82c142c3ea98d0d9930b056a3bc9896b8f@bloxroute.max-profit.blxrbdn.com,https://0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@builder-relay-mainnet.blocknative.com,https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io
MEV_RELAYS=https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net,https://0x8b5d2e73e2a3a55c6c87b8b6eb92e0149a125c852751db1422fa951e42a09b82c142c3ea98d0d9930b056a3bc9896b8f@bloxroute.max-profit.blxrbdn.com,https://0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@builder-relay-mainnet.blocknative.com,https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io,https://0x98650451ba02064f7b000f5768cf0cf4d4e492317d82871bdc87ef841a0743f69f0f1eea11168503240ac35d101c9135@mainnet-relay.securerpc.com
;;
*)
MEV_RELAYS=""
Expand Down Expand Up @@ -1494,31 +1495,27 @@ printhelp() {
echo " attempts to install docker and docker-compose for you"
echo " config"
echo " configures eth-docker with your choice of Ethereum clients"
echo " keyimport [--non-interactive | --path ]"
echo " import validator keys from .eth/validator_keys"
echo " --path specifies an alternate import path"
echo " --non-interactive is for use from another script,"
echo " in which case KEYSTORE_PASSWORD must be set to the password"
echo " shared by all keystore-m json files, and in the case of Prysm,"
echo " WALLET_PASSWORD must be set to the password for Prysm's wallet"
echo " keys ACTION"
echo " list, delete, import keys; their fee recipients; and gas fees"
echo " Run without ACTION to get help text"
echo " update [--keep-targets] "
echo " updates all client versions and eth-docker itself"
echo " --keep-targets will keep your custom build targets in .env"
echo " start"
echo " starts the Ethereum node software"
echo " stop"
echo " stops the Ethereum node software"
echo " up (or start)"
echo " starts the Ethereum node, or restarts containers that had their image or"
echo " configuration changed"
echo " down (or stop)"
echo " stops the Ethereum node"
echo " restart"
echo " restarts the Ethereum node software, a combination of stop and start"
echo " restarts the Ethereum node, a combination of down and up"
echo " version"
echo " prints the version(s) of currently running client(s)"
echo " logs"
echo " shows logs"
echo " cmd <command>"
echo " executes an arbitrary docker-compose command. Use \"cmd help\" to list them"
echo " terminate"
echo " stops the Ethereum node software and destroys all data stores"
echo " stops the Ethereum node and destroys all data stores"
echo " prune-geth"
echo " stops the Geth execution client and prunes its DB. This takes about 4-5 hours"
echo ""
Expand All @@ -1529,8 +1526,8 @@ printhelp() {
echo " shows logs only for execution service"
echo ""
echo ""
echo "Be sure to run the config command as a non-root user, and all other commands"
echo "either with sudo, or as a user who is part of the \"docker\" group"
echo "Be sure to run the config command as a non-root user"
echo "$me will attempt to use sudo as needed for docker commands"
echo ""
}

Expand Down
2 changes: 1 addition & 1 deletion geth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ services:
- --authrpc.vhosts=*
- --maxpeers
- ${EL_MAX_PEER_COUNT:-50}
command: ${GETH_CACHE}
command: ${EL_EXTRAS}
set-prune-marker:
profiles: ["tools"]
image: alpine:latest
Expand Down
1 change: 1 addition & 0 deletions lighthouse-cl-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ services:
- ${FEE_RECIPIENT}
- --subscribe-all-subnets
- --import-all-attestations
command: ${CL_EXTRAS}
labels:
- traefik.enable=true
- traefik.http.routers.cl.service=cl
Expand Down
1 change: 1 addition & 0 deletions lighthouse-vc-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ services:
- --unencrypted-http-transport
- --suggested-fee-recipient
- ${FEE_RECIPIENT}
command: ${VC_EXTRAS}

validator-import:
profiles: ["tools"]
Expand Down
2 changes: 2 additions & 0 deletions lighthouse.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ services:
- --validator-monitor-auto
- --suggested-fee-recipient
- ${FEE_RECIPIENT}
command: ${CL_EXTRAS}

validator:
restart: "unless-stopped"
Expand Down Expand Up @@ -113,6 +114,7 @@ services:
- --unencrypted-http-transport
- --suggested-fee-recipient
- ${FEE_RECIPIENT}
command: ${VC_EXTRAS}
depends_on:
- consensus

Expand Down
1 change: 1 addition & 0 deletions lodestar-cl-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ services:
- ${NETWORK}
- --suggestedFeeRecipient
- ${FEE_RECIPIENT}
command: ${CL_EXTRAS}
labels:
- traefik.enable=true
- traefik.http.routers.cl.service=cl
Expand Down
1 change: 1 addition & 0 deletions lodestar-vc-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ services:
- ${NETWORK}
- --suggestedFeeRecipient
- ${FEE_RECIPIENT}
command: ${VC_EXTRAS}

validator-import:
profiles: ["tools"]
Expand Down
2 changes: 2 additions & 0 deletions lodestar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ services:
- ${NETWORK}
- --suggestedFeeRecipient
- ${FEE_RECIPIENT}
command: ${CL_EXTRAS}

validator:
restart: "unless-stopped"
Expand Down Expand Up @@ -108,6 +109,7 @@ services:
- ${NETWORK}
- --suggestedFeeRecipient
- ${FEE_RECIPIENT}
command: ${VC_EXTRAS}

validator-import:
profiles: ["tools"]
Expand Down
1 change: 1 addition & 0 deletions nethermind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ services:
- "1"
- --log
- ${LOG_LEVEL}
command: ${EL_EXTRAS}
volumes:
nm-eth1-data:
jwtsecret:
1 change: 1 addition & 0 deletions nimbus-cl-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ services:
- --suggested-fee-recipient=${FEE_RECIPIENT}
- --subscribe-all-subnets
- --in-process-validators=false
command: ${CL_EXTRAS}
labels:
- traefik.enable=true
- traefik.http.routers.cl.service=cl
Expand Down
1 change: 1 addition & 0 deletions nimbus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ services:
- --keymanager-allow-origin=*
- --keymanager-token-file=/var/lib/nimbus/api-token.txt
- --suggested-fee-recipient=${FEE_RECIPIENT}
command: ${CL_EXTRAS}

validator-import:
profiles: ["tools"]
Expand Down
1 change: 1 addition & 0 deletions prysm-cl-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ services:
- "8008"
- --suggested-fee-recipient
- ${FEE_RECIPIENT}
command: ${CL_EXTRAS}
labels:
- traefik.enable=true
- traefik.http.routers.cl.entrypoints=websecure
Expand Down
1 change: 1 addition & 0 deletions prysm-vc-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ services:
# If you chose not to store the wallet password during import, comment out the two following lines
- --wallet-password-file
- /var/lib/prysm/password.txt
command: ${VC_EXTRAS}
labels:
- traefik.enable=true
- traefik.http.routers.prysm.entrypoints=web,websecure
Expand Down
2 changes: 2 additions & 0 deletions prysm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ services:
- "8008"
- --suggested-fee-recipient
- ${FEE_RECIPIENT}
command: ${CL_EXTRAS}

validator:
restart: "unless-stopped"
Expand Down Expand Up @@ -119,6 +120,7 @@ services:
# If you chose not to store the wallet password during import, comment out the two following lines
- --wallet-password-file
- /var/lib/prysm/password.txt
command: ${VC_EXTRAS}
depends_on:
- consensus
labels:
Expand Down
1 change: 1 addition & 0 deletions teku-cl-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ services:
- --metrics-host-allowlist=*
- --p2p-subscribe-all-subnets-enabled=true
- --validators-proposer-default-fee-recipient=${FEE_RECIPIENT}
command: ${CL_EXTRAS}
labels:
- traefik.enable=true
- traefik.http.routers.cl.service=cl
Expand Down
1 change: 1 addition & 0 deletions teku-vc-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ services:
- --validator-api-keystore-password-file=/var/lib/teku/teku-keyapi.password
- --validators-proposer-default-fee-recipient=${FEE_RECIPIENT}
- --validators-keystore-locking-enabled=false
command: ${VC_EXTRAS}

validator-import:
profiles: ["tools"]
Expand Down
1 change: 1 addition & 0 deletions teku.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ services:
- --validator-api-keystore-password-file=/var/lib/teku/teku-keyapi.password
- --validators-proposer-default-fee-recipient=${FEE_RECIPIENT}
- --validators-keystore-locking-enabled=false
command: ${CL_EXTRAS}

validator-import:
profiles: ["tools"]
Expand Down

0 comments on commit 247c119

Please sign in to comment.