Documentation
¶
Index ¶
- Constants
- func ValidateDefaults(Chain Chain, ChainName string) error
- func ValidateMetricDefaults(Params []ClientParam) error
- type Chain
- type ClientOption
- type ClientParam
- type Config
- type ConsensusClient
- type ConsensusCommonConfig
- type ConsensusConfig
- type ContainerID
- type ExecutionClient
- type ExecutionCommonConfig
- type ExporterConfig
- type ExternalConsensusConfig
- type ExternalExecutionConfig
- type ExternalLighthouseConfig
- func (config *ExternalLighthouseConfig) GetApiUrl() string
- func (config *ExternalLighthouseConfig) GetConfigTitle() string
- func (config *ExternalLighthouseConfig) GetName() string
- func (config *ExternalLighthouseConfig) GetParameters() []*Parameter
- func (config *ExternalLighthouseConfig) GetValidatorImage() string
- type ExternalPrysmConfig
- type ExternalTekuConfig
- type GethConfig
- type GrafanaConfig
- type InfuraConfig
- type LegacyRocketPoolConfig
- func (config *LegacyRocketPoolConfig) GetGasLimit() (uint64, error)
- func (config *LegacyRocketPoolConfig) GetMaxFee() (*big.Int, error)
- func (config *LegacyRocketPoolConfig) GetMaxPriorityFee() (*big.Int, error)
- func (config *LegacyRocketPoolConfig) GetSelectedEth1Client() *ClientOption
- func (config *LegacyRocketPoolConfig) GetSelectedEth1FallbackClient() *ClientOption
- func (config *LegacyRocketPoolConfig) GetSelectedEth2Client() *ClientOption
- func (config *LegacyRocketPoolConfig) Serialize() ([]byte, error)
- type LighthouseConfig
- type LocalConsensusConfig
- type Metrics
- type Mode
- type Network
- type NimbusConfig
- type Parameter
- type ParameterOption
- type ParameterType
- type PocketConfig
- type PrometheusConfig
- type PrysmConfig
- type RocketPoolConfig
- func (config *RocketPoolConfig) ChangeNetwork(newNetwork Network)
- func (config *RocketPoolConfig) CreateCopy() *RocketPoolConfig
- func (config *RocketPoolConfig) Deserialize(masterMap map[string]map[string]string) error
- func (config *RocketPoolConfig) GenerateEnvironmentVariables() map[string]string
- func (config *RocketPoolConfig) GetCompatibleConsensusClients() ([]ParameterOption, []string)
- func (config *RocketPoolConfig) GetConfigTitle() string
- func (config *RocketPoolConfig) GetParameters() []*Parameter
- func (config *RocketPoolConfig) GetSelectedConsensusClientConfig() (ConsensusConfig, error)
- func (config *RocketPoolConfig) GetSubconfigs() map[string]Config
- func (config *RocketPoolConfig) Serialize() map[string]map[string]string
- type SmartnodeConfig
- func (config *SmartnodeConfig) GetChainID() uint
- func (config *SmartnodeConfig) GetConfigTitle() string
- func (config *SmartnodeConfig) GetOneInchOracleAddress() string
- func (config *SmartnodeConfig) GetParameters() []*Parameter
- func (config *SmartnodeConfig) GetPasswordPath() string
- func (config *SmartnodeConfig) GetPowProxyContainerTag() string
- func (config *SmartnodeConfig) GetPruneProvisionerContainerTag() string
- func (config *SmartnodeConfig) GetRplFaucetAddress() string
- func (config *SmartnodeConfig) GetRplTokenAddress() string
- func (config *SmartnodeConfig) GetSmartnodeContainerTag() string
- func (config *SmartnodeConfig) GetStakeUrl() string
- func (config *SmartnodeConfig) GetStorageAddress() string
- func (config *SmartnodeConfig) GetTxWatchUrl() string
- func (config *SmartnodeConfig) GetValidatorKeychainPath() string
- func (config *SmartnodeConfig) GetWalletPath() string
- type TekuConfig
- type UserParam
Constants ¶
const ( ApiContainerName string = "api" Eth1ContainerName string = "eth1" Eth1FallbackContainerName string = "eth1-fallback" Eth2ContainerName string = "eth2" ExporterContainerName string = "exporter" GrafanaContainerName string = "grafana" NodeContainerName string = "node" PrometheusContainerName string = "prometheus" ValidatorContainerName string = "validator" WatchtowerContainerName string = "watchtower" )
Constants
const ApiPortID string = "apiPort"
const CheckpointSyncUrlID string = "checkpointSyncUrl"
const DoppelgangerDetectionID string = "doppelgangerDetection"
const GraffitiID string = "graffiti"
Param IDs
const MaxPeersID string = "maxPeers"
const OpenApiPortID string = "openApiPort"
const P2pPortID string = "p2pPort"
Variables ¶
This section is empty.
Functions ¶
func ValidateDefaults ¶ added in v1.0.0
Make sure the default parameter values can be parsed into the parameter types
func ValidateMetricDefaults ¶ added in v1.0.0
func ValidateMetricDefaults(Params []ClientParam) error
Make sure the default parameter values for the metrics section can be parsed into the parameter types
Types ¶
type Chain ¶
type Chain struct {
Provider string `yaml:"provider,omitempty"`
WsProvider string `yaml:"wsProvider,omitempty"`
FallbackProvider string `yaml:"fallbackProvider,omitempty"`
FallbackWsProvider string `yaml:"fallbackWsProvider,omitempty"`
ReconnectDelay string `yaml:"reconnectDelay,omitempty"`
PruneProvisioner string `yaml:"pruneProvisioner,omitempty"`
ChainID string `yaml:"chainID,omitempty"`
Client struct {
Options []ClientOption `yaml:"options,omitempty"`
Selected string `yaml:"selected,omitempty"`
Params []UserParam `yaml:"params,omitempty"`
} `yaml:"client,omitempty"`
}
func (*Chain) GetClientById ¶ added in v1.0.0
func (chain *Chain) GetClientById(id string) *ClientOption
Get a client by it's ID
func (*Chain) GetSelectedClient ¶
func (chain *Chain) GetSelectedClient() *ClientOption
type ClientOption ¶
type ClientOption struct {
ID string `yaml:"id,omitempty"`
Name string `yaml:"name,omitempty"`
Desc string `yaml:"desc,omitempty"`
Image string `yaml:"image,omitempty"`
BeaconImage string `yaml:"beaconImage,omitempty"`
ValidatorImage string `yaml:"validatorImage,omitempty"`
Link string `yaml:"link,omitempty"`
CompatibleEth2Clients string `yaml:"compatibleEth2Clients,omitempty"`
EventLogInterval string `yaml:"eventLogInterval,omitempty"`
Supermajority bool `yaml:"supermajority,omitempty"`
Params []ClientParam `yaml:"params,omitempty"`
Fallback bool `yaml:"fallback,omitempty"`
}
func (*ClientOption) GetBeaconImage ¶
func (client *ClientOption) GetBeaconImage() string
Get the beacon & validator images for a client
func (*ClientOption) GetParamByEnvName ¶ added in v1.0.0
func (client *ClientOption) GetParamByEnvName(env string) *ClientParam
Get a client parameter by its environment variable name
func (*ClientOption) GetValidatorImage ¶
func (client *ClientOption) GetValidatorImage() string
type ClientParam ¶
type ClientParam struct {
Name string `yaml:"name,omitempty"`
Desc string `yaml:"desc,omitempty"`
Env string `yaml:"env,omitempty"`
Required bool `yaml:"required,omitempty"`
Regex string `yaml:"regex,omitempty"`
Type string `yaml:"type,omitempty"`
Default string `yaml:"default,omitempty"`
Max string `yaml:"max,omitempty"`
BlankText string `yaml:"blankText,omitempty"`
Advanced bool `yaml:"advanced,omitempty"`
}
type ConsensusClient ¶ added in v1.3.0
type ConsensusClient string
const ( ConsensusClient_Unknown ConsensusClient = "" ConsensusClient_Lighthouse ConsensusClient = "lighthouse" ConsensusClient_Nimbus ConsensusClient = "nimbus" ConsensusClient_Prysm ConsensusClient = "prysm" ConsensusClient_Teku ConsensusClient = "teku" )
Enum to describe the Consensus client options
type ConsensusCommonConfig ¶ added in v1.3.0
type ConsensusCommonConfig struct {
Title string `yaml:"title,omitempty"`
// Custom proposal graffiti
Graffiti Parameter `yaml:"graffiti,omitempty"`
// The checkpoint sync URL if used
CheckpointSyncProvider Parameter `yaml:"checkpointSyncProvider,omitempty"`
// The max number of P2P peers to connect to
MaxPeers Parameter `yaml:"maxPeers,omitempty"`
// The port to use for gossip traffic
P2pPort Parameter `yaml:"p2pPort,omitempty"`
// The port to expose the HTTP API on
ApiPort Parameter `yaml:"apiPort,omitempty"`
// Toggle for forwarding the HTTP API port outside of Docker
OpenApiPort Parameter `yaml:"openApiPort,omitempty"`
// Toggle for enabling doppelganger detection
DoppelgangerDetection Parameter `yaml:"doppelgangerDetection,omitempty"`
}
Common parameters shared by all of the Beacon Clients
func NewConsensusCommonConfig ¶ added in v1.3.0
func NewConsensusCommonConfig(config *RocketPoolConfig) *ConsensusCommonConfig
Create a new ConsensusCommonParams struct
func (*ConsensusCommonConfig) GetConfigTitle ¶ added in v1.3.0
func (config *ConsensusCommonConfig) GetConfigTitle() string
The the title for the config
func (*ConsensusCommonConfig) GetParameters ¶ added in v1.3.0
func (config *ConsensusCommonConfig) GetParameters() []*Parameter
Get the parameters for this config
type ConsensusConfig ¶ added in v1.3.0
Interface for common Consensus configurations
type ContainerID ¶ added in v1.3.0
type ContainerID string
const ( ContainerID_Unknown ContainerID = "" ContainerID_Api ContainerID = "api" ContainerID_Node ContainerID = "node" ContainerID_Watchtower ContainerID = "watchtower" ContainerID_Eth1 ContainerID = "eth1" ContainerID_Eth1Fallback ContainerID = "eth1-fallback" ContainerID_Eth2 ContainerID = "eth2" ContainerID_Validator ContainerID = "validator" ContainerID_Grafana ContainerID = "grafana" ContainerID_Prometheus ContainerID = "prometheus" ContainerID_Exporter ContainerID = "exporter" )
Enum to describe which container(s) a parameter impacts, so the Smartnode knows which ones to restart upon a settings change
type ExecutionClient ¶ added in v1.3.0
type ExecutionClient string
const ( ExecutionClient_Unknown ExecutionClient = "" ExecutionClient_Geth ExecutionClient = "geth" ExecutionClient_Infura ExecutionClient = "infura" ExecutionClient_Pocket ExecutionClient = "pocket" )
Enum to describe the Execution client options
type ExecutionCommonConfig ¶ added in v1.3.0
type ExecutionCommonConfig struct {
Title string `yaml:"title,omitempty"`
// The HTTP API port
HttpPort Parameter `yaml:"httpPort,omitempty"`
// The Websocket API port
WsPort Parameter `yaml:"wsPort,omitempty"`
// Toggle for forwarding the HTTP and Websocket API ports outside of Docker
OpenRpcPorts Parameter `yaml:"openRpcPorts,omitempty"`
}
Configuration for the Execution client
func NewExecutionCommonConfig ¶ added in v1.3.0
func NewExecutionCommonConfig(config *RocketPoolConfig, isFallback bool) *ExecutionCommonConfig
Create a new ExecutionCommonConfig struct
func (*ExecutionCommonConfig) GetConfigTitle ¶ added in v1.3.0
func (config *ExecutionCommonConfig) GetConfigTitle() string
The the title for the config
func (*ExecutionCommonConfig) GetParameters ¶ added in v1.3.0
func (config *ExecutionCommonConfig) GetParameters() []*Parameter
Get the parameters for this config
type ExporterConfig ¶ added in v1.3.0
type ExporterConfig struct {
Title string `yaml:"title,omitempty"`
// Toggle for enabling access to the root filesystem (for multiple disk usage metrics)
RootFs Parameter `yaml:"rootFs,omitempty"`
// The port to serve metrics on
Port Parameter `yaml:"port,omitempty"`
// The Docker Hub tag for Prometheus
ContainerTag Parameter `yaml:"containerTag,omitempty"`
}
Configuration for Exporter
func NewExporterConfig ¶ added in v1.3.0
func NewExporterConfig(config *RocketPoolConfig) *ExporterConfig
Generates a new Exporter config
func (*ExporterConfig) GetConfigTitle ¶ added in v1.3.0
func (config *ExporterConfig) GetConfigTitle() string
The the title for the config
func (*ExporterConfig) GetParameters ¶ added in v1.3.0
func (config *ExporterConfig) GetParameters() []*Parameter
Get the parameters for this config
type ExternalConsensusConfig ¶ added in v1.3.0
type ExternalConsensusConfig interface {
GetApiUrl() string
}
Interface for External Consensus configurations
type ExternalExecutionConfig ¶ added in v1.3.0
type ExternalExecutionConfig struct {
Title string `yaml:"title,omitempty"`
// The URL of the HTTP endpoint
HttpUrl Parameter `yaml:"httpUrl,omitempty"`
// The URL of the websocket endpoint
WsUrl Parameter `yaml:"wsUrl,omitempty"`
}
Configuration for external Execution clients
func NewExternalExecutionConfig ¶ added in v1.3.0
func NewExternalExecutionConfig(config *RocketPoolConfig) *ExternalExecutionConfig
Generates a new ExternalExecutionConfig configuration
func (*ExternalExecutionConfig) GetConfigTitle ¶ added in v1.3.0
func (config *ExternalExecutionConfig) GetConfigTitle() string
The the title for the config
func (*ExternalExecutionConfig) GetParameters ¶ added in v1.3.0
func (config *ExternalExecutionConfig) GetParameters() []*Parameter
Get the parameters for this config
type ExternalLighthouseConfig ¶ added in v1.3.0
type ExternalLighthouseConfig struct {
Title string `yaml:"title,omitempty"`
// The URL of the HTTP endpoint
HttpUrl Parameter `yaml:"httpUrl,omitempty"`
// Custom proposal graffiti
Graffiti Parameter `yaml:"graffiti,omitempty"`
// Toggle for enabling doppelganger detection
DoppelgangerDetection Parameter `yaml:"doppelgangerDetection,omitempty"`
// The Docker Hub tag for Lighthouse
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags for the VC
AdditionalVcFlags Parameter `yaml:"additionalVcFlags,omitempty"`
}
Configuration for external Consensus clients
func NewExternalLighthouseConfig ¶ added in v1.3.0
func NewExternalLighthouseConfig(config *RocketPoolConfig) *ExternalLighthouseConfig
Generates a new ExternalLighthouseClient configuration
func (*ExternalLighthouseConfig) GetApiUrl ¶ added in v1.3.0
func (config *ExternalLighthouseConfig) GetApiUrl() string
Get the API url from the config
func (*ExternalLighthouseConfig) GetConfigTitle ¶ added in v1.3.0
func (config *ExternalLighthouseConfig) GetConfigTitle() string
The the title for the config
func (*ExternalLighthouseConfig) GetName ¶ added in v1.3.0
func (config *ExternalLighthouseConfig) GetName() string
Get the name of the client
func (*ExternalLighthouseConfig) GetParameters ¶ added in v1.3.0
func (config *ExternalLighthouseConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*ExternalLighthouseConfig) GetValidatorImage ¶ added in v1.3.0
func (config *ExternalLighthouseConfig) GetValidatorImage() string
Get the Docker container name of the validator client
type ExternalPrysmConfig ¶ added in v1.3.0
type ExternalPrysmConfig struct {
Title string `yaml:"title,omitempty"`
// The URL of the gRPC (REST) endpoint for the Beacon API
HttpUrl Parameter `yaml:"httpUrl,omitempty"`
// Custom proposal graffiti
Graffiti Parameter `yaml:"graffiti,omitempty"`
// Toggle for enabling doppelganger detection
DoppelgangerDetection Parameter `yaml:"doppelgangerDetection,omitempty"`
// The URL of the JSON-RPC endpoint for the Validator client
JsonRpcUrl Parameter `yaml:"jsonRpcUrl,omitempty"`
// The Docker Hub tag for Prysm's VC
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags for the VC
AdditionalVcFlags Parameter `yaml:"additionalVcFlags,omitempty"`
}
Configuration for an external Prysm clients
func NewExternalPrysmConfig ¶ added in v1.3.0
func NewExternalPrysmConfig(config *RocketPoolConfig) *ExternalPrysmConfig
Generates a new ExternalPrysmConfig configuration
func (*ExternalPrysmConfig) GetApiUrl ¶ added in v1.3.0
func (config *ExternalPrysmConfig) GetApiUrl() string
Get the API url from the config
func (*ExternalPrysmConfig) GetConfigTitle ¶ added in v1.3.0
func (config *ExternalPrysmConfig) GetConfigTitle() string
The the title for the config
func (*ExternalPrysmConfig) GetName ¶ added in v1.3.0
func (config *ExternalPrysmConfig) GetName() string
Get the name of the client
func (*ExternalPrysmConfig) GetParameters ¶ added in v1.3.0
func (config *ExternalPrysmConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*ExternalPrysmConfig) GetValidatorImage ¶ added in v1.3.0
func (config *ExternalPrysmConfig) GetValidatorImage() string
Get the Docker container name of the validator client
type ExternalTekuConfig ¶ added in v1.3.0
type ExternalTekuConfig struct {
Title string `yaml:"title,omitempty"`
// The URL of the HTTP endpoint
HttpUrl Parameter `yaml:"httpUrl,omitempty"`
// Custom proposal graffiti
Graffiti Parameter `yaml:"graffiti,omitempty"`
// The Docker Hub tag for Teku
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags for the VC
AdditionalVcFlags Parameter `yaml:"additionalVcFlags,omitempty"`
}
Configuration for an external Teku client
func NewExternalTekuConfig ¶ added in v1.3.0
func NewExternalTekuConfig(config *RocketPoolConfig) *ExternalTekuConfig
Generates a new ExternalTekuClient configuration
func (*ExternalTekuConfig) GetApiUrl ¶ added in v1.3.0
func (config *ExternalTekuConfig) GetApiUrl() string
Get the API url from the config
func (*ExternalTekuConfig) GetConfigTitle ¶ added in v1.3.0
func (config *ExternalTekuConfig) GetConfigTitle() string
The the title for the config
func (*ExternalTekuConfig) GetName ¶ added in v1.3.0
func (config *ExternalTekuConfig) GetName() string
Get the name of the client
func (*ExternalTekuConfig) GetParameters ¶ added in v1.3.0
func (config *ExternalTekuConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*ExternalTekuConfig) GetValidatorImage ¶ added in v1.3.0
func (config *ExternalTekuConfig) GetValidatorImage() string
Get the Docker container name of the validator client
type GethConfig ¶ added in v1.3.0
type GethConfig struct {
Title string `yaml:"title,omitempty"`
// Common parameters that Geth doesn't support and should be hidden
UnsupportedCommonParams []string `yaml:"unsupportedCommonParams,omitempty"`
// Compatible consensus clients
CompatibleConsensusClients []ConsensusClient `yaml:"compatibleConsensusClients,omitempty"`
// The max number of events to query in a single event log query
EventLogInterval int `yaml:"eventLogInterval,omitempty"`
// Size of Geth's Cache
CacheSize Parameter `yaml:"cacheSize,omitempty"`
// Max number of P2P peers to connect to
MaxPeers Parameter `yaml:"maxPeers,omitempty"`
// P2P traffic port
P2pPort Parameter `yaml:"p2pPort,omitempty"`
// Label for Ethstats
EthstatsLabel Parameter `yaml:"ethstatsLabel,omitempty"`
// Login info for Ethstats
EthstatsLogin Parameter `yaml:"ethstatsLogin,omitempty"`
// The Docker Hub tag for Geth
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags
AdditionalFlags Parameter `yaml:"additionalFlags,omitempty"`
}
Configuration for Geth
func NewGethConfig ¶ added in v1.3.0
func NewGethConfig(config *RocketPoolConfig, isFallback bool) *GethConfig
Generates a new Geth configuration
func (*GethConfig) GetConfigTitle ¶ added in v1.3.0
func (config *GethConfig) GetConfigTitle() string
The the title for the config
func (*GethConfig) GetParameters ¶ added in v1.3.0
func (config *GethConfig) GetParameters() []*Parameter
Get the parameters for this config
type GrafanaConfig ¶ added in v1.3.0
type GrafanaConfig struct {
Title string `yaml:"title,omitempty"`
// The HTTP port to serve on
Port Parameter `yaml:"port,omitempty"`
// The Docker Hub tag for Grafana
ContainerTag Parameter `yaml:"containerTag,omitempty"`
}
Configuration for Grafana
func NewGrafanaConfig ¶ added in v1.3.0
func NewGrafanaConfig(config *RocketPoolConfig) *GrafanaConfig
Generates a new Grafana config
func (*GrafanaConfig) GetConfigTitle ¶ added in v1.3.0
func (config *GrafanaConfig) GetConfigTitle() string
The the title for the config
func (*GrafanaConfig) GetParameters ¶ added in v1.3.0
func (config *GrafanaConfig) GetParameters() []*Parameter
Get the parameters for this config
type InfuraConfig ¶ added in v1.3.0
type InfuraConfig struct {
Title string `yaml:"title,omitempty"`
// Common parameters that Infura doesn't support and should be hidden
UnsupportedCommonParams []string `yaml:"unsupportedCommonParams,omitempty"`
// Compatible consensus clients
CompatibleConsensusClients []ConsensusClient `yaml:"compatibleConsensusClients,omitempty"`
// The max number of events to query in a single event log query
EventLogInterval int `yaml:"eventLogInterval,omitempty"`
// The Infura project ID
ProjectID Parameter `yaml:"projectID,omitempty"`
// The Docker Hub tag for Geth
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags
AdditionalFlags Parameter `yaml:"additionalFlags,omitempty"`
}
Configuration for Infura
func NewInfuraConfig ¶ added in v1.3.0
func NewInfuraConfig(config *RocketPoolConfig, isFallback bool) *InfuraConfig
Generates a new Infura configuration
func (*InfuraConfig) GetConfigTitle ¶ added in v1.3.0
func (config *InfuraConfig) GetConfigTitle() string
The the title for the config
func (*InfuraConfig) GetParameters ¶ added in v1.3.0
func (config *InfuraConfig) GetParameters() []*Parameter
Get the parameters for this config
type LegacyRocketPoolConfig ¶ added in v1.3.0
type LegacyRocketPoolConfig struct {
Rocketpool struct {
StorageAddress string `yaml:"storageAddress,omitempty"`
OneInchOracleAddress string `yaml:"oneInchOracleAddress,omitempty"`
RplTokenAddress string `yaml:"rplTokenAddress,omitempty"`
RPLFaucetAddress string `yaml:"rplFaucetAddress,omitempty"`
} `yaml:"rocketpool,omitempty"`
Smartnode struct {
ProjectName string `yaml:"projectName,omitempty"`
GraffitiVersion string `yaml:"graffitiVersion,omitempty"`
Image string `yaml:"image,omitempty"`
PasswordPath string `yaml:"passwordPath,omitempty"`
WalletPath string `yaml:"walletPath,omitempty"`
ValidatorKeychainPath string `yaml:"validatorKeychainPath,omitempty"`
ValidatorRestartCommand string `yaml:"validatorRestartCommand,omitempty"`
MaxFee float64 `yaml:"maxFee,omitempty"`
MaxPriorityFee float64 `yaml:"maxPriorityFee,omitempty"`
GasLimit uint64 `yaml:"gasLimit,omitempty"`
RplClaimGasThreshold float64 `yaml:"rplClaimGasThreshold,omitempty"`
MinipoolStakeGasThreshold float64 `yaml:"minipoolStakeGasThreshold,omitempty"`
TxWatchUrl string `yaml:"txWatchUrl,omitempty"`
StakeUrl string `yaml:"stakeUrl,omitempty"`
} `yaml:"smartnode,omitempty"`
Chains struct {
Eth1 Chain `yaml:"eth1,omitempty"`
Eth1Fallback Chain `yaml:"eth1Fallback,omitempty"`
Eth2 Chain `yaml:"eth2,omitempty"`
} `yaml:"chains,omitempty"`
Metrics Metrics `yaml:"metrics,omitempty"`
}
Rocket Pool config
func Merge ¶
func Merge(configs ...*LegacyRocketPoolConfig) (LegacyRocketPoolConfig, error)
Merge configs
func Parse ¶
func Parse(bytes []byte) (LegacyRocketPoolConfig, error)
Parse a config from yaml bytes
func (*LegacyRocketPoolConfig) GetGasLimit ¶ added in v1.3.0
func (config *LegacyRocketPoolConfig) GetGasLimit() (uint64, error)
Parse and return the gas limit
func (*LegacyRocketPoolConfig) GetMaxFee ¶ added in v1.3.0
func (config *LegacyRocketPoolConfig) GetMaxFee() (*big.Int, error)
Parse and return the max fee in wei
func (*LegacyRocketPoolConfig) GetMaxPriorityFee ¶ added in v1.3.0
func (config *LegacyRocketPoolConfig) GetMaxPriorityFee() (*big.Int, error)
Parse and return the max priority fee in wei
func (*LegacyRocketPoolConfig) GetSelectedEth1Client ¶ added in v1.3.0
func (config *LegacyRocketPoolConfig) GetSelectedEth1Client() *ClientOption
Get the selected clients from a config
func (*LegacyRocketPoolConfig) GetSelectedEth1FallbackClient ¶ added in v1.3.0
func (config *LegacyRocketPoolConfig) GetSelectedEth1FallbackClient() *ClientOption
func (*LegacyRocketPoolConfig) GetSelectedEth2Client ¶ added in v1.3.0
func (config *LegacyRocketPoolConfig) GetSelectedEth2Client() *ClientOption
func (*LegacyRocketPoolConfig) Serialize ¶ added in v1.3.0
func (config *LegacyRocketPoolConfig) Serialize() ([]byte, error)
Serialize a config to yaml bytes
type LighthouseConfig ¶ added in v1.3.0
type LighthouseConfig struct {
Title string `yaml:"title,omitempty"`
// Common parameters that Lighthouse doesn't support and should be hidden
UnsupportedCommonParams []string `yaml:"unsupportedCommonParams,omitempty"`
// The Docker Hub tag for Lighthouse
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags for the BN
AdditionalBnFlags Parameter `yaml:"additionalBnFlags,omitempty"`
// Custom command line flags for the VC
AdditionalVcFlags Parameter `yaml:"additionalVcFlags,omitempty"`
}
Configuration for Lighthouse
func NewLighthouseConfig ¶ added in v1.3.0
func NewLighthouseConfig(config *RocketPoolConfig) *LighthouseConfig
Generates a new Lighthouse configuration
func (*LighthouseConfig) GetConfigTitle ¶ added in v1.3.0
func (config *LighthouseConfig) GetConfigTitle() string
The the title for the config
func (*LighthouseConfig) GetName ¶ added in v1.3.0
func (config *LighthouseConfig) GetName() string
Get the name of the client
func (*LighthouseConfig) GetParameters ¶ added in v1.3.0
func (config *LighthouseConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*LighthouseConfig) GetUnsupportedCommonParams ¶ added in v1.3.0
func (config *LighthouseConfig) GetUnsupportedCommonParams() []string
Get the common params that this client doesn't support
func (*LighthouseConfig) GetValidatorImage ¶ added in v1.3.0
func (config *LighthouseConfig) GetValidatorImage() string
Get the Docker container name of the validator client
type LocalConsensusConfig ¶ added in v1.3.0
type LocalConsensusConfig interface {
GetUnsupportedCommonParams() []string
}
Interface for Local Consensus configurations
type Metrics ¶ added in v1.0.0
type Metrics struct {
Enabled bool `yaml:"enabled,omitempty"`
Params []ClientParam `yaml:"params,omitempty"`
Settings []UserParam `yaml:"settings,omitempty"`
}
func (*Metrics) GetParamByEnvName ¶ added in v1.0.0
func (metrics *Metrics) GetParamByEnvName(env string) *ClientParam
Get a metrics parameter by its environment variable name
type NimbusConfig ¶ added in v1.3.0
type NimbusConfig struct {
Title string `yaml:"title,omitempty"`
// Common parameters that Nimbus doesn't support and should be hidden
UnsupportedCommonParams []string `yaml:"unsupportedCommonParams,omitempty"`
// The Docker Hub tag for Nimbus
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags for Nimbus
AdditionalFlags Parameter `yaml:"additionalFlags,omitempty"`
}
Configuration for Nimbus
func NewNimbusConfig ¶ added in v1.3.0
func NewNimbusConfig(config *RocketPoolConfig) *NimbusConfig
Generates a new Nimbus configuration
func (*NimbusConfig) GetConfigTitle ¶ added in v1.3.0
func (config *NimbusConfig) GetConfigTitle() string
The the title for the config
func (*NimbusConfig) GetName ¶ added in v1.3.0
func (config *NimbusConfig) GetName() string
Get the name of the client
func (*NimbusConfig) GetParameters ¶ added in v1.3.0
func (config *NimbusConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*NimbusConfig) GetUnsupportedCommonParams ¶ added in v1.3.0
func (config *NimbusConfig) GetUnsupportedCommonParams() []string
Get the common params that this client doesn't support
func (*NimbusConfig) GetValidatorImage ¶ added in v1.3.0
func (config *NimbusConfig) GetValidatorImage() string
Get the Docker container name of the validator client
type Parameter ¶ added in v1.3.0
type Parameter struct {
ID string `yaml:"id,omitempty"`
Name string `yaml:"name,omitempty"`
Description string `yaml:"description,omitempty"`
Type ParameterType `yaml:"type,omitempty"`
Default map[Network]interface{} `yaml:"default,omitempty"`
Advanced bool `yaml:"advanced,omitempty"`
AffectsContainers []ContainerID `yaml:"affectsContainers,omitempty"`
EnvironmentVariables []string `yaml:"environmentVariables,omitempty"`
CanBeBlank bool `yaml:"canBeBlank,omitempty"`
OverwriteOnUpgrade bool `yaml:"overwriteOnUpgrade,omitempty"`
Options []ParameterOption `yaml:"options,omitempty"`
Value interface{} `yaml:"value,omitempty"`
}
A parameter that can be configured by the user
func (*Parameter) GetDefault ¶ added in v1.3.0
Get the default value for the provided network
type ParameterOption ¶ added in v1.3.0
type ParameterOption struct {
Name string `yaml:"name,omitempty"`
Description string `yaml:"description,omitempty"`
Value interface{} `yaml:"value,omitempty"`
}
A single option in a choice parameter
type ParameterType ¶ added in v1.3.0
type ParameterType string
const ( ParameterType_Unknown ParameterType = "" ParameterType_Int ParameterType = "int" ParameterType_Uint16 ParameterType = "uint16" ParameterType_Uint ParameterType = "uint" ParameterType_String ParameterType = "string" ParameterType_Bool ParameterType = "bool" ParameterType_Choice ParameterType = "choice" ParameterType_Float ParameterType = "float" )
Enum to describe which data type a parameter's value will have, which informs the corresponding UI element and value validation
type PocketConfig ¶ added in v1.3.0
type PocketConfig struct {
Title string `yaml:"title,omitempty"`
// Common parameters that Pocket doesn't support and should be hidden
UnsupportedCommonParams []string `yaml:"unsupportedCommonParams,omitempty"`
// Compatible consensus clients
CompatibleConsensusClients []ConsensusClient `yaml:"compatibleConsensusClients,omitempty"`
// The max number of events to query in a single event log query
EventLogInterval int `yaml:"eventLogInterval,omitempty"`
// The Pocket gateway ID
GatewayID Parameter `yaml:"gatewayID,omitempty"`
// The Docker Hub tag for Geth
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags
AdditionalFlags Parameter `yaml:"additionalFlags,omitempty"`
}
Configuration for Pocket
func NewPocketConfig ¶ added in v1.3.0
func NewPocketConfig(config *RocketPoolConfig, isFallback bool) *PocketConfig
Generates a new Pocket configuration
func (*PocketConfig) GetConfigTitle ¶ added in v1.3.0
func (config *PocketConfig) GetConfigTitle() string
The the title for the config
func (*PocketConfig) GetParameters ¶ added in v1.3.0
func (config *PocketConfig) GetParameters() []*Parameter
Get the parameters for this config
type PrometheusConfig ¶ added in v1.3.0
type PrometheusConfig struct {
Title string `yaml:"title,omitempty"`
// The port to serve metrics on
Port Parameter `yaml:"port,omitempty"`
// Toggle for forwarding the API port outside of Docker
OpenPort Parameter `yaml:"openPort,omitempty"`
// The Docker Hub tag for Prometheus
ContainerTag Parameter `yaml:"containerTag,omitempty"`
}
Configuration for Prometheus
func NewPrometheusConfig ¶ added in v1.3.0
func NewPrometheusConfig(config *RocketPoolConfig) *PrometheusConfig
Generates a new Prometheus config
func (*PrometheusConfig) GetConfigTitle ¶ added in v1.3.0
func (config *PrometheusConfig) GetConfigTitle() string
The the title for the config
func (*PrometheusConfig) GetParameters ¶ added in v1.3.0
func (config *PrometheusConfig) GetParameters() []*Parameter
Get the parameters for this config
type PrysmConfig ¶ added in v1.3.0
type PrysmConfig struct {
Title string `yaml:"title,omitempty"`
// Common parameters that Prysm doesn't support and should be hidden
UnsupportedCommonParams []string `yaml:"unsupportedCommonParams,omitempty"`
// The RPC port for BN / VC connections
RpcPort Parameter `yaml:"rpcPort,omitempty"`
// Toggle for forwarding the RPC API outside of Docker
OpenRpcPort Parameter `yaml:"openRpcPort,omitempty"`
// The Docker Hub tag for the Prysm BN
BnContainerTag Parameter `yaml:"bnContainerTag,omitempty"`
// The Docker Hub tag for the Prysm VC
VcContainerTag Parameter `yaml:"vcContainerTag,omitempty"`
// Custom command line flags for the BN
AdditionalBnFlags Parameter `yaml:"additionalBnFlags,omitempty"`
// Custom command line flags for the VC
AdditionalVcFlags Parameter `yaml:"additionalVcFlags,omitempty"`
}
Configuration for Prysm
func NewPrysmConfig ¶ added in v1.3.0
func NewPrysmConfig(config *RocketPoolConfig) *PrysmConfig
Generates a new Prysm configuration
func (*PrysmConfig) GetConfigTitle ¶ added in v1.3.0
func (config *PrysmConfig) GetConfigTitle() string
The the title for the config
func (*PrysmConfig) GetName ¶ added in v1.3.0
func (config *PrysmConfig) GetName() string
Get the name of the client
func (*PrysmConfig) GetParameters ¶ added in v1.3.0
func (config *PrysmConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*PrysmConfig) GetUnsupportedCommonParams ¶ added in v1.3.0
func (config *PrysmConfig) GetUnsupportedCommonParams() []string
Get the common params that this client doesn't support
func (*PrysmConfig) GetValidatorImage ¶ added in v1.3.0
func (config *PrysmConfig) GetValidatorImage() string
Get the Docker container name of the validator client
type RocketPoolConfig ¶
type RocketPoolConfig struct {
Title string `yaml:"title,omitempty"`
RocketPoolDirectory string `yaml:"rocketPoolDirectory,omitempty"`
// Execution client settings
ExecutionClientMode Parameter `yaml:"executionClientMode"`
ExecutionClient Parameter `yaml:"executionClient"`
// Fallback execution client settings
UseFallbackExecutionClient Parameter `yaml:"useFallbackExecutionClient,omitempty"`
FallbackExecutionClientMode Parameter `yaml:"fallbackExecutionClientMode,omitempty"`
FallbackExecutionClient Parameter `yaml:"fallbackExecutionClient,omitempty"`
ReconnectDelay Parameter `yaml:"reconnectDelay,omitempty"`
// Consensus client settings
ConsensusClientMode Parameter `yaml:"consensusClientMode,omitempty"`
ConsensusClient Parameter `yaml:"consensusClient,omitempty"`
ExternalConsensusClient Parameter `yaml:"externalConsensusClient,omitempty"`
// Metrics settings
EnableMetrics Parameter `yaml:"enableMetrics,omitempty"`
BnMetricsPort Parameter `yaml:"bnMetricsPort,omitempty"`
VcMetricsPort Parameter `yaml:"vcMetricsPort,omitempty"`
NodeMetricsPort Parameter `yaml:"nodeMetricsPort,omitempty"`
ExporterMetricsPort Parameter `yaml:"exporterMetricsPort,omitempty"`
WatchtowerMetricsPort Parameter `yaml:"watchtowerMetricsPort,omitempty"`
// The Smartnode configuration
Smartnode *SmartnodeConfig `yaml:"smartnode"`
// Execution client configurations
ExecutionCommon *ExecutionCommonConfig `yaml:"executionCommon,omitempty"`
Geth *GethConfig `yaml:"geth,omitempty"`
Infura *InfuraConfig `yaml:"infura,omitempty"`
Pocket *PocketConfig `yaml:"pocket,omitempty"`
ExternalExecution *ExternalExecutionConfig `yaml:"externalExecution,omitempty"`
// Fallback Execution client configurations
FallbackExecutionCommon *ExecutionCommonConfig `yaml:"fallbackExecutionCommon,omitempty"`
FallbackInfura *InfuraConfig `yaml:"fallbackInfura,omitempty"`
FallbackPocket *PocketConfig `yaml:"fallbackPocket,omitempty"`
FallbackExternalExecution *ExternalExecutionConfig `yaml:"fallbackExternalExecution,omitempty"`
// Consensus client configurations
ConsensusCommon *ConsensusCommonConfig `yaml:"consensusCommon,omitempty"`
Lighthouse *LighthouseConfig `yaml:"lighthouse,omitempty"`
Nimbus *NimbusConfig `yaml:"nimbus,omitempty"`
Prysm *PrysmConfig `yaml:"prysm,omitempty"`
Teku *TekuConfig `yaml:"teku,omitempty"`
ExternalLighthouse *ExternalLighthouseConfig `yaml:"externalLighthouse,omitempty"`
ExternalPrysm *ExternalPrysmConfig `yaml:"externalPrysm,omitempty"`
ExternalTeku *ExternalTekuConfig `yaml:"externalTeku,omitempty"`
// Metrics
Grafana *GrafanaConfig `yaml:"grafana,omitempty"`
Prometheus *PrometheusConfig `yaml:"prometheus,omitempty"`
Exporter *ExporterConfig `yaml:"exporter,omitempty"`
}
The master configuration struct
func LoadFromFile ¶ added in v1.3.0
func LoadFromFile(path string) (*RocketPoolConfig, error)
Load configuration settings from a file
func NewRocketPoolConfig ¶ added in v1.3.0
func NewRocketPoolConfig(rpDir string) *RocketPoolConfig
Creates a new Rocket Pool configuration instance
func (*RocketPoolConfig) ChangeNetwork ¶ added in v1.3.0
func (config *RocketPoolConfig) ChangeNetwork(newNetwork Network)
Handle a network change on all of the parameters
func (*RocketPoolConfig) CreateCopy ¶ added in v1.3.0
func (config *RocketPoolConfig) CreateCopy() *RocketPoolConfig
Create a copy of this configuration.
func (*RocketPoolConfig) Deserialize ¶ added in v1.3.0
func (config *RocketPoolConfig) Deserialize(masterMap map[string]map[string]string) error
Deserializes a settings file into this config
func (*RocketPoolConfig) GenerateEnvironmentVariables ¶ added in v1.3.0
func (config *RocketPoolConfig) GenerateEnvironmentVariables() map[string]string
Generates a collection of environment variables based on this config's settings
func (*RocketPoolConfig) GetCompatibleConsensusClients ¶
func (config *RocketPoolConfig) GetCompatibleConsensusClients() ([]ParameterOption, []string)
Get the Consensus clients compatible with the config's EC and fallback EC selection
func (*RocketPoolConfig) GetConfigTitle ¶ added in v1.3.0
func (config *RocketPoolConfig) GetConfigTitle() string
The the title for the config
func (*RocketPoolConfig) GetParameters ¶ added in v1.3.0
func (config *RocketPoolConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*RocketPoolConfig) GetSelectedConsensusClientConfig ¶ added in v1.3.0
func (config *RocketPoolConfig) GetSelectedConsensusClientConfig() (ConsensusConfig, error)
Get the configuration for the selected client
func (*RocketPoolConfig) GetSubconfigs ¶ added in v1.3.0
func (config *RocketPoolConfig) GetSubconfigs() map[string]Config
Get the subconfigurations for this config
type SmartnodeConfig ¶ added in v1.3.0
type SmartnodeConfig struct {
Title string `yaml:"title,omitempty"`
// Docker container prefix
ProjectName Parameter `yaml:"projectName,omitempty"`
// The path of the data folder where everything is stored
DataPath Parameter `yaml:"dataPath,omitempty"`
// The command for restarting the validator container in native mode
ValidatorRestartCommand Parameter `yaml:"validatorRestartCommand,omitempty"`
// Which network we're on
Network Parameter `yaml:"network,omitempty"`
// Manual max fee override
ManualMaxFee Parameter `yaml:"manualMaxFee,omitempty"`
// Manual priority fee override
PriorityFee Parameter `yaml:"priorityFee,omitempty"`
// Threshold for auto RPL claims
RplClaimGasThreshold Parameter `yaml:"rplClaimGasThreshold,omitempty"`
// Threshold for auto minipool stakes
MinipoolStakeGasThreshold Parameter `yaml:"minipoolStakeGasThreshold,omitempty"`
// contains filtered or unexported fields
}
Configuration for the Smartnode
func NewSmartnodeConfig ¶ added in v1.3.0
func NewSmartnodeConfig(config *RocketPoolConfig) *SmartnodeConfig
Generates a new Smartnode configuration
func (*SmartnodeConfig) GetChainID ¶ added in v1.3.0
func (config *SmartnodeConfig) GetChainID() uint
func (*SmartnodeConfig) GetConfigTitle ¶ added in v1.3.0
func (config *SmartnodeConfig) GetConfigTitle() string
The the title for the config
func (*SmartnodeConfig) GetOneInchOracleAddress ¶ added in v1.3.0
func (config *SmartnodeConfig) GetOneInchOracleAddress() string
func (*SmartnodeConfig) GetParameters ¶ added in v1.3.0
func (config *SmartnodeConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*SmartnodeConfig) GetPasswordPath ¶ added in v1.3.0
func (config *SmartnodeConfig) GetPasswordPath() string
func (*SmartnodeConfig) GetPowProxyContainerTag ¶ added in v1.3.0
func (config *SmartnodeConfig) GetPowProxyContainerTag() string
func (*SmartnodeConfig) GetPruneProvisionerContainerTag ¶ added in v1.3.0
func (config *SmartnodeConfig) GetPruneProvisionerContainerTag() string
func (*SmartnodeConfig) GetRplFaucetAddress ¶ added in v1.3.0
func (config *SmartnodeConfig) GetRplFaucetAddress() string
func (*SmartnodeConfig) GetRplTokenAddress ¶ added in v1.3.0
func (config *SmartnodeConfig) GetRplTokenAddress() string
func (*SmartnodeConfig) GetSmartnodeContainerTag ¶ added in v1.3.0
func (config *SmartnodeConfig) GetSmartnodeContainerTag() string
func (*SmartnodeConfig) GetStakeUrl ¶ added in v1.3.0
func (config *SmartnodeConfig) GetStakeUrl() string
func (*SmartnodeConfig) GetStorageAddress ¶ added in v1.3.0
func (config *SmartnodeConfig) GetStorageAddress() string
func (*SmartnodeConfig) GetTxWatchUrl ¶ added in v1.3.0
func (config *SmartnodeConfig) GetTxWatchUrl() string
func (*SmartnodeConfig) GetValidatorKeychainPath ¶ added in v1.3.0
func (config *SmartnodeConfig) GetValidatorKeychainPath() string
func (*SmartnodeConfig) GetWalletPath ¶ added in v1.3.0
func (config *SmartnodeConfig) GetWalletPath() string
type TekuConfig ¶ added in v1.3.0
type TekuConfig struct {
Title string `yaml:"title,omitempty"`
// Common parameters that Teku doesn't support and should be hidden
UnsupportedCommonParams []string `yaml:"unsupportedCommonParams,omitempty"`
// The Docker Hub tag for Lighthouse
ContainerTag Parameter `yaml:"containerTag,omitempty"`
// Custom command line flags for the BN
AdditionalBnFlags Parameter `yaml:"additionalBnFlags,omitempty"`
// Custom command line flags for the VC
AdditionalVcFlags Parameter `yaml:"additionalVcFlags,omitempty"`
}
Configuration for Teku
func NewTekuConfig ¶ added in v1.3.0
func NewTekuConfig(config *RocketPoolConfig) *TekuConfig
Generates a new Teku configuration
func (*TekuConfig) GetConfigTitle ¶ added in v1.3.0
func (config *TekuConfig) GetConfigTitle() string
The the title for the config
func (*TekuConfig) GetName ¶ added in v1.3.0
func (config *TekuConfig) GetName() string
Get the name of the client
func (*TekuConfig) GetParameters ¶ added in v1.3.0
func (config *TekuConfig) GetParameters() []*Parameter
Get the parameters for this config
func (*TekuConfig) GetUnsupportedCommonParams ¶ added in v1.3.0
func (config *TekuConfig) GetUnsupportedCommonParams() []string
Get the common params that this client doesn't support
func (*TekuConfig) GetValidatorImage ¶ added in v1.3.0
func (config *TekuConfig) GetValidatorImage() string
Get the Docker container name of the validator client
Source Files
¶
- config-legacy.go
- consensus-common-config.go
- execution-common-config.go
- exporter-config.go
- external-configs.go
- geth-params.go
- grafana-config.go
- infura-params.go
- lighthouse-config.go
- nimbus-config.go
- parameter.go
- pocket-config.go
- prometheus-config.go
- prysm-config.go
- rocket-pool-config.go
- smartnode-config.go
- teku-config.go
- types.go