config

package
v1.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2022 License: GPL-3.0 Imports: 19 Imported by: 3

Documentation

Index

Constants

View Source
const (
	ApiContainerName          string = "api"
	Eth1ContainerName         string = "eth1"
	Eth1FallbackContainerName string = "eth1-fallback"
	Eth2ContainerName         string = "eth2"
	ExporterContainerName     string = "exporter"
	GrafanaContainerName      string = "grafana"
	MevBoostContainerName     string = "mev-boost"
	NodeContainerName         string = "node"
	PrometheusContainerName   string = "prometheus"
	ValidatorContainerName    string = "validator"
	WatchtowerContainerName   string = "watchtower"

	FeeRecipientFileEnvVar string = "FEE_RECIPIENT_FILE"
	FeeRecipientEnvVar     string = "FEE_RECIPIENT"
)

Constants

View Source
const (
	NetworkID                          string = "network"
	ProjectNameID                      string = "projectName"
	SnapshotID                         string = "rocketpool-dao.eth"
	RewardsTreeFilenameFormat          string = "rp-rewards-%s-%d.json"
	MinipoolPerformanceFilenameFormat  string = "rp-minipool-performance-%s-%d.json"
	RewardsTreeIpfsExtension           string = ".zst"
	RewardsTreesFolder                 string = "rewards-trees"
	DaemonDataPath                     string = "/.rocketpool/data"
	WatchtowerFolder                   string = "watchtower"
	WatchtowerStateFile                string = "state.yml"
	RegenerateRewardsTreeRequestSuffix string = ".request"
	RegenerateRewardsTreeRequestFormat string = "%d" + RegenerateRewardsTreeRequestSuffix
	PrimaryRewardsFileUrl              string = "https://%s.ipfs.dweb.link/%s"
	SecondaryRewardsFileUrl            string = "https://ipfs.io/ipfs/%s/%s"
	FeeRecipientFilename               string = "rp-fee-recipient.txt"
	NativeFeeRecipientFilename         string = "rp-fee-recipient-env.txt"
)

Constants

View Source
const ApiPortID string = "apiPort"
View Source
const CheckpointSyncUrlID string = "checkpointSyncUrl"
View Source
const DoppelgangerDetectionID string = "doppelgangerDetection"
View Source
const GraffitiID string = "graffiti"

Param IDs

View Source
const OpenApiPortID string = "openApiPort"
View Source
const P2pPortID string = "p2pPort"

Variables

This section is empty.

Functions

func ValidateDefaults added in v1.0.0

func ValidateDefaults(Chain Chain, ChainName string) error

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 BesuConfig added in v1.4.0

type BesuConfig struct {
	Title string `yaml:"-"`

	// Common parameters that Besu doesn't support and should be hidden
	UnsupportedCommonParams []string `yaml:"-"`

	// Compatible consensus clients
	CompatibleConsensusClients []ConsensusClient `yaml:"-"`

	// Max number of P2P peers to connect to
	JvmHeapSize Parameter `yaml:"jvmHeapSize,omitempty"`

	// The max number of events to query in a single event log query
	EventLogInterval int `yaml:"-"`

	// Max number of P2P peers to connect to
	MaxPeers Parameter `yaml:"maxPeers,omitempty"`

	// Historical state block regeneration limit
	MaxBackLayers Parameter `yaml:"maxBackLayers,omitempty"`

	// The Docker Hub tag for Besu
	ContainerTag Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags
	AdditionalFlags Parameter `yaml:"additionalFlags,omitempty"`
}

Configuration for Besu

func NewBesuConfig added in v1.4.0

func NewBesuConfig(config *RocketPoolConfig) *BesuConfig

Generates a new Besu configuration

func (*BesuConfig) GetConfigTitle added in v1.4.0

func (config *BesuConfig) GetConfigTitle() string

The the title for the config

func (*BesuConfig) GetParameters added in v1.4.0

func (config *BesuConfig) GetParameters() []*Parameter

Get the parameters for this config

type BitflyNodeMetricsConfig added in v1.4.0

type BitflyNodeMetricsConfig struct {
	Title string `yaml:"-"`

	Secret Parameter `yaml:"secret,omitempty"`

	Endpoint Parameter `yaml:"endpoint,omitempty"`

	MachineName Parameter `yaml:"machineName,omitempty"`
}

