Skip to content

Commit

Permalink
Merge pull request #417 from rocket-pool/update-clients
Browse files Browse the repository at this point in the history
Update client versions. Add BN P2P QUIC port.
  • Loading branch information
0xfornax authored Dec 5, 2023
2 parents 6f031e5 + c35a770 commit 865b553
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 133 deletions.
4 changes: 2 additions & 2 deletions shared/services/config/besu-params.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (

// Constants
const (
besuTagTest string = "hyperledger/besu:23.10.0"
besuTagProd string = "hyperledger/besu:23.10.0"
besuTagTest string = "hyperledger/besu:23.10.2"
besuTagProd string = "hyperledger/besu:23.10.2"
besuEventLogInterval int = 1000
besuMaxPeers uint16 = 25
besuStopSignal string = "SIGTERM"
Expand Down
17 changes: 17 additions & 0 deletions shared/services/config/consensus-common-config.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
const GraffitiID string = "graffiti"
const CheckpointSyncUrlID string = "checkpointSyncUrl"
const P2pPortID string = "p2pPort"
const P2pQuicPortID string = "p2pQuicPort"
const ApiPortID string = "apiPort"
const OpenApiPortID string = "openApiPort"
const DoppelgangerDetectionID string = "doppelgangerDetection"
Expand All @@ -16,6 +17,7 @@ const DoppelgangerDetectionID string = "doppelgangerDetection"
const defaultGraffiti string = ""
const defaultCheckpointSyncProvider string = ""
const defaultP2pPort uint16 = 9001
const defaultP2pQuicPort uint16 = 9002
const defaultBnApiPort uint16 = 5052
const defaultOpenBnApiPort string = string(config.RPC_Closed)
const defaultDoppelgangerDetection bool = true
Expand All @@ -36,6 +38,9 @@ type ConsensusCommonConfig struct {
// The port to use for gossip traffic
P2pPort config.Parameter `yaml:"p2pPort,omitempty"`

// The port to use for gossip traffic using the QUIC protocol
P2pQuicPort config.Parameter `yaml:"p2pQuicPort,omitempty"`

// The port to expose the HTTP API on
ApiPort config.Parameter `yaml:"apiPort,omitempty"`

Expand Down Expand Up @@ -91,6 +96,17 @@ func NewConsensusCommonConfig(cfg *RocketPoolConfig) *ConsensusCommonConfig {
CanBeBlank: false,
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},
EnvironmentVariables: []string{"BN_P2P_QUIC_PORT"},
CanBeBlank: false,
OverwriteOnUpgrade: false,
},

ApiPort: config.Parameter{
ID: ApiPortID,
Expand Down Expand Up @@ -137,6 +153,7 @@ func (cfg *ConsensusCommonConfig) GetParameters() []*config.Parameter {
&cfg.Graffiti,
&cfg.CheckpointSyncProvider,
&cfg.P2pPort,
&cfg.P2pQuicPort,
&cfg.ApiPort,
&cfg.OpenApiPort,
&cfg.DoppelgangerDetection,
Expand Down
8 changes: 4 additions & 4 deletions shared/services/config/external-configs.go
Original file line number Diff line number Diff line change
Expand Up @@ -426,10 +426,10 @@ func NewExternalPrysmConfig(cfg *RocketPoolConfig) *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 Rocket Pool manages with your minipool keys.",
Type: config.ParameterType_String,
Default: map[config.Network]interface{}{
config.Network_Mainnet: getPrysmVcProdTag(),
config.Network_Prater: getPrysmVcTestTag(),
config.Network_Devnet: getPrysmVcTestTag(),
config.Network_Holesky: getPrysmVcTestTag(),
config.Network_Mainnet: prysmVcProd,
config.Network_Prater: prysmVcTest,
config.Network_Devnet: prysmVcTest,
config.Network_Holesky: prysmVcTest,
},
AffectsContainers: []config.ContainerID{config.ContainerID_Validator},
EnvironmentVariables: []string{"VC_CONTAINER_TAG"},
Expand Down
4 changes: 2 additions & 2 deletions shared/services/config/geth-params.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (

// Constants
const (
gethTagProd string = "ethereum/client-go:v1.13.2"
gethTagTest string = "ethereum/client-go:v1.13.2"
gethTagProd string = "ethereum/client-go:v1.13.5"
gethTagTest string = "ethereum/client-go:v1.13.5"
gethEventLogInterval int = 1000
gethStopSignal string = "SIGTERM"
)
Expand Down
4 changes: 2 additions & 2 deletions shared/services/config/nethermind-params.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import (

// Constants
const (
nethermindTagProd string = "nethermind/nethermind:1.21.0"
nethermindTagTest string = "nethermind/nethermind:1.20.4"
nethermindTagProd string = "nethermind/nethermind:1.23.0"
nethermindTagTest string = "nethermind/nethermind:1.23.0"
nethermindEventLogInterval int = 1000
nethermindStopSignal string = "SIGTERM"
)
Expand Down
8 changes: 4 additions & 4 deletions shared/services/config/nimbus-config.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import (

const (
// Prater
nimbusBnTagTest string = "statusim/nimbus-eth2:multiarch-v23.9.1"
nimbusVcTagTest string = "statusim/nimbus-validator-client:multiarch-v23.9.1"
nimbusBnTagTest string = "statusim/nimbus-eth2:multiarch-v23.11.0"
nimbusVcTagTest string = "statusim/nimbus-validator-client:multiarch-v23.11.0"

// Mainnet
nimbusBnTagProd string = "statusim/nimbus-eth2:multiarch-v23.9.1"
nimbusVcTagProd string = "statusim/nimbus-validator-client:multiarch-v23.9.1"
nimbusBnTagProd string = "statusim/nimbus-eth2:multiarch-v23.11.0"
nimbusVcTagProd string = "statusim/nimbus-validator-client:multiarch-v23.11.0"

defaultNimbusMaxPeersArm uint16 = 100
defaultNimbusMaxPeersAmd uint16 = 160
Expand Down
131 changes: 15 additions & 116 deletions shared/services/config/prysm-config.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,17 @@
package config

import (
"fmt"
"runtime"

"github.com/rocket-pool/smartnode/shared/types/config"
"github.com/rocket-pool/smartnode/shared/utils/sys"
)

const (
prysmBnTagAmd64PortableTest string = "rocketpool/prysm:0bd2326"
prysmVcTagAmd64PortableTest string = "rocketpool/prysm:0bd2326"
prysmTagArm64PortableTest string = "rocketpool/prysm:0bd2326"
prysmBnTagAmd64ModernTest string = "rocketpool/prysm:0bd2326" //"prysmaticlabs/prysm-beacon-chain:HEAD-58df1f1-debug"
prysmVcTagAmd64ModernTest string = "rocketpool/prysm:0bd2326" //"prysmaticlabs/prysm-validator:HEAD-58df1f1-debug"
prysmTagArm64ModernTest string = "rocketpool/prysm:0bd2326"

prysmBnTagAmd64PortableProd string = "rocketpool/prysm:v4.0.8-portable"
prysmVcTagAmd64PortableProd string = "rocketpool/prysm:v4.0.8-portable"
prysmTagArm64PortableProd string = "rocketpool/prysm:v4.0.8-portable"
prysmBnTagAmd64ModernProd string = "rocketpool/prysm:v4.0.8" //"prysmaticlabs/prysm-beacon-chain:HEAD-58df1f1-debug"
prysmVcTagAmd64ModernProd string = "rocketpool/prysm:v4.0.8" //"prysmaticlabs/prysm-validator:HEAD-58df1f1-debug"
prysmTagArm64ModernProd string = "rocketpool/prysm:v4.0.8"
defaultPrysmRpcPort uint16 = 5053
defaultPrysmOpenRpcPort string = string(config.RPC_Closed)
defaultPrysmMaxPeers uint16 = 45
prysmBnTest string = "rocketpool/prysm:v4.1.1"
prysmBnProd string = "rocketpool/prysm:v4.1.1"
prysmVcTest string = "rocketpool/prysm:v4.1.1"
prysmVcProd string = "rocketpool/prysm:v4.1.1"
defaultPrysmRpcPort uint16 = 5053
defaultPrysmOpenRpcPort string = string(config.RPC_Closed)
defaultPrysmMaxPeers uint16 = 45
)

// Configuration for Prysm
Expand Down Expand Up @@ -108,10 +95,10 @@ func NewPrysmConfig(cfg *RocketPoolConfig) *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_Holesky: getPrysmBnTestTag(),
config.Network_Mainnet: prysmBnProd,
config.Network_Prater: prysmBnTest,
config.Network_Devnet: prysmBnTest,
config.Network_Holesky: prysmBnTest,
},
AffectsContainers: []config.ContainerID{config.ContainerID_Eth2},
EnvironmentVariables: []string{"BN_CONTAINER_TAG"},
Expand All @@ -125,10 +112,10 @@ func NewPrysmConfig(cfg *RocketPoolConfig) *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_Holesky: getPrysmVcTestTag(),
config.Network_Mainnet: prysmVcProd,
config.Network_Prater: prysmVcTest,
config.Network_Devnet: prysmVcTest,
config.Network_Holesky: prysmVcTest,
},
AffectsContainers: []config.ContainerID{config.ContainerID_Validator},
EnvironmentVariables: []string{"VC_CONTAINER_TAG"},
Expand Down Expand Up @@ -162,94 +149,6 @@ func NewPrysmConfig(cfg *RocketPoolConfig) *PrysmConfig {
}
}

// Get the container tag for the Prysm BN based on the current architecture
func getPrysmBnProdTag() string {
missingFeatures := sys.GetMissingModernCpuFeatures()
if len(missingFeatures) > 0 {
if runtime.GOARCH == "arm64" {
return prysmTagArm64PortableProd
} else if runtime.GOARCH == "amd64" {
return prysmBnTagAmd64PortableProd
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
} else {
if runtime.GOARCH == "arm64" {
return prysmTagArm64ModernProd
} else if runtime.GOARCH == "amd64" {
return prysmBnTagAmd64ModernProd
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
}
}

// Get the container tag for the Prysm BN based on the current architecture
func getPrysmBnTestTag() string {
missingFeatures := sys.GetMissingModernCpuFeatures()
if len(missingFeatures) > 0 {
if runtime.GOARCH == "arm64" {
return prysmTagArm64PortableTest
} else if runtime.GOARCH == "amd64" {
return prysmBnTagAmd64PortableTest
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
} else {
if runtime.GOARCH == "arm64" {
return prysmTagArm64ModernTest
} else if runtime.GOARCH == "amd64" {
return prysmBnTagAmd64ModernTest
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
}
}

// Get the container tag for the Prysm VC based on the current architecture
func getPrysmVcProdTag() string {
missingFeatures := sys.GetMissingModernCpuFeatures()
if len(missingFeatures) > 0 {
if runtime.GOARCH == "arm64" {
return prysmTagArm64PortableProd
} else if runtime.GOARCH == "amd64" {
return prysmVcTagAmd64PortableProd
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
} else {
if runtime.GOARCH == "arm64" {
return prysmTagArm64ModernProd
} else if runtime.GOARCH == "amd64" {
return prysmVcTagAmd64ModernProd
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
}
}

// Get the container tag for the Prysm VC based on the current architecture
func getPrysmVcTestTag() string {
missingFeatures := sys.GetMissingModernCpuFeatures()
if len(missingFeatures) > 0 {
if runtime.GOARCH == "arm64" {
return prysmTagArm64PortableTest
} else if runtime.GOARCH == "amd64" {
return prysmVcTagAmd64PortableTest
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
} else {
if runtime.GOARCH == "arm64" {
return prysmTagArm64ModernTest
} else if runtime.GOARCH == "amd64" {
return prysmVcTagAmd64ModernTest
} else {
panic(fmt.Sprintf("Prysm doesn't support architecture %s", runtime.GOARCH))
}
}
}

// Get the parameters for this config
func (cfg *PrysmConfig) GetParameters() []*config.Parameter {
return []*config.Parameter{
Expand Down
4 changes: 2 additions & 2 deletions shared/services/config/teku-config.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (
)

const (
tekuTagTest string = "consensys/teku:23.10.0"
tekuTagProd string = "consensys/teku:23.10.0"
tekuTagTest string = "consensys/teku:23.11.0"
tekuTagProd string = "consensys/teku:23.11.0"
defaultTekuMaxPeers uint16 = 100
)

Expand Down
2 changes: 1 addition & 1 deletion shared/version.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package shared

const RocketPoolVersion string = "1.11.0"
const RocketPoolVersion string = "1.11.1"

const Logo string = `______ _ _ ______ _
| ___ \ | | | | | ___ \ | |
Expand Down

0 comments on commit 865b553

Please sign in to comment.