diff --git a/go.mod b/go.mod index edf2df54..25b5e7c2 100644 --- a/go.mod +++ b/go.mod @@ -35,8 +35,8 @@ require ( github.com/rivo/tview v0.0.0-20230621164836-6cc0565babaf // indirect github.com/sethvargo/go-password v0.2.0 github.com/shirou/gopsutil/v3 v3.23.1 - github.com/stader-labs/ethcli-ui/configuration v0.0.0-20231226083422-f3da49b84cc1 - github.com/stader-labs/ethcli-ui/wizard v0.0.0-20231226083422-f3da49b84cc1 + github.com/stader-labs/ethcli-ui/configuration v0.0.0-20240401032301-ba44ad7f2388 + github.com/stader-labs/ethcli-ui/wizard v0.0.0-20240401032301-ba44ad7f2388 github.com/tyler-smith/go-bip39 v1.1.0 github.com/urfave/cli v1.22.10 github.com/wealdtech/go-eth2-types/v2 v2.7.0 diff --git a/go.sum b/go.sum index 69216dde..33d3deef 100644 --- a/go.sum +++ b/go.sum @@ -1231,10 +1231,10 @@ github.com/spf13/viper v1.0.0/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7Sr github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc= -github.com/stader-labs/ethcli-ui/configuration v0.0.0-20231226083422-f3da49b84cc1 h1:g0iwUPYfGEvaUkulr5o+40dR9UQFXconbLWN5+/DdoA= -github.com/stader-labs/ethcli-ui/configuration v0.0.0-20231226083422-f3da49b84cc1/go.mod h1:gZcnx3O0sm+mEO2INhKDHw+iUzJH5tPaX4cv5SN5tsQ= -github.com/stader-labs/ethcli-ui/wizard v0.0.0-20231226083422-f3da49b84cc1 h1:nmJhcmTlR/SkEg4A8wnkTI4fOSj33786crIyBKHB6eg= -github.com/stader-labs/ethcli-ui/wizard v0.0.0-20231226083422-f3da49b84cc1/go.mod h1:5ojn2lxD9wd5sF0KYaHBDcpUC3ACFgqr0XG1atCIeAs= +github.com/stader-labs/ethcli-ui/configuration v0.0.0-20240401032301-ba44ad7f2388 h1:gBMnIJ6ImRnLtR3svUvKNo/aaRm6pTaaTqJAsvDM4WI= +github.com/stader-labs/ethcli-ui/configuration v0.0.0-20240401032301-ba44ad7f2388/go.mod h1:cZXmAbD7pFlFRFpplBAvs0aZQQpn1mqrOFXvk1eG5GE= +github.com/stader-labs/ethcli-ui/wizard v0.0.0-20240401032301-ba44ad7f2388 h1:UQnT1U0O6MMeFD4kwjRLzwnrsN9qEVoC2GYIif/EhyQ= +github.com/stader-labs/ethcli-ui/wizard v0.0.0-20240401032301-ba44ad7f2388/go.mod h1:foAYtd7iN9Dw69NtRaYaSw1x77IufSTxG5XMFfhPNCg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= github.com/status-im/keycard-go v0.0.0-20200402102358-957c09536969 h1:Oo2KZNP70KE0+IUJSidPj/BFS/RXNHmKIJOdckzml2E= github.com/status-im/keycard-go v0.0.0-20200402102358-957c09536969/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= @@ -1692,7 +1692,6 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1700,7 +1699,6 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/install/scripts/start-bn.sh b/install/scripts/start-bn.sh index cf19b0c4..39e86f58 100755 --- a/install/scripts/start-bn.sh +++ b/install/scripts/start-bn.sh @@ -43,27 +43,12 @@ if [ "$NETWORK" = "mainnet" ]; then PRYSM_NETWORK="--mainnet" TEKU_NETWORK="mainnet" PRYSM_GENESIS_STATE="" -elif [ "$NETWORK" = "prater" ]; then - LH_NETWORK="prater" - LODESTAR_NETWORK="goerli" - NIMBUS_NETWORK="prater" - PRYSM_NETWORK="--prater" - TEKU_NETWORK="prater" - PRYSM_GENESIS_STATE="--genesis-state=/validators/genesis-prater.ssz" -elif [ "$NETWORK" = "devnet" ]; then - LH_NETWORK="prater" - LODESTAR_NETWORK="goerli" - NIMBUS_NETWORK="prater" - PRYSM_NETWORK="--prater" - TEKU_NETWORK="prater" - PRYSM_GENESIS_STATE="--genesis-state=/validators/genesis-prater.ssz" -elif [ "$NETWORK" = "zhejiang" ]; then - LH_NETWORK="" - LODESTAR_NETWORK="" - NIMBUS_NETWORK="/zhejiang" - PRYSM_NETWORK="--chain-config-file=/zhejiang/config.yaml" - TEKU_NETWORK="/zhejiang/config.yaml" - PRYSM_GENESIS_STATE="--genesis-state=/zhejiang/genesis.ssz" +elif [ "$NETWORK" = "holesky" ]; then + LH_NETWORK="holesky" + LODESTAR_NETWORK="holesky" + NIMBUS_NETWORK="holesky" + PRYSM_NETWORK="--holesky" + TEKU_NETWORK="holesky" else echo "Unknown network [$NETWORK]" exit 1 @@ -84,14 +69,8 @@ fi # Lighthouse startup if [ "$CC_CLIENT" = "lighthouse" ]; then - if [ "$NETWORK" = "zhejiang" ]; then - LH_NETWORK_ARG="--testnet-dir=/zhejiang" - else - LH_NETWORK_ARG="--network $LH_NETWORK" - fi - CMD="$PERF_PREFIX /usr/local/bin/lighthouse beacon \ - $LH_NETWORK_ARG \ + --network $LH_NETWORK \ --datadir /ethclient/lighthouse \ --port $BN_P2P_PORT \ --discovery-port $BN_P2P_PORT \ @@ -104,6 +83,7 @@ if [ "$CC_CLIENT" = "lighthouse" ]; then --staking \ --http-allow-sync-stalled \ --execution-jwt=/secrets/jwtsecret \ + --historic-state-cache-size 2 \ $BN_ADDITIONAL_FLAGS" # Performance tuning for ARM systems @@ -132,10 +112,6 @@ if [ "$CC_CLIENT" = "lighthouse" ]; then CMD="$CMD --monitoring-endpoint $BITFLY_NODE_METRICS_ENDPOINT?apikey=$BITFLY_NODE_METRICS_SECRET&machine=$BITFLY_NODE_METRICS_MACHINE_NAME" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --boot-nodes=enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk,enr:-Ly4QOS00hvPDddEcCpwA1cMykWNdJUK50AjbRgbLZ9FLPyBa78i0NwsQZLSV67elpJU71L1Pt9yqVmE1C6XeSI-LV8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhEDhTgGJc2VjcDI1NmsxoQIgMUMFvJGlr8dI1TEQy-K78u2TJE2rWvah9nGqLQCEGohzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MK4QMlRAwM7E8YBo6fqP7M2IWrjFHP35uC4pWIttUioZWOiaTl5zgZF2OwSxswTQwpiVCnj4n56bhy4NJVHSe682VWGAYYDHkp4h2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhJK-7tSJc2VjcDI1NmsxoQLDq7LlsXIXAoJXPt7rqf6CES1Q40xPw2yW0RQ-Ly5S1YhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MS4QCgiQisRxtzXKlBqq_LN1CRUSGIpDKO4e2hLQsffp0BrC3A7-8F6kxHYtATnzcrsVOr8gnwmBnHYTFvE9UmT-0EHh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhKXoVKCJc2VjcDI1NmsxoQK6J-uvOXMf44iIlilx1uPWGRrrTntjLEFR2u-lHcHofIhzeW5jbmV0c4gAAAAAAAAAAIN0Y3CCIyiDdWRwgiMo,enr:-LK4QOQd-elgl_-dcSoUyHDbxBFNgQ687lzcKJiSBtpCyPQ0DinWSd2PKdJ4FHMkVLWD-oOquXPKSMtyoKpI0-Wo_38Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhES3DaqJc2VjcDI1NmsxoQNIf37JZx-Lc8pnfDwURcHUqLbIEZ1RoxjZuBRtEODseYN0Y3CCIyiDdWRwgiMo,enr:-KG4QLNORYXUK76RPDI4rIVAqX__zSkc5AqMcwAketVzN9YNE8FHSu1im3qJTIeuwqI5JN5SPVsiX7L9nWXgWLRUf6sDhGV0aDKQ7ijXswAAAHJGBQAAAAAAAIJpZIJ2NIJpcIShI5NiiXNlY3AyNTZrMaECpA_KefrVAueFWiLLDZKQPPVOxMuxGogPrI474FaS-x2DdGNwgiMog3VkcIIjKA" - fi - exec ${CMD} fi @@ -143,14 +119,8 @@ fi # Lodestar startup if [ "$CC_CLIENT" = "lodestar" ]; then - if [ "$NETWORK" = "zhejiang" ]; then - LODESTAR_NETWORK_ARG="--paramsFile=/zhejiang/config.yaml --genesisStateFile=/zhejiang/genesis.ssz" - else - LODESTAR_NETWORK_ARG="--network $LODESTAR_NETWORK" - fi - - CMD="$PERF_PREFIX /usr/app/node_modules/.bin/lodestar beacon \ - $LODESTAR_NETWORK_ARG \ + CMD="$PERF_PREFIX /usr/local/bin/node --max-http-header-size=65536 /usr/app/packages/cli/bin/lodestar beacon \ + --network $LODESTAR_NETWORK \ --dataDir /ethclient/lodestar \ --port $BN_P2P_PORT \ --execution.urls $EC_ENGINE_ENDPOINT \ @@ -180,9 +150,6 @@ if [ "$CC_CLIENT" = "lodestar" ]; then CMD="$CMD --checkpointSyncUrl $CHECKPOINT_SYNC_URL" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --bootnodes=enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk,enr:-Ly4QOS00hvPDddEcCpwA1cMykWNdJUK50AjbRgbLZ9FLPyBa78i0NwsQZLSV67elpJU71L1Pt9yqVmE1C6XeSI-LV8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhEDhTgGJc2VjcDI1NmsxoQIgMUMFvJGlr8dI1TEQy-K78u2TJE2rWvah9nGqLQCEGohzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MK4QMlRAwM7E8YBo6fqP7M2IWrjFHP35uC4pWIttUioZWOiaTl5zgZF2OwSxswTQwpiVCnj4n56bhy4NJVHSe682VWGAYYDHkp4h2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhJK-7tSJc2VjcDI1NmsxoQLDq7LlsXIXAoJXPt7rqf6CES1Q40xPw2yW0RQ-Ly5S1YhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MS4QCgiQisRxtzXKlBqq_LN1CRUSGIpDKO4e2hLQsffp0BrC3A7-8F6kxHYtATnzcrsVOr8gnwmBnHYTFvE9UmT-0EHh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhKXoVKCJc2VjcDI1NmsxoQK6J-uvOXMf44iIlilx1uPWGRrrTntjLEFR2u-lHcHofIhzeW5jbmV0c4gAAAAAAAAAAIN0Y3CCIyiDdWRwgiMo,enr:-LK4QOQd-elgl_-dcSoUyHDbxBFNgQ687lzcKJiSBtpCyPQ0DinWSd2PKdJ4FHMkVLWD-oOquXPKSMtyoKpI0-Wo_38Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhES3DaqJc2VjcDI1NmsxoQNIf37JZx-Lc8pnfDwURcHUqLbIEZ1RoxjZuBRtEODseYN0Y3CCIyiDdWRwgiMo,enr:-KG4QLNORYXUK76RPDI4rIVAqX__zSkc5AqMcwAketVzN9YNE8FHSu1im3qJTIeuwqI5JN5SPVsiX7L9nWXgWLRUf6sDhGV0aDKQ7ijXswAAAHJGBQAAAAAAAIJpZIJ2NIJpcIShI5NiiXNlY3AyNTZrMaECpA_KefrVAueFWiLLDZKQPPVOxMuxGogPrI474FaS-x2DdGNwgiMog3VkcIIjKA" - fi exec ${CMD} @@ -237,10 +204,6 @@ if [ "$CC_CLIENT" = "nimbus" ]; then CMD="$CMD --history=$NIMBUS_PRUNING_MODE" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --bootstrap-node=enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk,enr:-Ly4QOS00hvPDddEcCpwA1cMykWNdJUK50AjbRgbLZ9FLPyBa78i0NwsQZLSV67elpJU71L1Pt9yqVmE1C6XeSI-LV8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhEDhTgGJc2VjcDI1NmsxoQIgMUMFvJGlr8dI1TEQy-K78u2TJE2rWvah9nGqLQCEGohzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MK4QMlRAwM7E8YBo6fqP7M2IWrjFHP35uC4pWIttUioZWOiaTl5zgZF2OwSxswTQwpiVCnj4n56bhy4NJVHSe682VWGAYYDHkp4h2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhJK-7tSJc2VjcDI1NmsxoQLDq7LlsXIXAoJXPt7rqf6CES1Q40xPw2yW0RQ-Ly5S1YhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MS4QCgiQisRxtzXKlBqq_LN1CRUSGIpDKO4e2hLQsffp0BrC3A7-8F6kxHYtATnzcrsVOr8gnwmBnHYTFvE9UmT-0EHh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhKXoVKCJc2VjcDI1NmsxoQK6J-uvOXMf44iIlilx1uPWGRrrTntjLEFR2u-lHcHofIhzeW5jbmV0c4gAAAAAAAAAAIN0Y3CCIyiDdWRwgiMo,enr:-LK4QOQd-elgl_-dcSoUyHDbxBFNgQ687lzcKJiSBtpCyPQ0DinWSd2PKdJ4FHMkVLWD-oOquXPKSMtyoKpI0-Wo_38Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhES3DaqJc2VjcDI1NmsxoQNIf37JZx-Lc8pnfDwURcHUqLbIEZ1RoxjZuBRtEODseYN0Y3CCIyiDdWRwgiMo,enr:-KG4QLNORYXUK76RPDI4rIVAqX__zSkc5AqMcwAketVzN9YNE8FHSu1im3qJTIeuwqI5JN5SPVsiX7L9nWXgWLRUf6sDhGV0aDKQ7ijXswAAAHJGBQAAAAAAAIJpZIJ2NIJpcIShI5NiiXNlY3AyNTZrMaECpA_KefrVAueFWiLLDZKQPPVOxMuxGogPrI474FaS-x2DdGNwgiMog3VkcIIjKA" - fi - exec ${CMD} fi @@ -248,10 +211,15 @@ fi # Prysm startup if [ "$CC_CLIENT" = "prysm" ]; then - # Get Prater SSZ if necessary - if [ "$NETWORK" = "prater" -o "$NETWORK" = "devnet" ]; then - if [ ! -f "/validators/genesis-prater.ssz" ]; then - wget "https://github.com/eth-clients/eth2-networks/raw/master/shared/prater/genesis.ssz" -O "/validators/genesis-prater.ssz" + # Grab the Holesky genesis state if needed + if [ "$NETWORK" = "holesky" ]; then + echo "Prysm has been configured to employ Holesky, with the genesis state being a prerequisite." + if [ ! -f "/ethclient/holesky-genesis.ssz" ]; then + echo "Downloading genesis..." + wget https://github.com/eth-clients/holesky/raw/main/custom_config_data/genesis.ssz -O /ethclient/holesky-genesis.ssz + echo "Download complete." + else + echo "The genesis state has already been downloaded, and the process will proceed accordingly." fi fi @@ -286,17 +254,12 @@ if [ "$CC_CLIENT" = "prysm" ]; then CMD="$CMD --disable-monitoring" fi - if [ ! -z "$CHECKPOINT_SYNC_URL" ]; then - CMD="$CMD --checkpoint-sync-url=$CHECKPOINT_SYNC_URL --genesis-beacon-api-url=$CHECKPOINT_SYNC_URL" + if [ "$NETWORK" = "holesky" ]; then + CMD="$CMD --genesis-state /ethclient/holesky-genesis.ssz" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --bootstrap-node=enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk \ - --bootstrap-node=enr:-Ly4QOS00hvPDddEcCpwA1cMykWNdJUK50AjbRgbLZ9FLPyBa78i0NwsQZLSV67elpJU71L1Pt9yqVmE1C6XeSI-LV8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhEDhTgGJc2VjcDI1NmsxoQIgMUMFvJGlr8dI1TEQy-K78u2TJE2rWvah9nGqLQCEGohzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA \ - --bootstrap-node=enr:-MK4QMlRAwM7E8YBo6fqP7M2IWrjFHP35uC4pWIttUioZWOiaTl5zgZF2OwSxswTQwpiVCnj4n56bhy4NJVHSe682VWGAYYDHkp4h2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhJK-7tSJc2VjcDI1NmsxoQLDq7LlsXIXAoJXPt7rqf6CES1Q40xPw2yW0RQ-Ly5S1YhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA \ - --bootstrap-node=enr:-MS4QCgiQisRxtzXKlBqq_LN1CRUSGIpDKO4e2hLQsffp0BrC3A7-8F6kxHYtATnzcrsVOr8gnwmBnHYTFvE9UmT-0EHh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhKXoVKCJc2VjcDI1NmsxoQK6J-uvOXMf44iIlilx1uPWGRrrTntjLEFR2u-lHcHofIhzeW5jbmV0c4gAAAAAAAAAAIN0Y3CCIyiDdWRwgiMo \ - --bootstrap-node=enr:-LK4QOQd-elgl_-dcSoUyHDbxBFNgQ687lzcKJiSBtpCyPQ0DinWSd2PKdJ4FHMkVLWD-oOquXPKSMtyoKpI0-Wo_38Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhES3DaqJc2VjcDI1NmsxoQNIf37JZx-Lc8pnfDwURcHUqLbIEZ1RoxjZuBRtEODseYN0Y3CCIyiDdWRwgiMo \ - --bootstrap-node=enr:-KG4QLNORYXUK76RPDI4rIVAqX__zSkc5AqMcwAketVzN9YNE8FHSu1im3qJTIeuwqI5JN5SPVsiX7L9nWXgWLRUf6sDhGV0aDKQ7ijXswAAAHJGBQAAAAAAAIJpZIJ2NIJpcIShI5NiiXNlY3AyNTZrMaECpA_KefrVAueFWiLLDZKQPPVOxMuxGogPrI474FaS-x2DdGNwgiMog3VkcIIjKA" + if [ ! -z "$CHECKPOINT_SYNC_URL" ]; then + CMD="$CMD --checkpoint-sync-url=$CHECKPOINT_SYNC_URL --genesis-beacon-api-url=$CHECKPOINT_SYNC_URL" fi exec ${CMD} @@ -339,8 +302,6 @@ if [ "$CC_CLIENT" = "teku" ]; then if [ ! -z "$CHECKPOINT_SYNC_URL" ]; then CMD="$CMD --checkpoint-sync-url=$CHECKPOINT_SYNC_URL" - elif [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --initial-state=/zhejiang/genesis.ssz" fi if [ "$ENABLE_BITFLY_NODE_METRICS" = "true" ]; then @@ -351,13 +312,6 @@ if [ "$CC_CLIENT" = "teku" ]; then CMD="env JAVA_OPTS=\"-Xmx${TEKU_JVM_HEAP_SIZE}m\" $CMD" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD \ - --Xee-version=kilnv2 \ - --p2p-discovery-bootnodes=enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk,enr:-Ly4QOS00hvPDddEcCpwA1cMykWNdJUK50AjbRgbLZ9FLPyBa78i0NwsQZLSV67elpJU71L1Pt9yqVmE1C6XeSI-LV8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhEDhTgGJc2VjcDI1NmsxoQIgMUMFvJGlr8dI1TEQy-K78u2TJE2rWvah9nGqLQCEGohzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MK4QMlRAwM7E8YBo6fqP7M2IWrjFHP35uC4pWIttUioZWOiaTl5zgZF2OwSxswTQwpiVCnj4n56bhy4NJVHSe682VWGAYYDHkp4h2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhJK-7tSJc2VjcDI1NmsxoQLDq7LlsXIXAoJXPt7rqf6CES1Q40xPw2yW0RQ-Ly5S1YhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA,enr:-MS4QCgiQisRxtzXKlBqq_LN1CRUSGIpDKO4e2hLQsffp0BrC3A7-8F6kxHYtATnzcrsVOr8gnwmBnHYTFvE9UmT-0EHh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhKXoVKCJc2VjcDI1NmsxoQK6J-uvOXMf44iIlilx1uPWGRrrTntjLEFR2u-lHcHofIhzeW5jbmV0c4gAAAAAAAAAAIN0Y3CCIyiDdWRwgiMo,enr:-LK4QOQd-elgl_-dcSoUyHDbxBFNgQ687lzcKJiSBtpCyPQ0DinWSd2PKdJ4FHMkVLWD-oOquXPKSMtyoKpI0-Wo_38Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDuKNezAAAAckYFAAAAAAAAgmlkgnY0gmlwhES3DaqJc2VjcDI1NmsxoQNIf37JZx-Lc8pnfDwURcHUqLbIEZ1RoxjZuBRtEODseYN0Y3CCIyiDdWRwgiMo,enr:-KG4QLNORYXUK76RPDI4rIVAqX__zSkc5AqMcwAketVzN9YNE8FHSu1im3qJTIeuwqI5JN5SPVsiX7L9nWXgWLRUf6sDhGV0aDKQ7ijXswAAAHJGBQAAAAAAAIJpZIJ2NIJpcIShI5NiiXNlY3AyNTZrMaECpA_KefrVAueFWiLLDZKQPPVOxMuxGogPrI474FaS-x2DdGNwgiMog3VkcIIjKA \ - --p2p-static-peers=/ip4/64.225.78.1/tcp/9000/p2p/16Uiu2HAkwbLbPXhPua835ErpoywHmgog4oydobcj3uKtww8UmW3b,/ip4/146.190.238.212/tcp/9000/p2p/16Uiu2HAm8bVLELrPczXQesjUYF8EetaKokgrdgZKj8814ZiGNggk,/ip4/165.232.84.160/tcp/9000/p2p/16Uiu2HAm7xM7nYVz3U9iWGH6NwExZTWtJGGeZ7ejQrcuUFUwtQmH,/ip4/68.183.13.170/udp/9000/p2p/16Uiu2HAmHXzTmWAtVexas5YskEpbcyDQ5Qck3jdLgErWumjKExUx" - fi - exec ${CMD} fi diff --git a/install/scripts/start-ec.sh b/install/scripts/start-ec.sh index de6a668c..4354ed69 100755 --- a/install/scripts/start-ec.sh +++ b/install/scripts/start-ec.sh @@ -52,18 +52,10 @@ if [ "$NETWORK" = "mainnet" ]; then GETH_NETWORK="" STADER_NETHERMIND_NETWORK="mainnet" BESU_NETWORK="--network=mainnet" -elif [ "$NETWORK" = "prater" ]; then - GETH_NETWORK="--goerli" - STADER_NETHERMIND_NETWORK="goerli" - BESU_NETWORK="--network=goerli" -elif [ "$NETWORK" = "devnet" ]; then - GETH_NETWORK="--goerli" - STADER_NETHERMIND_NETWORK="goerli" - BESU_NETWORK="--network=goerli" -elif [ "$NETWORK" = "zhejiang" ]; then - GETH_NETWORK="--networkid=1337803" - STADER_NETHERMIND_NETWORK="/zhejiang/nethermind.json" - BESU_NETWORK="--network-id=1337803" +elif [ "$NETWORK" = "holesky" ]; then + GETH_NETWORK="--holesky" + STADER_NETHERMIND_NETWORK="holesky" + BESU_NETWORK="--network=holesky" else echo "Unknown network [$NETWORK]" exit 1 @@ -90,29 +82,17 @@ if [ "$CLIENT" = "geth" ]; then DB_ENGINE="--db.engine=pebble" fi - # Use new state stoore scheme if requested - if [ "$STADER_GETH_ENABLE_PBSS" = "true" ]; then - CMD="$CMD --state.scheme=path" - fi - # Init the zhejiang data if necessary - if [ "$NETWORK" = "zhejiang" ]; then - if [ ! -f "/ethclient/zhejiang.init" ]; then - $PERF_PREFIX /usr/local/bin/geth $DB_ENGINE --datadir /ethclient/geth init /zhejiang/genesis.json - touch /ethclient/zhejiang.init - fi - fi # Check for the prune flag and run that first if requested if [ -f "/ethclient/prune.lock" ]; then - $PERF_PREFIX /usr/local/bin/geth $DB_ENGINE snapshot prune-state $GETH_NETWORK --datadir /ethclient/geth ; rm /ethclient/prune.lock + $PERF_PREFIX /usr/local/bin/geth snapshot prune-state $GETH_NETWORK --datadir /ethclient/geth ; rm /ethclient/prune.lock # Run Geth normally else CMD="$PERF_PREFIX /usr/local/bin/geth $GETH_NETWORK \ - ${DB_ENGINE} \ --datadir /ethclient/geth \ --http \ --http.addr 0.0.0.0 \ @@ -134,6 +114,11 @@ if [ "$CLIENT" = "geth" ]; then CMD="$CMD --ethstats $ETHSTATS_LABEL:$ETHSTATS_LOGIN" fi + # Use new state stoore scheme if requested + if [ "$STADER_GETH_ENABLE_PBSS" = "true" ]; then + CMD="$CMD --state.scheme=path" + fi + if [ ! -z "$EC_CACHE_SIZE" ]; then CMD="$CMD --cache $EC_CACHE_SIZE" fi @@ -150,9 +135,6 @@ if [ "$CLIENT" = "geth" ]; then CMD="$CMD --port $EC_P2P_PORT" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --syncmode=full --bootnodes enode://691c66d0ce351633b2ef8b4e4ef7db9966915ca0937415bd2b408df22923f274873b4d4438929e029a13a680140223dcf701cabe22df7d8870044321022dfefa@64.225.78.1:30303,enode://89347b9461727ee1849256d78e84d5c86cc3b4c6c5347650093982b726d71f3d08027e280b399b7b6604ceeda863283dcfe1a01e93728b4883114e9f8c7cc8ef@146.190.238.212:30303,enode://c2892072efe247f21ed7ebea6637ade38512a0ae7c5cffa1bf0786d5e3be1e7f40ff71252a21b36aa9de54e49edbcfc6962a98032adadfa29c8524262e484ad3@165.232.84.160:30303,enode://71e862580d3177a99e9837bd9e9c13c83bde63d3dba1d5cea18e89eb2a17786bbd47a8e7ae690e4d29763b55c205af13965efcaf6105d58e118a5a8ed2b0f6d0@68.183.13.170:30303,enode://2f6cf7f774e4507e7c1b70815f9c0ccd6515ee1170c991ce3137002c6ba9c671af38920f5b8ab8a215b62b3b50388030548f1d826cb6c2b30c0f59472804a045@161.35.147.98:30303" - fi if [ ! -z "$TX_FEE_CAP" ]; then CMD="$CMD --rpc.txfeecap $TX_FEE_CAP" @@ -239,9 +221,6 @@ if [ "$CLIENT" = "nethermind" ]; then if [ "$ENABLE_METRICS" = "true" ]; then CMD="$CMD --Metrics.Enabled true --Metrics.ExposePort $EC_METRICS_PORT" - if [ "$NETWORK" == "prater" ]; then - CMD="$CMD --Metrics.PushGatewayUrl=\"\"" - fi fi if [ ! -z "$EC_P2P_PORT" ]; then @@ -258,11 +237,8 @@ if [ "$CLIENT" = "nethermind" ]; then CMD="$CMD --Pruning.CacheMb $STADER_NETHERMIND_PRUNE_MEM_SIZE" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --Sync.SnapSync false" - else - CMD="$CMD --Sync.SnapSync true" - fi + + CMD="$CMD --Sync.SnapSync true" exec ${CMD} @@ -327,11 +303,8 @@ if [ "$CLIENT" = "besu" ]; then CMD="$CMD --bonsai-maximum-back-layers-to-load=$BESU_MAX_BACK_LAYERS" fi - if [ "$NETWORK" = "zhejiang" ]; then - CMD="$CMD --genesis-file=/zhejiang/besu.json --bootnodes=enode://691c66d0ce351633b2ef8b4e4ef7db9966915ca0937415bd2b408df22923f274873b4d4438929e029a13a680140223dcf701cabe22df7d8870044321022dfefa@64.225.78.1:30303,enode://89347b9461727ee1849256d78e84d5c86cc3b4c6c5347650093982b726d71f3d08027e280b399b7b6604ceeda863283dcfe1a01e93728b4883114e9f8c7cc8ef@146.190.238.212:30303,enode://c2892072efe247f21ed7ebea6637ade38512a0ae7c5cffa1bf0786d5e3be1e7f40ff71252a21b36aa9de54e49edbcfc6962a98032adadfa29c8524262e484ad3@165.232.84.160:30303,enode://71e862580d3177a99e9837bd9e9c13c83bde63d3dba1d5cea18e89eb2a17786bbd47a8e7ae690e4d29763b55c205af13965efcaf6105d58e118a5a8ed2b0f6d0@68.183.13.170:30303,enode://2f6cf7f774e4507e7c1b70815f9c0ccd6515ee1170c991ce3137002c6ba9c671af38920f5b8ab8a215b62b3b50388030548f1d826cb6c2b30c0f59472804a045@161.35.147.98:30303" - else - CMD="$CMD --fast-sync-min-peers=3 --sync-mode=X_CHECKPOINT" - fi + + CMD="$CMD --fast-sync-min-peers=3 --sync-mode=X_CHECKPOINT" if [ "$BESU_JVM_HEAP_SIZE" -gt "0" ]; then CMD="env JAVA_OPTS=\"-Xmx${BESU_JVM_HEAP_SIZE}m\" $CMD" diff --git a/install/scripts/start-mev-boost.sh b/install/scripts/start-mev-boost.sh index 5f1c7331..210c5366 100755 --- a/install/scripts/start-mev-boost.sh +++ b/install/scripts/start-mev-boost.sh @@ -21,10 +21,10 @@ # Set up the network-based flag if [ "$NETWORK" = "mainnet" ]; then MEV_NETWORK="mainnet" -elif [ "$NETWORK" = "prater" ]; then - MEV_NETWORK="goerli" elif [ "$NETWORK" = "devnet" ]; then - MEV_NETWORK="goerli" + MEV_NETWORK="holesky" +elif [ "$NETWORK" = "holesky" ]; then + MEV_NETWORK="holesky" else echo "Unknown network [$NETWORK]" exit 1 diff --git a/install/scripts/start-vc.sh b/install/scripts/start-vc.sh index cd210c64..686b9a6e 100755 --- a/install/scripts/start-vc.sh +++ b/install/scripts/start-vc.sh @@ -27,21 +27,11 @@ if [ "$NETWORK" = "mainnet" ]; then LODESTAR_NETWORK="mainnet" PRYSM_NETWORK="--mainnet" TEKU_NETWORK="mainnet" -elif [ "$NETWORK" = "prater" ]; then - LH_NETWORK="prater" - LODESTAR_NETWORK="goerli" - PRYSM_NETWORK="--prater" - TEKU_NETWORK="prater" -elif [ "$NETWORK" = "devnet" ]; then - LH_NETWORK="prater" - LODESTAR_NETWORK="goerli" - PRYSM_NETWORK="--prater" - TEKU_NETWORK="prater" -elif [ "$NETWORK" = "zhejiang" ]; then - LH_NETWORK="" - LODESTAR_NETWORK="" - PRYSM_NETWORK="--chain-config-file=/zhejiang/config.yaml" - TEKU_NETWORK="/zhejiang/config.yaml" +elif [ "$NETWORK" = "holesky" ]; then + LH_NETWORK="holesky" + LODESTAR_NETWORK="holesky" + PRYSM_NETWORK="--holesky" + TEKU_NETWORK="holesky" else echo "Unknown network [$NETWORK]" exit 1 @@ -56,13 +46,6 @@ fi # Lighthouse startup if [ "$CC_CLIENT" = "lighthouse" ]; then - - if [ "$NETWORK" = "zhejiang" ]; then - LH_NETWORK_ARG="--testnet-dir=/zhejiang" - else - LH_NETWORK_ARG="--network $LH_NETWORK" - fi - # Set up the CC + fallback string CC_URL_STRING=$CC_API_ENDPOINT if [ ! -z "$FALLBACK_CC_API_ENDPOINT" ]; then @@ -70,7 +53,7 @@ if [ "$CC_CLIENT" = "lighthouse" ]; then fi CMD="/usr/local/bin/lighthouse validator \ - $LH_NETWORK_ARG \ + --network $LH_NETWORK \ --datadir /validators/lighthouse \ --init-slashing-protection \ --logfile-max-number 0 \ @@ -101,12 +84,6 @@ fi # Lodestar startup if [ "$CC_CLIENT" = "lodestar" ]; then - if [ "$NETWORK" = "zhejiang" ]; then - LODESTAR_NETWORK_ARG="--paramsFile=/zhejiang/config.yaml" - else - LODESTAR_NETWORK_ARG="--network $LODESTAR_NETWORK" - fi - # Remove any lock files that were left over accidentally after an unclean shutdown find /validators/lodestar/validators -name voting-keystore.json.lock -delete @@ -117,7 +94,7 @@ if [ "$CC_CLIENT" = "lodestar" ]; then fi CMD="/usr/app/node_modules/.bin/lodestar validator \ - $LODESTAR_NETWORK_ARG \ + --network $LODESTAR_NETWORK \ --dataDir /validators/lodestar \ --beacon-nodes $CC_URL_STRING \ $FALLBACK_CC_STRING \ @@ -127,7 +104,7 @@ if [ "$CC_CLIENT" = "lodestar" ]; then $VC_ADDITIONAL_FLAGS" if [ "$DOPPELGANGER_DETECTION" = "true" ]; then - CMD="$CMD --doppelgangerProtectionEnabled" + CMD="$CMD --doppelgangerProtection" fi if [ ! -z "$MEV_BOOST_URL" ]; then diff --git a/install/templates/eth1.tmpl b/install/templates/eth1.tmpl index bdee25e2..4566d689 100644 --- a/install/templates/eth1.tmpl +++ b/install/templates/eth1.tmpl @@ -37,7 +37,6 @@ services: - eth1clientdata:/ethclient - ${STADER_FOLDER}/scripts:/setup:ro - ${STADER_DATA_FOLDER}/secrets:/secrets - - ${STADER_FOLDER}/zhejiang:/zhejiang networks: - net environment: diff --git a/install/templates/eth2.tmpl b/install/templates/eth2.tmpl index 3bc57d9c..7dc14dae 100644 --- a/install/templates/eth2.tmpl +++ b/install/templates/eth2.tmpl @@ -37,7 +37,6 @@ services: - ${STADER_DATA_FOLDER}/secrets:/secrets:ro - eth2clientdata:/ethclient - ${STADER_FOLDER}/scripts:/setup:ro - - ${STADER_FOLDER}/zhejiang:/zhejiang networks: - net environment: diff --git a/install/templates/validator.tmpl b/install/templates/validator.tmpl index a10d2cca..8680320f 100644 --- a/install/templates/validator.tmpl +++ b/install/templates/validator.tmpl @@ -35,7 +35,6 @@ services: - ${STADER_DATA_FOLDER}/validators:/validators - ${STADER_FOLDER}/scripts:/setup:ro - ${STADER_FOLDER}/addons:/addons - - ${STADER_FOLDER}/zhejiang:/zhejiang networks: - net environment: diff --git a/shared/services/beacon/client/std-http-client.go b/shared/services/beacon/client/std-http-client.go index d0e5e664..d5725622 100644 --- a/shared/services/beacon/client/std-http-client.go +++ b/shared/services/beacon/client/std-http-client.go @@ -436,7 +436,7 @@ func (c *StandardHttpClient) GetExitDomainData(domainType []byte, network config if network == config.Network_Mainnet { capellaForkVersion = eth2.MainnetCapellaForkVersion } else { - capellaForkVersion = eth2.GoerliCapellaForkVersion + capellaForkVersion = eth2.HoleskyCapellaForkVersion } decodedForkVersion, err := hexutil.Decode(capellaForkVersion) diff --git a/shared/services/config/besu-params.go b/shared/services/config/besu-params.go index 656c58a6..0d0dfb96 100644 --- a/shared/services/config/besu-params.go +++ b/shared/services/config/besu-params.go @@ -119,10 +119,8 @@ func NewBesuConfig(cfg *StaderConfig) *BesuConfig { Description: "The tag name of the Besu container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: besuTagProd, - config.Network_Prater: besuTagTest, - config.Network_Devnet: besuTagTest, - config.Network_Zhejiang: besuTagTest, + config.Network_Mainnet: besuTagProd, + config.Network_Holesky: besuTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth1}, EnvironmentVariables: []string{"EC_CONTAINER_TAG"}, diff --git a/shared/services/config/external-configs.go b/shared/services/config/external-configs.go index 2ee2c78d..2471606b 100644 --- a/shared/services/config/external-configs.go +++ b/shared/services/config/external-configs.go @@ -215,10 +215,8 @@ func NewExternalLighthouseConfig(cfg *StaderConfig) *ExternalLighthouseConfig { Description: "The tag name of the Lighthouse container you want to use from Docker Hub. This will be used for the Validator Client that Stader manages with your validator keys.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: getLighthouseTagProd(), - config.Network_Prater: getLighthouseTagTest(), - config.Network_Devnet: getLighthouseTagTest(), - config.Network_Zhejiang: getLighthouseTagTest(), + config.Network_Mainnet: getLighthouseTagProd(), + config.Network_Holesky: getLighthouseTagTest(), }, AffectsContainers: []config.ContainerID{config.ContainerID_Validator}, EnvironmentVariables: []string{"VC_CONTAINER_TAG"}, @@ -300,10 +298,8 @@ func NewExternalPrysmConfig(cfg *StaderConfig) *ExternalPrysmConfig { Description: "The tag name of the Prysm validator container you want to use from Docker Hub. This will be used for the Validator Client that Stader manages with your validator keys.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: getPrysmVcProdTag(), - config.Network_Prater: getPrysmVcTestTag(), - config.Network_Devnet: getPrysmVcTestTag(), - config.Network_Zhejiang: getLighthouseTagTest(), + config.Network_Mainnet: getPrysmVcProdTag(), + config.Network_Holesky: getPrysmVcTestTag(), }, AffectsContainers: []config.ContainerID{config.ContainerID_Validator}, EnvironmentVariables: []string{"VC_CONTAINER_TAG"}, @@ -374,10 +370,8 @@ func NewExternalNimbusConfig(cfg *StaderConfig) *ExternalNimbusConfig { Description: "The tag name of the Nimbus validator container you want to use from Docker Hub. This will be used for the Validator Client that Stader manages with your validator keys.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: nimbusVcTagProd, - config.Network_Prater: nimbusVcTagTest, - config.Network_Devnet: nimbusVcTagTest, - config.Network_Zhejiang: nimbusVcTagTest, + config.Network_Mainnet: nimbusVcTagProd, + config.Network_Holesky: nimbusVcTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Validator}, EnvironmentVariables: []string{"VC_CONTAINER_TAG"}, @@ -435,10 +429,8 @@ func NewExternalTekuConfig(cfg *StaderConfig) *ExternalTekuConfig { Description: "The tag name of the Teku container you want to use from Docker Hub. This will be used for the Validator Client that Stader manages with your validator keys.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: tekuTagProd, - config.Network_Prater: tekuTagTest, - config.Network_Devnet: tekuTagTest, - config.Network_Zhejiang: tekuTagTest, + config.Network_Mainnet: tekuTagProd, + config.Network_Holesky: tekuTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Validator}, EnvironmentVariables: []string{"VC_CONTAINER_TAG"}, @@ -520,8 +512,7 @@ func NewExternalLodestarConfig(cfg *StaderConfig) *ExternalLodestarConfig { Type: config.ParameterType_String, Default: map[config.Network]interface{}{ config.Network_Mainnet: lodestarTagProd, - config.Network_Prater: lodestarTagTest, - config.Network_Devnet: lodestarTagTest, + config.Network_Holesky: lodestarTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Validator}, EnvironmentVariables: []string{"VC_CONTAINER_TAG"}, diff --git a/shared/services/config/geth-params.go b/shared/services/config/geth-params.go index 0a920bec..5b6213cd 100644 --- a/shared/services/config/geth-params.go +++ b/shared/services/config/geth-params.go @@ -123,10 +123,8 @@ func NewGethConfig(cfg *StaderConfig) *GethConfig { Description: "The tag name of the Geth container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: gethTagProd, - config.Network_Prater: gethTagTest, - config.Network_Devnet: gethTagTest, - config.Network_Zhejiang: gethTagTest, + config.Network_Mainnet: gethTagProd, + config.Network_Holesky: gethTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth1}, EnvironmentVariables: []string{"EC_CONTAINER_TAG"}, diff --git a/shared/services/config/lighthouse-config.go b/shared/services/config/lighthouse-config.go index a885c19a..d1e33583 100644 --- a/shared/services/config/lighthouse-config.go +++ b/shared/services/config/lighthouse-config.go @@ -25,10 +25,10 @@ import ( ) const ( - lighthouseTagPortableTest string = "sigp/lighthouse:v5.1.0" - lighthouseTagPortableProd string = "sigp/lighthouse:v5.1.0" - lighthouseTagModernTest string = "sigp/lighthouse:v5.1.0-modern" - lighthouseTagModernProd string = "sigp/lighthouse:v5.1.0-modern" + lighthouseTagPortableTest string = "sigp/lighthouse:v5.1.2" + lighthouseTagPortableProd string = "sigp/lighthouse:v5.1.2" + lighthouseTagModernTest string = "sigp/lighthouse:v5.1.2-modern" + lighthouseTagModernProd string = "sigp/lighthouse:v5.1.2-modern" defaultLhMaxPeers uint16 = 80 ) @@ -75,10 +75,8 @@ func NewLighthouseConfig(cfg *StaderConfig) *LighthouseConfig { Description: "The tag name of the Lighthouse container you want to use from Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: getLighthouseTagProd(), - config.Network_Prater: getLighthouseTagTest(), - config.Network_Devnet: getLighthouseTagTest(), - config.Network_Zhejiang: getLighthouseTagTest(), + config.Network_Mainnet: getLighthouseTagProd(), + config.Network_Holesky: getLighthouseTagTest(), }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth2, config.ContainerID_Validator}, EnvironmentVariables: []string{"BN_CONTAINER_TAG", "VC_CONTAINER_TAG"}, diff --git a/shared/services/config/lodestar-config.go b/shared/services/config/lodestar-config.go index 4c3f99ad..c1d3b191 100644 --- a/shared/services/config/lodestar-config.go +++ b/shared/services/config/lodestar-config.go @@ -24,8 +24,8 @@ import ( ) const ( - lodestarTagTest string = "chainsafe/lodestar:v1.16.0" - lodestarTagProd string = "chainsafe/lodestar:v1.16.0" + lodestarTagTest string = "chainsafe/lodestar:v1.17.0" + lodestarTagProd string = "chainsafe/lodestar:v1.17.0" defaultLodestarMaxPeers uint16 = 50 ) @@ -72,10 +72,8 @@ func NewLodestarConfig(cfg *StaderConfig) *LodestarConfig { Description: "The tag name of the Lodestar container you want to use from Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: lodestarTagProd, - config.Network_Prater: lodestarTagTest, - config.Network_Devnet: lodestarTagTest, - config.Network_Zhejiang: lodestarTagTest, + config.Network_Mainnet: lodestarTagProd, + config.Network_Holesky: lodestarTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth2, config.ContainerID_Validator}, EnvironmentVariables: []string{"BN_CONTAINER_TAG", "VC_CONTAINER_TAG"}, diff --git a/shared/services/config/mev-boost-config.go b/shared/services/config/mev-boost-config.go index 1638e9a1..c524fae7 100644 --- a/shared/services/config/mev-boost-config.go +++ b/shared/services/config/mev-boost-config.go @@ -418,8 +418,7 @@ func createDefaultRelays() []config.MevRelay { Description: "Flashbots is the developer of MEV-Boost, and one of the best-known and most trusted relays in the space.", Urls: map[config.Network]string{ config.Network_Mainnet: "https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net?id=staderlabs", - config.Network_Prater: "https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net?id=staderlabs", - config.Network_Devnet: "https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net?id=staderlabs", + config.Network_Holesky: "https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@boost-relay-holesky.flashbots.net?id=staderlabs", }, Regulated: true, NoSandwiching: false, @@ -432,8 +431,6 @@ func createDefaultRelays() []config.MevRelay { Description: "Select this to enable the \"max profit\" relay from bloXroute.", Urls: map[config.Network]string{ config.Network_Mainnet: "https://0x8b5d2e73e2a3a55c6c87b8b6eb92e0149a125c852751db1422fa951e42a09b82c142c3ea98d0d9930b056a3bc9896b8f@bloxroute.max-profit.blxrbdn.com?id=staderlabs", - config.Network_Prater: "https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.max-profit.builder.goerli.blxrbdn.com?id=staderlabs", - config.Network_Devnet: "https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.max-profit.builder.goerli.blxrbdn.com?id=staderlabs", }, Regulated: true, NoSandwiching: false, @@ -445,6 +442,7 @@ func createDefaultRelays() []config.MevRelay { Description: "Select this to enable the \"regulated\" relay from bloXroute.", Urls: map[config.Network]string{ config.Network_Mainnet: "https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?id=staderlabs", + config.Network_Holesky: "https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.holesky.blxrbdn.com?id=staderlabs", }, Regulated: true, NoSandwiching: false, @@ -457,8 +455,7 @@ func createDefaultRelays() []config.MevRelay { Description: "Eden Network is the home of Eden Relay, a block building hub focused on optimising block rewards for validators.", Urls: map[config.Network]string{ config.Network_Mainnet: "https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io?id=staderlabs", - config.Network_Prater: "https://0xaa1488eae4b06a1fff840a2b6db167afc520758dc2c8af0dfb57037954df3431b747e2f900fe8805f05d635e9a29717b@relay-goerli.edennetwork.io?id=staderlabs", - config.Network_Devnet: "https://0xaa1488eae4b06a1fff840a2b6db167afc520758dc2c8af0dfb57037954df3431b747e2f900fe8805f05d635e9a29717b@relay-goerli.edennetwork.io?id=staderlabs", + config.Network_Holesky: "https://0xb1d229d9c21298a87846c7022ebeef277dfc321fe674fa45312e20b5b6c400bfde9383f801848d7837ed5fc449083a12@relay-holesky.edennetwork.io?id=staderlabs", }, Regulated: true, NoSandwiching: false, @@ -471,8 +468,7 @@ func createDefaultRelays() []config.MevRelay { Description: "The ultra sound relay is a credibly-neutral and permissionless relay — a public good from the ultrasound.money team.", Urls: map[config.Network]string{ config.Network_Mainnet: "https://0xa1559ace749633b997cb3fdacffb890aeebdb0f5a3b6aaa7eeeaf1a38af0a8fe88b9e4b1f61f236d2e64d95733327a62@relay.ultrasound.money?id=staderlabs", - config.Network_Prater: "https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money?id=staderlabs", - config.Network_Devnet: "https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money?id=staderlabs", + config.Network_Holesky: "https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money?id=staderlabs", }, Regulated: false, NoSandwiching: false, @@ -484,8 +480,7 @@ func createDefaultRelays() []config.MevRelay { Description: "The Aestus MEV-Boost Relay is an independent and non-censoring relay. It is committed to neutrality and the development of a healthy MEV-Boost ecosystem.", Urls: map[config.Network]string{ config.Network_Mainnet: "https://0xa15b52576bcbf1072f4a011c0f99f9fb6c66f3e1ff321f11f461d15e31b1cb359caa092c71bbded0bae5b5ea401aab7e@aestus.live?id=staderlabs", - config.Network_Prater: "https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7c0406754376c2c8285a36c630346aa5c5f833@goerli.aestus.live?id=staderlabs", - config.Network_Devnet: "https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7c0406754376c2c8285a36c630346aa5c5f833@goerli.aestus.live?id=staderlabs", + config.Network_Holesky: "https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7c0406754376c2c8285a36c630346aa5c5f833@holesky.aestus.live?id=staderlabs", }, Regulated: false, NoSandwiching: false, @@ -497,8 +492,6 @@ func createDefaultRelays() []config.MevRelay { Description: "Agnostic Relay is an open-source MEV Boost relay available to anyone, anywhere in the world, without prejudice or privilege. It is an ideal relay for block producers and block builders trying to provide neutral features.", Urls: map[config.Network]string{ config.Network_Mainnet: "https://0xa7ab7a996c8584251c8f925da3170bdfd6ebc75d50f5ddc4050a6fdc77f2a3b5fce2cc750d0865e05d7228af97d69561@agnostic-relay.net?id=staderlabs", - config.Network_Prater: "https://0xa6bcad37b5d647152a93c2807d8a56055f1e0d7480eb6505d46edc21593e400f0f13738bf2e892f85946234629a3036a@goerli.agnostic-relay.net?id=staderlabs", - config.Network_Devnet: "https://0xa6bcad37b5d647152a93c2807d8a56055f1e0d7480eb6505d46edc21593e400f0f13738bf2e892f85946234629a3036a@goerli.agnostic-relay.net?id=staderlabs", }, Regulated: true, NoSandwiching: false, @@ -543,19 +536,20 @@ func generateProfileParameter(id string, relays []config.MevRelay, regulated boo } mainnetDescription += strings.Join(mainnetRelays, ", ") - // Generate the Prater description - praterRelays := []string{} - praterDescription := description + "\n\nRelays:\n" + // Generate the holesky description + holeskyRelays := []string{} + holeskyDescription := description + "\n\nRelays:\n" for _, relay := range relays { - _, exists := relay.Urls[config.Network_Prater] + _, exists := relay.Urls[config.Network_Holesky] if !exists { continue } if relay.Regulated == regulated && relay.NoSandwiching == noSandwiching { - praterRelays = append(praterRelays, relay.Name) + holeskyRelays = append(holeskyRelays, relay.Name) } } - praterDescription += strings.Join(praterRelays, ", ") + + holeskyDescription += strings.Join(holeskyRelays, ", ") return config.Parameter{ ID: id, @@ -569,7 +563,7 @@ func generateProfileParameter(id string, relays []config.MevRelay, regulated boo OverwriteOnUpgrade: false, DescriptionsByNetwork: map[config.Network]string{ config.Network_Mainnet: mainnetDescription, - config.Network_Prater: praterDescription, + config.Network_Holesky: holeskyDescription, }, } } diff --git a/shared/services/config/nethermind-params.go b/shared/services/config/nethermind-params.go index f282683d..c4cae358 100644 --- a/shared/services/config/nethermind-params.go +++ b/shared/services/config/nethermind-params.go @@ -151,10 +151,8 @@ func NewNethermindConfig(cfg *StaderConfig) *NethermindConfig { Description: "The tag name of the Nethermind container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: nethermindTagProd, - config.Network_Prater: nethermindTagTest, - config.Network_Devnet: nethermindTagTest, - config.Network_Zhejiang: nethermindTagTest, + config.Network_Mainnet: nethermindTagProd, + config.Network_Holesky: nethermindTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth1}, EnvironmentVariables: []string{"EC_CONTAINER_TAG"}, diff --git a/shared/services/config/nimbus-config.go b/shared/services/config/nimbus-config.go index 62cf5ef6..7afa2bfa 100644 --- a/shared/services/config/nimbus-config.go +++ b/shared/services/config/nimbus-config.go @@ -27,12 +27,12 @@ import ( const ( // Testnet - nimbusBnTagTest string = "statusim/nimbus-eth2:multiarch-v24.2.2" - nimbusVcTagTest string = "statusim/nimbus-validator-client:multiarch-v24.2.2" + nimbusBnTagTest string = "statusim/nimbus-eth2:multiarch-v24.3.2" + nimbusVcTagTest string = "statusim/nimbus-validator-client:multiarch-v24.3.2" // Mainnet - nimbusBnTagProd string = "statusim/nimbus-eth2:multiarch-v24.2.2" - nimbusVcTagProd string = "statusim/nimbus-validator-client:multiarch-v24.2.2" + nimbusBnTagProd string = "statusim/nimbus-eth2:multiarch-v24.3.2" + nimbusVcTagProd string = "statusim/nimbus-validator-client:multiarch-v24.3.2" defaultNimbusMaxPeersArm uint16 = 100 defaultNimbusMaxPeersAmd uint16 = 160 @@ -87,10 +87,8 @@ func NewNimbusConfig(cfg *StaderConfig) *NimbusConfig { Description: "The tag name of the Nimbus Beacon Node container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: nimbusBnTagProd, - config.Network_Prater: nimbusBnTagTest, - config.Network_Devnet: nimbusBnTagTest, - config.Network_Zhejiang: nimbusBnTagTest, + config.Network_Mainnet: nimbusBnTagProd, + config.Network_Holesky: nimbusBnTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth2}, EnvironmentVariables: []string{"BN_CONTAINER_TAG"}, @@ -104,10 +102,8 @@ func NewNimbusConfig(cfg *StaderConfig) *NimbusConfig { Description: "The tag name of the Nimbus Validator Client container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: nimbusVcTagProd, - config.Network_Prater: nimbusVcTagTest, - config.Network_Devnet: nimbusVcTagTest, - config.Network_Zhejiang: nimbusVcTagTest, + config.Network_Mainnet: nimbusVcTagProd, + config.Network_Holesky: nimbusVcTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Validator}, EnvironmentVariables: []string{"VC_CONTAINER_TAG"}, diff --git a/shared/services/config/prysm-config.go b/shared/services/config/prysm-config.go index 61f4a7bb..49083bdf 100644 --- a/shared/services/config/prysm-config.go +++ b/shared/services/config/prysm-config.go @@ -27,11 +27,11 @@ import ( ) const ( - prysmBnTagTest string = "staderlabs/prysm:v5.0.1" - prysmVcTagTest string = "staderlabs/prysm:v5.0.1" + prysmBnTagTest string = "staderlabs/prysm:v5.0.2" + prysmVcTagTest string = "staderlabs/prysm:v5.0.2" - prysmBnTagProd string = "staderlabs/prysm:v5.0.1" - prysmVcTagProd string = "staderlabs/prysm:v5.0.1" + prysmBnTagProd string = "staderlabs/prysm:v5.0.2" + prysmVcTagProd string = "staderlabs/prysm:v5.0.2" defaultPrysmRpcPort uint16 = 5053 defaultPrysmOpenRpcPort bool = false @@ -116,10 +116,8 @@ func NewPrysmConfig(cfg *StaderConfig) *PrysmConfig { Description: "The tag name of the Prysm Beacon Node container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: getPrysmBnProdTag(), - config.Network_Prater: getPrysmBnTestTag(), - config.Network_Devnet: getPrysmBnTestTag(), - config.Network_Zhejiang: getPrysmBnTestTag(), + config.Network_Mainnet: getPrysmBnProdTag(), + config.Network_Holesky: getPrysmBnTestTag(), }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth2}, EnvironmentVariables: []string{"BN_CONTAINER_TAG"}, @@ -133,10 +131,8 @@ func NewPrysmConfig(cfg *StaderConfig) *PrysmConfig { Description: "The tag name of the Prysm Validator Client container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: getPrysmVcProdTag(), - config.Network_Prater: getPrysmVcTestTag(), - config.Network_Devnet: getPrysmVcTestTag(), - config.Network_Zhejiang: getPrysmVcTestTag(), + config.Network_Mainnet: getPrysmVcProdTag(), + config.Network_Holesky: getPrysmVcTestTag(), }, AffectsContainers: []config.ContainerID{config.ContainerID_Validator}, EnvironmentVariables: []string{"VC_CONTAINER_TAG"}, diff --git a/shared/services/config/stader-config.go b/shared/services/config/stader-config.go index fa7d4cd2..999f2d3e 100644 --- a/shared/services/config/stader-config.go +++ b/shared/services/config/stader-config.go @@ -998,20 +998,16 @@ func (cfg *StaderConfig) GenerateEnvironmentVariables() map[string]string { // MEV-Boost if cfg.EnableMevBoost.Value == true { - if cfg.StaderNode.Network.Value.(config.Network) == config.Network_Zhejiang { - // Disable MEV-Boost on Zhejiang - cfg.EnableMevBoost.Value = false - } else { - config.AddParametersToEnvVars(cfg.MevBoost.GetParameters(), envVars) - if cfg.MevBoost.Mode.Value == config.Mode_Local { - envVars[mevBoostRelaysEnvVar] = cfg.MevBoost.GetRelayString() - envVars[mevBoostUrlEnvVar] = fmt.Sprintf("http://%s:%d", MevBoostContainerName, cfg.MevBoost.Port.Value) - - // Handle open API port - if cfg.MevBoost.OpenRpcPort.Value == true { - port := cfg.MevBoost.Port.Value.(uint16) - envVars["MEV_BOOST_OPEN_API_PORT"] = fmt.Sprintf("\"%d:%d/tcp\"", port, port) - } + config.AddParametersToEnvVars(cfg.MevBoost.GetParameters(), envVars) + + if cfg.MevBoost.Mode.Value == config.Mode_Local { + envVars[mevBoostRelaysEnvVar] = cfg.MevBoost.GetRelayString() + envVars[mevBoostUrlEnvVar] = fmt.Sprintf("http://%s:%d", MevBoostContainerName, cfg.MevBoost.Port.Value) + + // Handle open API port + if cfg.MevBoost.OpenRpcPort.Value == true { + port, _ := cfg.MevBoost.Port.Value.(uint16) + envVars["MEV_BOOST_OPEN_API_PORT"] = fmt.Sprintf("\"%d:%d/tcp\"", port, port) } } } @@ -1104,25 +1100,20 @@ func (cfg *StaderConfig) Validate() []string { // Ensure there's a MEV-boost URL if !cfg.IsNativeMode && cfg.EnableMevBoost.Value == true { - if cfg.StaderNode.Network.Value.(config.Network) == config.Network_Zhejiang { - // Disable MEV-Boost on Zhejiang - cfg.EnableMevBoost.Value = false - } else { - switch cfg.MevBoost.Mode.Value.(config.Mode) { - case config.Mode_Local: - // In local MEV-boost mode, the user has to have at least one relay - relays := cfg.MevBoost.GetEnabledMevRelays() - if len(relays) == 0 { - errors = append(errors, "You have MEV-boost enabled in local mode but don't have any profiles or relays enabled. Please select at least one profile or relay to use MEV-boost.") - } - case config.Mode_External: - // In external MEV-boost mode, the user has to have an external URL if they're running Docker mode - if cfg.MevBoost.ExternalUrl.Value.(string) == "" { - errors = append(errors, "You have MEV-boost enabled in external mode but don't have a URL set. Please enter the external MEV-boost server URL to use it.") - } - default: - errors = append(errors, "You do not have a MEV-Boost mode configured. You must select a mode in the `stader-cli service config` UI.\nNote that MEV-Boost will be required in a future update, at which point you can no longer disable it.") + switch cfg.MevBoost.Mode.Value.(config.Mode) { + case config.Mode_Local: + // In local MEV-boost mode, the user has to have at least one relay + relays := cfg.MevBoost.GetEnabledMevRelays() + if len(relays) == 0 { + errors = append(errors, "You have MEV-boost enabled in local mode but don't have any profiles or relays enabled. Please select at least one profile or relay to use MEV-boost.") + } + case config.Mode_External: + // In external MEV-boost mode, the user has to have an external URL if they're running Docker mode + if cfg.MevBoost.ExternalUrl.Value.(string) == "" { + errors = append(errors, "You have MEV-boost enabled in external mode but don't have a URL set. Please enter the external MEV-boost server URL to use it.") } + case config.Mode_Unknown: + errors = append(errors, "You do not have a MEV-Boost mode configured. You must select a mode in the `stader-cli service config` UI.\nNote that MEV-Boost will be required in a future update, at which point you can no longer disable it.") } } diff --git a/shared/services/config/stadernode-config.go b/shared/services/config/stadernode-config.go index 914e9b83..aadcfcbc 100644 --- a/shared/services/config/stadernode-config.go +++ b/shared/services/config/stadernode-config.go @@ -173,7 +173,7 @@ func NewStadernodeConfig(cfg *StaderConfig) *StaderNodeConfig { Network: config.Parameter{ ID: NetworkID, Name: "Network", - Description: "The Ethereum network you want to use - select Goerli Testnet to practice with Goerli ETH, or Mainnet to stake on the real network using real ETH.", + Description: "The Ethereum network you want to use - select Holesky Testnet to practice with Holesky ETH, or Mainnet to stake on the real network using real ETH.", Type: config.ParameterType_Choice, Default: map[config.Network]interface{}{config.Network_All: config.Network_Mainnet}, AffectsContainers: []config.ContainerID{config.ContainerID_Api, config.ContainerID_Node, config.ContainerID_Guardian, config.ContainerID_Eth1, config.ContainerID_Eth2, config.ContainerID_Validator}, @@ -233,49 +233,37 @@ func NewStadernodeConfig(cfg *StaderConfig) *StaderNodeConfig { beaconChainUrl: map[config.Network]string{ config.Network_Mainnet: "https://beaconcha.in", - config.Network_Prater: "https://prater.beaconcha.in", - config.Network_Devnet: "https://prater.beaconcha.in", + config.Network_Holesky: "https://holesky.beaconcha.in", }, txWatchUrl: map[config.Network]string{ config.Network_Mainnet: "https://etherscan.io/tx", - config.Network_Prater: "https://goerli.etherscan.io/tx", - config.Network_Devnet: "https://goerli.etherscan.io/tx", + config.Network_Holesky: "https://holesky.etherscan.io/tx", }, chainID: map[config.Network]uint{ - config.Network_Mainnet: 1, // Mainnet - config.Network_Prater: 5, // Goerli - config.Network_Devnet: 5, // Also goerli - config.Network_Zhejiang: 1337803, // Zhejiang + config.Network_Mainnet: 1, // Mainnet + config.Network_Holesky: 17000, // Holesky }, ethxTokenAddress: map[config.Network]string{ - config.Network_Prater: "0x3338eCd3ab3d3503c55c931d759fA6d78d287236", - config.Network_Devnet: "0x38DE8Df722B4032Cc6987F00bCA0d9B37d9F9438", - config.Network_Mainnet: "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b", - config.Network_Zhejiang: "0x90Da3CA75532A17ca38440a32595F036ecE46E85", + config.Network_Holesky: "0xB4F5fc289a778B80392b86fa70A7111E5bE0F859", + config.Network_Mainnet: "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b", }, staderConfigAddress: map[config.Network]string{ - config.Network_Prater: "0x2aa6cEd8Cf0a93884216BaE5dbF4299932aB577B", - config.Network_Devnet: "0x749Ed651c4F41E0D705960e815A58815ffFd3afe", - config.Network_Mainnet: "0x4ABEF2263d5A5ED582FC9A9789a41D85b68d69DB", - config.Network_Zhejiang: "0x90Da3CA75532A17ca38440a32595F036ecE46E85", + config.Network_Holesky: "0x50FD3384783EE49011E7b57d7A3430a762b3f3F2", + config.Network_Mainnet: "0x4ABEF2263d5A5ED582FC9A9789a41D85b68d69DB", }, baseStaderBackendUrl: map[config.Network]string{ - config.Network_Prater: "https://ethx-offchain-preprod.staderlabs.com", - config.Network_Devnet: "https://stage-ethx-offchain.staderlabs.click", - config.Network_Mainnet: "https://ethx-offchain.staderlabs.com", - config.Network_Zhejiang: "0x90Da3CA75532A17ca38440a32595F036ecE46E85", + config.Network_Mainnet: "https://ethx-offchain.staderlabs.com", + config.Network_Holesky: "https://ethx-offchain-preprod.staderlabs.com", }, preSignEncryptionKey: map[config.Network]string{ - config.Network_Prater: stageEncryptionKey, - config.Network_Devnet: devEncryptionKey, - config.Network_Mainnet: prodEncryptionKey, - config.Network_Zhejiang: stageEncryptionKey, + config.Network_Holesky: stageEncryptionKey, + config.Network_Mainnet: prodEncryptionKey, }, } } @@ -564,14 +552,9 @@ func getNetworkOptions() []config.ParameterOption { Description: "This is the real Ethereum main network, using real ETH to make real validators.", Value: config.Network_Mainnet, }, { - Name: "Goerli Testnet", - Description: "This is the Goerli test network, using Goerli ETH to make demo validators.\nUse this if you want to practice running the Stadernode in a free, safe environment before moving to Mainnet.", - Value: config.Network_Prater, - }, - { - Name: "Zhejiang Testnet", - Description: "This is the Zhejiang test network, using free fake ETH and free fake SD to make fake validators.\nUse this if you want to test the ZHejiang network, along with the Shanghai and Capella upgrades to Ethereum that enable validator withdrawals.", - Value: config.Network_Zhejiang, + Name: "Holesky Testnet", + Description: "This is the Holesky test network, using Holesky ETH to make demo validators.\nUse this if you want to practice running the Stadernode in a free, safe environment before moving to Mainnet.", + Value: config.Network_Holesky, }, } diff --git a/shared/services/config/teku-config.go b/shared/services/config/teku-config.go index 96752759..22559788 100644 --- a/shared/services/config/teku-config.go +++ b/shared/services/config/teku-config.go @@ -25,8 +25,8 @@ import ( ) const ( - tekuTagTest string = "consensys/teku:24.3.0" - tekuTagProd string = "consensys/teku:24.3.0" + tekuTagTest string = "consensys/teku:24.3.1" + tekuTagProd string = "consensys/teku:24.3.1" defaultTekuMaxPeers uint16 = 100 ) @@ -105,10 +105,8 @@ func NewTekuConfig(cfg *StaderConfig) *TekuConfig { Description: "The tag name of the Teku container you want to use on Docker Hub.", Type: config.ParameterType_String, Default: map[config.Network]interface{}{ - config.Network_Mainnet: tekuTagProd, - config.Network_Prater: tekuTagTest, - config.Network_Devnet: tekuTagTest, - config.Network_Zhejiang: tekuTagTest, + config.Network_Mainnet: tekuTagProd, + config.Network_Holesky: tekuTagTest, }, AffectsContainers: []config.ContainerID{config.ContainerID_Eth2, config.ContainerID_Validator}, EnvironmentVariables: []string{"BN_CONTAINER_TAG", "VC_CONTAINER_TAG"}, diff --git a/shared/services/ec-manager.go b/shared/services/ec-manager.go index f0d17b07..6ae5eb04 100644 --- a/shared/services/ec-manager.go +++ b/shared/services/ec-manager.go @@ -397,8 +397,8 @@ func getNetworkNameFromId(networkId uint) string { switch networkId { case 1: return "Ethereum Mainnet" - case 5: - return "Goerli Testnet" + case 17000: + return "Holesky Testnet" default: return "Unknown Network" } diff --git a/shared/services/stader/client.go b/shared/services/stader/client.go index 82cbf8ad..8920cf4a 100644 --- a/shared/services/stader/client.go +++ b/shared/services/stader/client.go @@ -333,8 +333,8 @@ func (c *Client) MigrateLegacyConfig(legacyConfigFilePath string, legacySettings switch chainID { case "1": network = cfgtypes.Network_Mainnet - case "5": - network = cfgtypes.Network_Prater + case "17000": + network = cfgtypes.Network_Holesky default: return nil, fmt.Errorf("legacy config had an unknown chain ID [%s]", chainID) } diff --git a/shared/types/config/types.go b/shared/types/config/types.go index 559bd3db..0a491e27 100644 --- a/shared/types/config/types.go +++ b/shared/types/config/types.go @@ -50,12 +50,10 @@ const ( // Enum to describe which network the system is on const ( - Network_Unknown Network = "" - Network_All Network = "all" - Network_Mainnet Network = "mainnet" - Network_Prater Network = "prater" - Network_Devnet Network = "devnet" - Network_Zhejiang Network = "zhejiang" + Network_Unknown Network = "" + Network_All Network = "all" + Network_Mainnet Network = "mainnet" + Network_Holesky Network = "holesky" ) // Enum to describe the mode for a client - local (Docker Mode) or external (Hybrid Mode) diff --git a/shared/utils/cli/utils.go b/shared/utils/cli/utils.go index c3e407c5..d4ef0083 100644 --- a/shared/utils/cli/utils.go +++ b/shared/utils/cli/utils.go @@ -133,12 +133,8 @@ func PrintNetwork(staderClient *stader.Client) error { switch currentNetwork { case cfgtypes.Network_Mainnet: fmt.Printf("Your Stader Node is currently using the %sEthereum Mainnet.%s\n\n", colorGreen, colorReset) - case cfgtypes.Network_Prater: - fmt.Printf("Your Stader Node is currently using the %sGoerli Test Network.%s\n\n", colorLightBlue, colorReset) - case cfgtypes.Network_Devnet: - fmt.Printf("Your Stader Node is currently using the %sPrater Development Network.%s\n\n", colorYellow, colorReset) - case cfgtypes.Network_Zhejiang: - fmt.Printf("Your Stader Node is currently using the %sZhejiang Test Network.%s\n\n", colorYellow, colorReset) + case cfgtypes.Network_Holesky: + fmt.Printf("Your Stader Node is currently using the %sHolesky Test Network.%s\n\n", colorLightBlue, colorReset) default: fmt.Printf("%sYou are on an unexpected network [%v].%s\n\n", colorYellow, currentNetwork, colorReset) } diff --git a/shared/utils/eth2/eth2.go b/shared/utils/eth2/eth2.go index 8134e968..0c0b0757 100644 --- a/shared/utils/eth2/eth2.go +++ b/shared/utils/eth2/eth2.go @@ -24,8 +24,8 @@ import ( ) const ( - GoerliCapellaForkVersion = "0x03001020" MainnetCapellaForkVersion = "0x03000000" + HoleskyCapellaForkVersion = "0x04017000" ) // Get an eth2 epoch number by time diff --git a/shared/version.go b/shared/version.go index f88c4013..67e9caf6 100644 --- a/shared/version.go +++ b/shared/version.go @@ -21,7 +21,7 @@ package shared const BinaryBucket string = "/stader-node-build/permissionless" const DockerAccount string = "staderlabs" -const StaderVersion string = "1.5.1" +const StaderVersion string = "1.6.0" const Logo string = ` _____ _ _ _ _ 𝅺 diff --git a/stader-cli/node/update-operator-reward-address.go b/stader-cli/node/update-operator-reward-address.go index 68e0538a..5be25fc3 100644 --- a/stader-cli/node/update-operator-reward-address.go +++ b/stader-cli/node/update-operator-reward-address.go @@ -120,12 +120,12 @@ Note: Stader will continue to send rewards to your existing Reward Address until ` msg = fmt.Sprintf(msg, contractAddr.String()) fmt.Printf("%s %s %s\n", colorLightBlue, msg, colorReset) - case cfTypes.Network_Prater: + case cfTypes.Network_Holesky: msg := ` You have successfully raised a request to change your Reward Address. To confirm the Reward Address change please follow these steps: -Step 1: Visit the PermissionlessNodeRegistry Smart Contract: https://goerli.etherscan.io/address/%s#writeProxyContract#F3 +Step 1: Visit the PermissionlessNodeRegistry Smart Contract: https://holesky.etherscan.io/address/%s#writeProxyContract#F3 Step 2: Confirm the Reward Address change by connecting your New Reward Address wallet with the Smart Contract and execute the "ConfirmRewardAddressChange" function. Please refer to the Reward Address change guide here - https://www.staderlabs.com/docs-v1/Ethereum/Node-operator/permissionless-node-operator/Update-reward-address/ @@ -155,9 +155,9 @@ Note: Stader will continue to send rewards to your existing Reward Address until ` msg = fmt.Sprintf(msg, contractAddr.String()) fmt.Printf("%s %s %s\n\n", colorLightBlue, msg, colorReset) - case cfTypes.Network_Prater: + case cfTypes.Network_Holesky: msg := ` -For node security, only your existing Reward Address can propose a change. To propose and confirm a Reward Address change, please use the PermissionlessNodeRegistry Smart Contract: https://goerli.etherscan.io/address/%s#writeProxyContract#F10 +For node security, only your existing Reward Address can propose a change. To propose and confirm a Reward Address change, please use the PermissionlessNodeRegistry Smart Contract: https://holesky.etherscan.io/address/%s#writeProxyContract#F10 Follow these steps for your Reward Address change: Step 1: Propose the Reward Address change by connecting your Existing Reward Address wallet with the Smart Contract and execute the "ProposeRewardAddress" function. diff --git a/stader-cli/service/config.go b/stader-cli/service/config.go index 2ff7f3cd..f073c975 100644 --- a/stader-cli/service/config.go +++ b/stader-cli/service/config.go @@ -56,10 +56,11 @@ func updateConfigFromUISetting(oldCfg *stdCf.StaderConfig, settings map[string]i newCfg := *oldCfg // update the network network := settings[keys.Sn_node_network].(string) - if network == "Goerli Testnet" { - newCfg.ChangeNetwork(cfgtypes.Network_Prater) - } else if network == "Ethereum Mainnet" { + + if network == config.EthereumMainnet { newCfg.ChangeNetwork(cfgtypes.Network_Mainnet) + } else { + newCfg.ChangeNetwork(cfgtypes.Network_Holesky) } // Stader node config @@ -115,10 +116,10 @@ func setUIStaderNode(cfg *stdCf.StaderConfig, settings map[string]interface{}) e staderNode := cfg.StaderNode switch staderNode.Network.Value.(cfgtypes.Network) { - case cfgtypes.Network_Prater: - settings[keys.Sn_node_network] = "Goerli Testnet" case cfgtypes.Network_Mainnet: - settings[keys.Sn_node_network] = "Ethereum Mainnet" + settings[keys.Sn_node_network] = config.EthereumMainnet + default: + settings[keys.Sn_node_network] = config.HoleskyTestnet } settings[keys.Sn_project_title] = staderNode.ProjectName.Value diff --git a/stader-cli/service/migration.go b/stader-cli/service/migration.go index 41e22017..ef935156 100644 --- a/stader-cli/service/migration.go +++ b/stader-cli/service/migration.go @@ -59,6 +59,11 @@ func migrate(c *cli.Context) (runBeforeUpgrades, rundAfterUpgrades []ConfigUpgra return nil, nil, err } + v160, err := parseVersion("1.6.0") + if err != nil { + return nil, nil, err + } + // Create the collection of upgraders upgraders := []ConfigUpgrader{ { @@ -90,6 +95,11 @@ func migrate(c *cli.Context) (runBeforeUpgrades, rundAfterUpgrades []ConfigUpgra upgradeFunc: func(c *cli.Context) error { return nil }, needInstall: true, }, + { + version: v160, + upgradeFunc: func(_ *cli.Context) error { return nil }, + needInstall: true, + }, } staderClient, err := stader.NewClientFromCtx(c)