Configuration for Bitfly Node Metrics

func NewBitflyNodeMetricsConfig added in v1.4.0

func NewBitflyNodeMetricsConfig(config *RocketPoolConfig) *BitflyNodeMetricsConfig

Generates a new Bitfly Node Metrics config

func (*BitflyNodeMetricsConfig) GetConfigTitle added in v1.4.0

func (config *BitflyNodeMetricsConfig) GetConfigTitle() string

The the title for the config

func (*BitflyNodeMetricsConfig) GetParameters added in v1.4.0

func (config *BitflyNodeMetricsConfig) GetParameters() []*Parameter

Get the parameters for this config

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 ChangedSetting added in v1.3.0

type ChangedSetting struct {
	Name               string
	OldValue           string
	NewValue           string
	AffectedContainers map[ContainerID]bool
}

A setting that has changed

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 Config added in v1.3.0

type Config interface {
	GetConfigTitle() string
	GetParameters() []*Parameter
}

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:"-"`

	// Custom proposal graffiti
	Graffiti Parameter `yaml:"graffiti,omitempty"`

	// The checkpoint sync URL if used
	CheckpointSyncProvider Parameter `yaml:"checkpointSyncProvider,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

type ConsensusConfig interface {
	GetValidatorImage() string
	GetName() string
}

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_Eth2       ContainerID = "eth2"
	ContainerID_Validator  ContainerID = "validator"
	ContainerID_Grafana    ContainerID = "grafana"
	ContainerID_Prometheus ContainerID = "prometheus"
	ContainerID_Exporter   ContainerID = "exporter"
	ContainerID_MevBoost   ContainerID = "mev-boost"
)

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_Nethermind ExecutionClient = "nethermind"
	ExecutionClient_Besu       ExecutionClient = "besu"
	ExecutionClient_Obs_Infura ExecutionClient = "infura"
	ExecutionClient_Obs_Pocket ExecutionClient = "pocket"
)

Enum to describe the Execution client options

type ExecutionCommonConfig added in v1.3.0

type ExecutionCommonConfig struct {
	Title string `yaml:"-"`

	// The HTTP API port
	HttpPort Parameter `yaml:"httpPort,omitempty"`

	// The Websocket API port
	WsPort Parameter `yaml:"wsPort,omitempty"`

	// The Engine API port
	EnginePort Parameter `yaml:"enginePort,omitempty"`

	// Toggle for forwarding the HTTP and Websocket API ports outside of Docker
	OpenRpcPorts Parameter `yaml:"openRpcPorts,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"`
}

Configuration for the Execution client

func NewExecutionCommonConfig added in v1.3.0

func NewExecutionCommonConfig(config *RocketPoolConfig) *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:"-"`

	// Toggle for enabling access to the root filesystem (for multiple disk usage metrics)
	RootFs Parameter `yaml:"rootFs,omitempty"`

	// The Docker Hub tag for Prometheus
	ContainerTag Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags
	AdditionalFlags Parameter `yaml:"additionalFlags,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:"-"`

	// 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:"-"`

	// 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:"-"`

	// 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:"-"`

	// 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 FallbackNormalConfig added in v1.5.0

type FallbackNormalConfig struct {
	Title string `yaml:"-"`

	// The URL of the Execution Client HTTP endpoint
	EcHttpUrl Parameter `yaml:"ecHttpUrl,omitempty"`

	// The URL of the Beacon Node HTTP endpoint
	CcHttpUrl Parameter `yaml:"ccHttpUrl,omitempty"`
}

Configuration for fallback Lighthouse

func NewFallbackNormalConfig added in v1.5.0

func NewFallbackNormalConfig(config *RocketPoolConfig) *FallbackNormalConfig

Generates a new FallbackNormalConfig configuration

func (*FallbackNormalConfig) GetConfigTitle added in v1.5.0

func (config *FallbackNormalConfig) GetConfigTitle() string

The the title for the config

func (*FallbackNormalConfig) GetParameters added in v1.5.0

func (config *FallbackNormalConfig) GetParameters() []*Parameter

Get the parameters for this config

type FallbackPrysmConfig added in v1.5.0

