diff --git a/shared/services/config/external-configs.go b/shared/services/config/external-configs.go index f576fc8ab..ef71cd00b 100644 --- a/shared/services/config/external-configs.go +++ b/shared/services/config/external-configs.go @@ -118,6 +118,13 @@ type ExternalTekuConfig struct { DoppelgangerDetection config.Parameter `yaml:"doppelgangerDetection,omitempty"` } +// Type assertions for all ExternalConsensusConfigs +var _ config.ConsensusConfig = &ExternalLighthouseConfig{} +var _ config.ConsensusConfig = &ExternalLodestarConfig{} +var _ config.ConsensusConfig = &ExternalNimbusConfig{} +var _ config.ConsensusConfig = &ExternalPrysmConfig{} +var _ config.ConsensusConfig = &ExternalTekuConfig{} + // Generates a new ExternalExecutionConfig configuration func NewExternalExecutionConfig(cfg *RocketPoolConfig) *ExternalExecutionConfig { return &ExternalExecutionConfig{ diff --git a/shared/services/config/lighthouse-config.go b/shared/services/config/lighthouse-config.go index 53e6a8421..8d7666c40 100644 --- a/shared/services/config/lighthouse-config.go +++ b/shared/services/config/lighthouse-config.go @@ -33,6 +33,9 @@ type LighthouseConfig struct { P2pQuicPort config.Parameter `yaml:"p2pQuicPort,omitempty"` } +// Type assertion for LighthouseConfig +var _ config.ConsensusConfig = &LighthouseConfig{} + // Generates a new Lighthouse configuration func NewLighthouseConfig(cfg *RocketPoolConfig) *LighthouseConfig { return &LighthouseConfig{ diff --git a/shared/services/config/lodestar-config.go b/shared/services/config/lodestar-config.go index 539b5b7b5..9bd28138a 100644 --- a/shared/services/config/lodestar-config.go +++ b/shared/services/config/lodestar-config.go @@ -30,6 +30,9 @@ type LodestarConfig struct { AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"` } +// Type assertion for LodestarConfig +var _ config.ConsensusConfig = &LodestarConfig{} + // Generates a new Lodestar configuration func NewLodestarConfig(cfg *RocketPoolConfig) *LodestarConfig { return &LodestarConfig{ diff --git a/shared/services/config/nimbus-config.go b/shared/services/config/nimbus-config.go index b0b070bd7..9c92d21d9 100644 --- a/shared/services/config/nimbus-config.go +++ b/shared/services/config/nimbus-config.go @@ -45,6 +45,9 @@ type NimbusConfig struct { AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"` } +// Type assertion for NimbusConfig +var _ config.ConsensusConfig = &NimbusConfig{} + // Generates a new Nimbus configuration func NewNimbusConfig(cfg *RocketPoolConfig) *NimbusConfig { return &NimbusConfig{ diff --git a/shared/services/config/prysm-config.go b/shared/services/config/prysm-config.go index ae104d882..3ebe4e456 100644 --- a/shared/services/config/prysm-config.go +++ b/shared/services/config/prysm-config.go @@ -5,10 +5,10 @@ import ( ) const ( - prysmBnTest string = "rocketpool/prysm:v6.0.2" - prysmBnProd string = "rocketpool/prysm:v6.0.2" - prysmVcTest string = "rocketpool/prysm:v6.0.2" - prysmVcProd string = "rocketpool/prysm:v6.0.2" + prysmBnTest string = "gcr.io/offchainlabs/prysm/beacon-chain:v6.0.2" + prysmBnProd string = "gcr.io/offchainlabs/prysm/beacon-chain:v6.0.2" + prysmVcTest string = "gcr.io/offchainlabs/prysm/validator:v6.0.2" + prysmVcProd string = "gcr.io/offchainlabs/prysm/validator:v6.0.2" defaultPrysmRpcPort uint16 = 5053 defaultPrysmOpenRpcPort string = string(config.RPC_Closed) defaultPrysmMaxPeers uint16 = 70 @@ -46,6 +46,9 @@ type PrysmConfig struct { AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"` } +// Type assertion for PrysmConfig +var _ config.ConsensusConfig = &PrysmConfig{} + // Generates a new Prysm configuration func NewPrysmConfig(cfg *RocketPoolConfig) *PrysmConfig { rpcPortModes := config.PortModes("Allow connections from external hosts. This is safe if you're running your node on your local network. If you're a VPS user, this would expose your node to the internet and could make it vulnerable to MEV/tips theft") diff --git a/shared/services/config/teku-config.go b/shared/services/config/teku-config.go index 3f912de00..a00fb67c2 100644 --- a/shared/services/config/teku-config.go +++ b/shared/services/config/teku-config.go @@ -40,6 +40,9 @@ type TekuConfig struct { AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"` } +// Type assertion for TekuConfig +var _ config.ConsensusConfig = &TekuConfig{} + // Generates a new Teku configuration func NewTekuConfig(cfg *RocketPoolConfig) *TekuConfig { return &TekuConfig{ diff --git a/shared/services/rocketpool/assets/install/templates/eth2.tmpl b/shared/services/rocketpool/assets/install/templates/eth2.tmpl index 34d18a55d..e9ce862d8 100644 --- a/shared/services/rocketpool/assets/install/templates/eth2.tmpl +++ b/shared/services/rocketpool/assets/install/templates/eth2.tmpl @@ -7,7 +7,18 @@ services: eth2: + {{- if eq .ConsensusClient.String "prysm"}} + image: localhost/{{.GetBeaconContainerTag}} + pull_policy: never + build: + dockerfile_inline: | + FROM {{.GetBeaconContainerTag}} as upstream + FROM debian:bookworm-slim + RUN apt update && apt install -y wget ca-certificates && rm -rf /var/lib/apt/lists/* + COPY --from=upstream /app/cmd/beacon-chain/beacon-chain /app/cmd/beacon-chain/beacon-chain + {{- else}} image: {{.GetBeaconContainerTag}} + {{- end}} user: root container_name: {{.Smartnode.ProjectName}}_eth2 restart: unless-stopped diff --git a/shared/services/rocketpool/assets/install/templates/validator.tmpl b/shared/services/rocketpool/assets/install/templates/validator.tmpl index 6934b6ac6..1e43ac605 100644 --- a/shared/services/rocketpool/assets/install/templates/validator.tmpl +++ b/shared/services/rocketpool/assets/install/templates/validator.tmpl @@ -7,7 +7,18 @@ services: validator: + {{- if eq .ConsensusClient.String "prysm"}} + image: localhost/{{.GetVCContainerTag}} + pull_policy: never + build: + dockerfile_inline: | + FROM {{.GetVCContainerTag}} as upstream + FROM debian:bookworm-slim + RUN apt update && apt install -y wget ca-certificates && rm -rf /var/lib/apt/lists/* + COPY --from=upstream /app/cmd/validator/validator /app/cmd/validator/validator + {{- else}} image: {{.GetVCContainerTag}} + {{- end}} user: root container_name: {{.Smartnode.ProjectName}}_validator restart: unless-stopped