diff --git a/shared/services/config/nimbus-config.go b/shared/services/config/nimbus-config.go index ed9180bbd..a4539795a 100644 --- a/shared/services/config/nimbus-config.go +++ b/shared/services/config/nimbus-config.go @@ -8,12 +8,12 @@ import ( const ( // Testnet - nimbusBnTagTest string = "statusim/nimbus-eth2:multiarch-v26.7.0" - nimbusVcTagTest string = "statusim/nimbus-validator-client:multiarch-v26.7.0" + nimbusBnTagTest string = "statusim/nimbus-eth2:multiarch-v26.8.0" + nimbusVcTagTest string = "statusim/nimbus-validator-client:multiarch-v26.8.0" // Mainnet - nimbusBnTagProd string = "statusim/nimbus-eth2:multiarch-v26.7.0" - nimbusVcTagProd string = "statusim/nimbus-validator-client:multiarch-v26.7.0" + nimbusBnTagProd string = "statusim/nimbus-eth2:multiarch-v26.8.0" + nimbusVcTagProd string = "statusim/nimbus-validator-client:multiarch-v26.8.0" defaultNimbusMaxPeersArm uint16 = 100 defaultNimbusMaxPeersAmd uint16 = 160 @@ -26,6 +26,9 @@ type NimbusConfig struct { // The max number of P2P peers to connect to MaxPeers config.Parameter `yaml:"maxPeers,omitempty"` + // The port to use for gossip traffic using the QUIC protocol + P2pQuicPort config.Parameter `yaml:"p2pQuicPort,omitempty"` + // Common parameters that Nimbus doesn't support and should be hidden UnsupportedCommonParams []string `yaml:"-"` @@ -64,6 +67,17 @@ func NewNimbusConfig(cfg *RocketPoolConfig) *NimbusConfig { OverwriteOnUpgrade: false, }, + P2pQuicPort: config.Parameter{ + ID: P2pQuicPortID, + Name: "P2P QUIC Port", + Description: "The port to use for P2P (blockchain) traffic using the QUIC protocol.", + Type: config.ParameterType_Uint16, + Default: map[config.Network]interface{}{config.Network_All: defaultP2pQuicPort}, + AffectsContainers: []config.ContainerID{config.ContainerID_Eth2}, + CanBeBlank: false, + OverwriteOnUpgrade: false, + }, + BnContainerTag: config.Parameter{ ID: "bnContainerTag", Name: "Beacon Node Container Tag", @@ -134,6 +148,7 @@ func NewNimbusConfig(cfg *RocketPoolConfig) *NimbusConfig { func (cfg *NimbusConfig) GetParameters() []*config.Parameter { return []*config.Parameter{ &cfg.MaxPeers, + &cfg.P2pQuicPort, &cfg.PruningMode, &cfg.BnContainerTag, &cfg.VcContainerTag, diff --git a/shared/services/config/rocket-pool-config.go b/shared/services/config/rocket-pool-config.go index 6a696b507..19a02c124 100644 --- a/shared/services/config/rocket-pool-config.go +++ b/shared/services/config/rocket-pool-config.go @@ -1886,6 +1886,9 @@ func (cfg *RocketPoolConfig) Validate() []string { if cfg.ConsensusClient.Value.(config.ConsensusClient) == config.ConsensusClient_Lodestar { _, errors = addAndCheckForDuplicate(portMap, cfg.Lodestar.P2pQuicPort, errors) } + if cfg.ConsensusClient.Value.(config.ConsensusClient) == config.ConsensusClient_Nimbus { + _, errors = addAndCheckForDuplicate(portMap, cfg.Nimbus.P2pQuicPort, errors) + } if cfg.ConsensusClient.Value.(config.ConsensusClient) == config.ConsensusClient_Teku { portMap, errors = addAndCheckForDuplicate(portMap, cfg.Teku.P2pIpv6Port, errors) portMap, errors = addAndCheckForDuplicate(portMap, cfg.Teku.P2pQuicPort, errors) diff --git a/shared/services/rocketpool/assets/install/scripts/start-bn.sh b/shared/services/rocketpool/assets/install/scripts/start-bn.sh index 09689fb9b..2f5f5b9ed 100755 --- a/shared/services/rocketpool/assets/install/scripts/start-bn.sh +++ b/shared/services/rocketpool/assets/install/scripts/start-bn.sh @@ -172,6 +172,7 @@ if [ "$CC_CLIENT" = "nimbus" ]; then --data-dir=/ethclient/nimbus \ --tcp-port=$BN_P2P_PORT \ --udp-port=$BN_P2P_PORT \ + --quic-port=${BN_P2P_QUIC_PORT:-8001} \ --web3-url=$EC_ENGINE_ENDPOINT \ --rest \ --rest-address=0.0.0.0 \ diff --git a/shared/services/rocketpool/assets/install/templates/eth2.tmpl b/shared/services/rocketpool/assets/install/templates/eth2.tmpl index 4203708dc..7e2c317ea 100644 --- a/shared/services/rocketpool/assets/install/templates/eth2.tmpl +++ b/shared/services/rocketpool/assets/install/templates/eth2.tmpl @@ -54,6 +54,12 @@ services: {{- else}} - "{{.Lodestar.P2pQuicPort}}:{{.Lodestar.P2pQuicPort}}/udp" {{- end}} + {{- else if eq .ConsensusClient.String "nimbus"}} + {{- if .IsIPv6Enabled}} + - "[::]:{{.Nimbus.P2pQuicPort}}:{{.Nimbus.P2pQuicPort}}/udp" + {{- else}} + - "{{.Nimbus.P2pQuicPort}}:{{.Nimbus.P2pQuicPort}}/udp" + {{- end}} {{- end}} {{- if eq .ConsensusClient.String "teku"}} - "{{.Teku.P2pQuicPort}}:{{.Teku.P2pQuicPort}}/udp" @@ -125,6 +131,7 @@ services: - BN_P2P_QUIC_PORT={{.Prysm.P2pQuicPort}} {{- else if eq .ConsensusClient.String "nimbus"}} - NIMBUS_PRUNING_MODE={{.Nimbus.PruningMode}} + - BN_P2P_QUIC_PORT={{.Nimbus.P2pQuicPort}} {{- else if eq .ConsensusClient.String "lighthouse"}} - BN_P2P_QUIC_PORT={{.Lighthouse.P2pQuicPort}} {{- else if eq .ConsensusClient.String "lodestar"}}