type FallbackPrysmConfig struct {
	Title string `yaml:"-"`

	// The URL of the Execution Client HTTP endpoint
	EcHttpUrl Parameter `yaml:"ecHttpUrl,omitempty"`

	// The URL of the Beacon Node HTTP endpoint
	CcHttpUrl Parameter `yaml:"ccHttpUrl,omitempty"`

	// The URL of the JSON-RPC endpoint for the Validator client
	JsonRpcUrl Parameter `yaml:"jsonRpcUrl,omitempty"`
}

Configuration for fallback Prysm

func NewFallbackPrysmConfig added in v1.5.0

func NewFallbackPrysmConfig(config *RocketPoolConfig) *FallbackPrysmConfig

Generates a new FallbackPrysmConfig configuration

func (*FallbackPrysmConfig) GetConfigTitle added in v1.5.0

func (config *FallbackPrysmConfig) GetConfigTitle() string

The the title for the config

func (*FallbackPrysmConfig) GetParameters added in v1.5.0

func (config *FallbackPrysmConfig) GetParameters() []*Parameter

Get the parameters for this config

type GethConfig added in v1.3.0

type GethConfig struct {
	Title string `yaml:"-"`

	// Common parameters that Geth doesn't support and should be hidden
	UnsupportedCommonParams []string `yaml:"-"`

	// Compatible consensus clients
	CompatibleConsensusClients []ConsensusClient `yaml:"-"`

	// The max number of events to query in a single event log query
	EventLogInterval int `yaml:"-"`

	// Size of Geth's Cache
	CacheSize Parameter `yaml:"cacheSize,omitempty"`

	// Max number of P2P peers to connect to
	MaxPeers Parameter `yaml:"maxPeers,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) *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:"-"`

	// 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 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 Load

Load merged config from files

func Merge

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:"-"`

	// The max number of P2P peers to connect to
	MaxPeers Parameter `yaml:"maxPeers,omitempty"`

	// Common parameters that Lighthouse doesn't support and should be hidden
	UnsupportedCommonParams []string `yaml:"-"`

	// 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 MevBoostConfig added in v1.5.0

type MevBoostConfig struct {
	Title string `yaml:"-"`

	// Ownership mode
	Mode Parameter `yaml:"mode,omitempty"`

	// MEV Boost relays
	Relays Parameter `yaml:"relays,omitempty"`

	// The RPC port
	Port Parameter `yaml:"port,omitempty"`

	// The Docker Hub tag for MEV Boost
	ContainerTag Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags
	AdditionalFlags Parameter `yaml:"additionalFlags,omitempty"`

	// The URL of an external MEV Boost client
	ExternalUrl Parameter `yaml:"externalUrl"`
}

Configuration for MEV Boost

func NewMevBoostConfig added in v1.5.0

func NewMevBoostConfig(config *RocketPoolConfig) *MevBoostConfig

Generates a new MEV Boost configuration

func (*MevBoostConfig) GetConfigTitle added in v1.5.0

func (config *MevBoostConfig) GetConfigTitle() string

The the title for the config

func (*MevBoostConfig) GetParameters added in v1.5.0

func (config *MevBoostConfig) GetParameters() []*Parameter

Get the parameters for this config

type Mode added in v1.3.0

type Mode string
const (
	Mode_Unknown  Mode = ""
	Mode_Local    Mode = "local"
	Mode_External Mode = "external"
)

Enum to describe the mode for a client - local (Docker Mode) or external (Hybrid Mode)

type NativeConfig added in v1.3.0

type NativeConfig struct {
	Title string `yaml:"-"`

	// The URL of the EC HTTP endpoint
	EcHttpUrl Parameter `yaml:"ecHttpUrl,omitempty"`

	// The selected CC
	ConsensusClient Parameter `yaml:"consensusClient,omitempty"`

	// The URL of the CC HTTP endpoint
	CcHttpUrl Parameter `yaml:"ccHttpUrl,omitempty"`

	// The command for restarting the validator container in native mode
	ValidatorRestartCommand Parameter `yaml:"validatorRestartCommand,omitempty"`

	// The command for stopping the validator container in native mode
	ValidatorStopCommand Parameter `yaml:"validatorStopCommand,omitempty"`
}

Configuration for Native mode

func NewNativeConfig added in v1.3.0

func NewNativeConfig(config *RocketPoolConfig) *NativeConfig

Generates a new Smartnode configuration

func (*NativeConfig) GetConfigTitle added in v1.3.0

func (config *NativeConfig) GetConfigTitle() string

The the title for the config

func (*NativeConfig) GetParameters added in v1.3.0

func (config *NativeConfig) GetParameters() []*Parameter

Get the parameters for this config

type NethermindConfig added in v1.4.0

type NethermindConfig struct {
	Title string `yaml:"-"`

	// Common parameters that Nethermind doesn't support and should be hidden
	UnsupportedCommonParams []string `yaml:"-"`

	// Compatible consensus clients
	CompatibleConsensusClients []ConsensusClient `yaml:"-"`

	// The max number of events to query in a single event log query
	EventLogInterval int `yaml:"-"`

	// Nethermind's cache memory hint
	CacheSize Parameter `yaml:"cacheSize,omitempty"`

	// Max number of P2P peers to connect to
	MaxPeers Parameter `yaml:"maxPeers,omitempty"`

	// Nethermind's memory for pruning
	PruneMemSize Parameter `yaml:"pruneMemSize,omitempty"`

	// The Docker Hub tag for Nethermind
	ContainerTag Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags
	AdditionalFlags Parameter `yaml:"additionalFlags,omitempty"`
}

Configuration for Nethermind

func NewNethermindConfig added in v1.4.0

func NewNethermindConfig(config *RocketPoolConfig) *NethermindConfig

Generates a new Nethermind configuration

func (*NethermindConfig) GetConfigTitle added in v1.4.0

func (config *NethermindConfig) GetConfigTitle() string

The the title for the config

func (*NethermindConfig) GetParameters added in v1.4.0

func (config *NethermindConfig) GetParameters() []*Parameter

Get the parameters for this config

type Network added in v1.3.0

type Network string
const (
	Network_Unknown Network = ""
	Network_All     Network = "all"
	Network_Mainnet Network = "mainnet"
	Network_Prater  Network = "prater"
	Network_Kiln    Network = "kiln"
	Network_Ropsten Network = "ropsten"
)

Enum to describe which network the system is on

type NimbusConfig added in v1.3.0

type NimbusConfig struct {
	Title string `yaml:"-"`

	// The max number of P2P peers to connect to
	MaxPeers Parameter `yaml:"maxPeers,omitempty"`

	// Common parameters that Nimbus doesn't support and should be hidden
	UnsupportedCommonParams []string `yaml:"-"`

	// 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"`
	MaxLength            int                     `yaml:"maxLength,omitempty"`
	Regex                string                  `yaml:"regex,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:"-"`
}

A parameter that can be configured by the user

func (*Parameter) GetDefault added in v1.3.0

func (param *Parameter) GetDefault(network Network) (interface{}, error)

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 PrometheusConfig added in v1.3.0

type PrometheusConfig struct {
	Title string `yaml:"-"`

	// 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"`

	// Custom command line flags
	AdditionalFlags Parameter `yaml:"additionalFlags,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 max number of P2P peers to connect to
	MaxPeers Parameter `yaml:"maxPeers,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 RewardsMode added in v1.5.0

type RewardsMode string
const (
	RewardsMode_Unknown  RewardsMode = ""
	RewardsMode_Download RewardsMode = "download"
	RewardsMode_Generate RewardsMode = "generate"
)

Enum to describe the rewards tree acquisition modes

type RocketPoolConfig

type RocketPoolConfig struct {
	Title string `yaml:"-"`

	Version string `yaml:"-"`

	RocketPoolDirectory string `yaml:"-"`

	IsNativeMode bool `yaml:"-"`

	// Execution client settings
	ExecutionClientMode Parameter `yaml:"executionClientMode,omitempty"`
	ExecutionClient     Parameter `yaml:"executionClient,omitempty"`

	// Fallback settings
	UseFallbackClients Parameter `yaml:"useFallbackClients,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"`
	EcMetricsPort           Parameter `yaml:"ecMetricsPort,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"`
	EnableBitflyNodeMetrics Parameter `yaml:"enableBitflyNodeMetrics,omitempty"`

	// The Smartnode configuration
	Smartnode *SmartnodeConfig `yaml:"smartnode,omitempty"`

	// Execution client configurations
	ExecutionCommon   *ExecutionCommonConfig   `yaml:"executionCommon,omitempty"`
	Geth              *GethConfig              `yaml:"geth,omitempty"`
	Nethermind        *NethermindConfig        `yaml:"nethermind,omitempty"`
	Besu              *BesuConfig              `yaml:"besu,omitempty"`
	ExternalExecution *ExternalExecutionConfig `yaml:"externalExecution,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"`

	// Fallback client configurations
	FallbackNormal *FallbackNormalConfig `yaml:"fallbackNormal,omitempty"`
	FallbackPrysm  *FallbackPrysmConfig  `yaml:"fallbackPrysm,omitempty"`

	// Metrics
	Grafana           *GrafanaConfig           `yaml:"grafana,omitempty"`
	Prometheus        *PrometheusConfig        `yaml:"prometheus,omitempty"`
	Exporter          *ExporterConfig          `yaml:"exporter,omitempty"`
	BitflyNodeMetrics *BitflyNodeMetricsConfig `yaml:"bitflyNodeMetrics,omitempty"`

	// Native mode
	Native *NativeConfig `yaml:"native,omitempty"`

	// MEV Boost
	MevBoost *MevBoostConfig `yaml:"mevBoost,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, isNativeMode bool) *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) GetChanges added in v1.3.0

func (config *RocketPoolConfig) GetChanges(oldConfig *RocketPoolConfig) (map[string][]ChangedSetting, map[ContainerID]bool, bool)

Get all of the settings that have changed between an old config and this config, and get all of the containers that are affected by those changes - also returns whether or not the selected network was changed

func (*RocketPoolConfig) GetConfigTitle added in v1.3.0

func (config *RocketPoolConfig) GetConfigTitle() string

The the title for the config

func (*RocketPoolConfig) GetEventLogInterval added in v1.5.0

func (config *RocketPoolConfig) GetEventLogInterval() (int, error)

Get the configuration for the selected execution client

func (*RocketPoolConfig) GetParameters added in v1.3.0

func (config *RocketPoolConfig) GetParameters() []*Parameter

Get the parameters for this config

func (*RocketPoolConfig) GetSelectedConsensusClient added in v1.5.0

func (config *RocketPoolConfig) GetSelectedConsensusClient() (ConsensusClient, Mode)

Get the selected CC and mode

func (*RocketPoolConfig) GetSelectedConsensusClientConfig added in v1.3.0

func (config *RocketPoolConfig) GetSelectedConsensusClientConfig() (ConsensusConfig, error)

Get the configuration for the selected consensus client

func (*RocketPoolConfig) GetSubconfigs added in v1.3.0

func (config *RocketPoolConfig) GetSubconfigs() map[string]Config

Get the subconfigurations for this config

func (*RocketPoolConfig) IsDoppelgangerEnabled added in v1.4.0

func (config *RocketPoolConfig) IsDoppelgangerEnabled() (bool, error)

Check if doppelganger protection is enabled

func (*RocketPoolConfig) Serialize

func (config *RocketPoolConfig) Serialize() map[string]map[string]string

Serializes the configuration into a map of maps, compatible with a settings file

func (*RocketPoolConfig) UpdateDefaults added in v1.3.0

func (config *RocketPoolConfig) UpdateDefaults() error

Update the default settings for all overwrite-on-upgrade parameters

func (*RocketPoolConfig) Validate added in v1.3.0

func (config *RocketPoolConfig) Validate() []string

Checks to see if the current configuration is valid; if not, returns a list of errors

type SmartnodeConfig added in v1.3.0

type SmartnodeConfig struct {
	Title string `yaml:"-"`

	// Docker container prefix
	ProjectName Parameter `yaml:"projectName,omitempty"`

	// The path of the data folder where everything is stored
	DataPath Parameter `yaml:"dataPath,omitempty"`

	// The path of the watchtower's persistent state storage
	WatchtowerStatePath Parameter `yaml:"watchtowerStatePath"`

	// 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"`

	// Mode for acquiring Merkle rewards trees
	RewardsTreeMode Parameter `yaml:"rewardsTreeMode,omitempty"`

	// URL for an EC with archive mode, for manual rewards tree generation
	ArchiveECUrl Parameter `yaml:"archiveEcUrl,omitempty"`

	// Token for Oracle DAO members to use when uploading Merkle trees to Web3.Storage
	Web3StorageApiToken Parameter `yaml:"web3StorageApiToken,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) GetCustomKeyPasswordFilePath added in v1.4.3

func (config *SmartnodeConfig) GetCustomKeyPasswordFilePath() string

func (*SmartnodeConfig) GetCustomKeyPath added in v1.4.3

func (config *SmartnodeConfig) GetCustomKeyPath() string

func (*SmartnodeConfig) GetEcMigratorContainerTag added in v1.4.0

func (config *SmartnodeConfig) GetEcMigratorContainerTag() string

func (*SmartnodeConfig) GetFeeRecipientFilePath added in v1.5.1

func (config *SmartnodeConfig) GetFeeRecipientFilePath() string

func (*SmartnodeConfig) GetLegacyClaimNodeAddress added in v1.5.0

func (config *SmartnodeConfig) GetLegacyClaimNodeAddress() common.Address

func (*SmartnodeConfig) GetLegacyClaimTrustedNodeAddress added in v1.5.0

func (config *SmartnodeConfig) GetLegacyClaimTrustedNodeAddress() common.Address

func (*SmartnodeConfig) GetLegacyMinipoolManagerAddress added in v1.5.0

func (config *SmartnodeConfig) GetLegacyMinipoolManagerAddress() common.Address

func (*SmartnodeConfig) GetLegacyRewardsPoolAddress added in v1.5.0

func (config *SmartnodeConfig) GetLegacyRewardsPoolAddress() common.Address

func (*SmartnodeConfig) GetMinipoolPerformancePath added in v1.5.0

func (config *SmartnodeConfig) GetMinipoolPerformancePath(interval uint64, daemon bool) string

func (*SmartnodeConfig) GetOneInchOracleAddress added in v1.3.0

func (config *SmartnodeConfig) GetOneInchOracleAddress() string

func (*SmartnodeConfig) GetOptimismMessengerAddress added in v1.5.0

func (config *SmartnodeConfig) GetOptimismMessengerAddress() 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) GetPreviousRewardsPoolAddresses added in v1.5.0

func (config *SmartnodeConfig) GetPreviousRewardsPoolAddresses() map[string][]common.Address

func (*SmartnodeConfig) GetPruneProvisionerContainerTag added in v1.3.0

func (config *SmartnodeConfig) GetPruneProvisionerContainerTag() string

func (*SmartnodeConfig) GetRegenerateRewardsTreeRequestPath added in v1.5.0

func (config *SmartnodeConfig) GetRegenerateRewardsTreeRequestPath(interval uint64, daemon bool) string

func (*SmartnodeConfig) GetRethAddress added in v1.5.0

func (config *SmartnodeConfig) GetRethAddress() common.Address

func (*SmartnodeConfig) GetRewardsTreePath added in v1.5.0

func (config *SmartnodeConfig) GetRewardsTreePath(interval uint64, daemon bool) 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) GetSnapshotDelegationAddress added in v1.4.2

func (config *SmartnodeConfig) GetSnapshotDelegationAddress() 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) GetVotingSnapshotID added in v1.4.2

func (config *SmartnodeConfig) GetVotingSnapshotID() [32]byte

func (*SmartnodeConfig) GetWalletPath added in v1.3.0

func (config *SmartnodeConfig) GetWalletPath() string

func (*SmartnodeConfig) GetWatchtowerFolder added in v1.5.0

func (config *SmartnodeConfig) GetWatchtowerFolder(daemon bool) string

func (*SmartnodeConfig) GetWatchtowerStatePath added in v1.5.0

func (config *SmartnodeConfig) GetWatchtowerStatePath() string

type TekuConfig added in v1.3.0

type TekuConfig struct {
	Title string `yaml:"-"`

	// Common parameters that Teku doesn't support and should be hidden
	UnsupportedCommonParams []string `yaml:"-"`

	// Max number of P2P peers to connect to
	JvmHeapSize Parameter `yaml:"jvmHeapSize,omitempty"`

	// The max number of P2P peers to connect to
	MaxPeers Parameter `yaml:"maxPeers,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

type UserParam

type UserParam struct {
	Env   string `yaml:"env,omitempty"`
	Value string `yaml:"value"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL