config

package
v1.0.13 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2023 License: GPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RegulatedRelayDescription   string = "Select this to enable the relays that comply with government regulations (e.g. OFAC sanctions), "
	UnregulatedRelayDescription string = "Select this to enable the relays that do not follow any sanctions lists (do not censor transactions), "
	NoSandwichRelayDescription  string = "and do not allow front-running or sandwich attacks."
	AllMevRelayDescription      string = "and allow for all types of MEV (including sandwich attacks)."
)

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"
	GithubRewardsFileUrl               string = "https://github.com/PoolSea-Staking-Pool/rewards-trees/raw/main/%s/%s"
	FeeRecipientFilename               string = "rp-fee-recipient.txt"
	NativeFeeRecipientFilename         string = "rp-fee-recipient-env.txt"
)

Constants

View Source
const (
	WatchtowerMaxFeeDefault  uint64 = 200
	WatchtowerPrioFeeDefault uint64 = 3
)

Defaults

View Source
const ApiPortID string = "apiPort"
View Source
const CheckpointSyncUrlID string = "checkpointSyncUrl"
View Source
const CustomGraffitiEnvVar string = "CUSTOM_GRAFFITI"

Env var names

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

func ValidateDefaults(Chain Chain, ChainName string) error

Make sure the default parameter values can be parsed into the parameter types

func ValidateMetricDefaults

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

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

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

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

	// Max number of P2P peers to connect to
	JvmHeapSize config.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 config.Parameter `yaml:"maxPeers,omitempty"`

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

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

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

Configuration for Besu

func NewBesuConfig

func NewBesuConfig(cfg *RocketPoolConfig) *BesuConfig

Generates a new Besu configuration

func (*BesuConfig) GetConfigTitle

func (cfg *BesuConfig) GetConfigTitle() string

The the title for the config

func (*BesuConfig) GetParameters

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

Get the parameters for this config

type BitflyNodeMetricsConfig

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

	Secret config.Parameter `yaml:"secret,omitempty"`

	Endpoint config.Parameter `yaml:"endpoint,omitempty"`

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

Configuration for Bitfly Node Metrics

func NewBitflyNodeMetricsConfig

func NewBitflyNodeMetricsConfig(cfg *RocketPoolConfig) *BitflyNodeMetricsConfig

Generates a new Bitfly Node Metrics config

func (*BitflyNodeMetricsConfig) GetConfigTitle

func (cfg *BitflyNodeMetricsConfig) GetConfigTitle() string

The the title for the config

func (*BitflyNodeMetricsConfig) GetParameters

func (cfg *BitflyNodeMetricsConfig) GetParameters() []*config.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

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

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 ConsensusCommonConfig

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

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

	// The checkpoint sync URL if used
	CheckpointSyncProvider config.Parameter `yaml:"checkpointSyncProvider,omitempty"`

	// The port to use for gossip traffic
	P2pPort config.Parameter `yaml:"p2pPort,omitempty"`

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

	// Toggle for forwarding the HTTP API port outside of Docker
	OpenApiPort config.Parameter `yaml:"openApiPort,omitempty"`

	// Toggle for enabling doppelganger detection
	DoppelgangerDetection config.Parameter `yaml:"doppelgangerDetection,omitempty"`
}

Common parameters shared by all of the Beacon Clients

func NewConsensusCommonConfig

func NewConsensusCommonConfig(cfg *RocketPoolConfig) *ConsensusCommonConfig

Create a new ConsensusCommonParams struct

func (*ConsensusCommonConfig) GetConfigTitle

func (cfg *ConsensusCommonConfig) GetConfigTitle() string

The the title for the config

func (*ConsensusCommonConfig) GetParameters

func (cfg *ConsensusCommonConfig) GetParameters() []*config.Parameter

Get the parameters for this config

type ExecutionCommonConfig

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

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

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

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

	// Toggle for forwarding the HTTP and Websocket API ports outside of Docker
	OpenRpcPorts config.Parameter `yaml:"openRpcPorts,omitempty"`

	// P2P traffic port
	P2pPort config.Parameter `yaml:"p2pPort,omitempty"`

	// Label for Ethstats
	EthstatsLabel config.Parameter `yaml:"ethstatsLabel,omitempty"`

	// Login info for Ethstats
	EthstatsLogin config.Parameter `yaml:"ethstatsLogin,omitempty"`
}

Configuration for the Execution client

func NewExecutionCommonConfig

func NewExecutionCommonConfig(cfg *RocketPoolConfig) *ExecutionCommonConfig

Create a new ExecutionCommonConfig struct

func (*ExecutionCommonConfig) GetConfigTitle

func (cfg *ExecutionCommonConfig) GetConfigTitle() string

The the title for the config

func (*ExecutionCommonConfig) GetParameters

func (cfg *ExecutionCommonConfig) GetParameters() []*config.Parameter

Get the parameters for this config

type ExporterConfig

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

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

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

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

Configuration for Exporter

func NewExporterConfig

func NewExporterConfig(cfg *RocketPoolConfig) *ExporterConfig

Generates a new Exporter config

func (*ExporterConfig) GetConfigTitle

func (cfg *ExporterConfig) GetConfigTitle() string

The the title for the config

func (*ExporterConfig) GetParameters

func (cfg *ExporterConfig) GetParameters() []*config.Parameter

Get the parameters for this config

type ExternalExecutionConfig

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

	// The URL of the HTTP endpoint
	HttpUrl config.Parameter `yaml:"httpUrl,omitempty"`

	// The URL of the websocket endpoint
	WsUrl config.Parameter `yaml:"wsUrl,omitempty"`
}

Configuration for external Execution clients

func NewExternalExecutionConfig

func NewExternalExecutionConfig(cfg *RocketPoolConfig) *ExternalExecutionConfig

Generates a new ExternalExecutionConfig configuration

func (*ExternalExecutionConfig) GetConfigTitle

func (cfg *ExternalExecutionConfig) GetConfigTitle() string

The the title for the config

func (*ExternalExecutionConfig) GetParameters

func (cfg *ExternalExecutionConfig) GetParameters() []*config.Parameter

Get the parameters for this config

type ExternalLighthouseConfig

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

	// The URL of the HTTP endpoint
	HttpUrl config.Parameter `yaml:"httpUrl,omitempty"`

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

	// Toggle for enabling doppelganger detection
	DoppelgangerDetection config.Parameter `yaml:"doppelgangerDetection,omitempty"`

	// The Docker Hub tag for Lighthouse
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for external Consensus clients

func NewExternalLighthouseConfig

func NewExternalLighthouseConfig(cfg *RocketPoolConfig) *ExternalLighthouseConfig

Generates a new ExternalLighthouseClient configuration

func (*ExternalLighthouseConfig) GetApiUrl

func (cfg *ExternalLighthouseConfig) GetApiUrl() string

Get the API url from the config

func (*ExternalLighthouseConfig) GetConfigTitle

func (cfg *ExternalLighthouseConfig) GetConfigTitle() string

The the title for the config

func (*ExternalLighthouseConfig) GetName

func (cfg *ExternalLighthouseConfig) GetName() string

Get the name of the client

func (*ExternalLighthouseConfig) GetParameters

func (cfg *ExternalLighthouseConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*ExternalLighthouseConfig) GetValidatorImage

func (cfg *ExternalLighthouseConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type ExternalLodestarConfig

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

	// The URL of the HTTP endpoint
	HttpUrl config.Parameter `yaml:"httpUrl,omitempty"`

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

	// Toggle for enabling doppelganger detection
	DoppelgangerDetection config.Parameter `yaml:"doppelgangerDetection,omitempty"`

	// The Docker Hub tag for Lighthouse
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for external Consensus clients

func NewExternalLodestarConfig

func NewExternalLodestarConfig(cfg *RocketPoolConfig) *ExternalLodestarConfig

Generates a new ExternalLodestarClient configuration

func (*ExternalLodestarConfig) GetApiUrl

func (cfg *ExternalLodestarConfig) GetApiUrl() string

Get the API url from the config

func (*ExternalLodestarConfig) GetConfigTitle

func (cfg *ExternalLodestarConfig) GetConfigTitle() string

The the title for the config

func (*ExternalLodestarConfig) GetName

func (cfg *ExternalLodestarConfig) GetName() string

Get the name of the client

func (*ExternalLodestarConfig) GetParameters

func (cfg *ExternalLodestarConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*ExternalLodestarConfig) GetValidatorImage

func (cfg *ExternalLodestarConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type ExternalNimbusConfig

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

	// The URL of the HTTP endpoint
	HttpUrl config.Parameter `yaml:"httpUrl,omitempty"`

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

	// Toggle for enabling doppelganger detection
	DoppelgangerDetection config.Parameter `yaml:"doppelgangerDetection,omitempty"`

	// The Docker Hub tag for Lighthouse
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for external Consensus clients

func NewExternalNimbusConfig

func NewExternalNimbusConfig(cfg *RocketPoolConfig) *ExternalNimbusConfig

Generates a new ExternalNimbusConfig configuration

func (*ExternalNimbusConfig) GetApiUrl

func (cfg *ExternalNimbusConfig) GetApiUrl() string

Get the API url from the config

func (*ExternalNimbusConfig) GetConfigTitle

func (cfg *ExternalNimbusConfig) GetConfigTitle() string

The the title for the config

func (*ExternalNimbusConfig) GetName

func (cfg *ExternalNimbusConfig) GetName() string

Get the name of the client

func (*ExternalNimbusConfig) GetParameters

func (cfg *ExternalNimbusConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*ExternalNimbusConfig) GetValidatorImage

func (cfg *ExternalNimbusConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type ExternalPrysmConfig

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

	// The URL of the gRPC (REST) endpoint for the Beacon API
	HttpUrl config.Parameter `yaml:"httpUrl,omitempty"`

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

	// Toggle for enabling doppelganger detection
	DoppelgangerDetection config.Parameter `yaml:"doppelgangerDetection,omitempty"`

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

	// The Docker Hub tag for Prysm's VC
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for an external Prysm clients

func NewExternalPrysmConfig

func NewExternalPrysmConfig(cfg *RocketPoolConfig) *ExternalPrysmConfig

Generates a new ExternalPrysmConfig configuration

func (*ExternalPrysmConfig) GetApiUrl

func (cfg *ExternalPrysmConfig) GetApiUrl() string

Get the API url from the config

func (*ExternalPrysmConfig) GetConfigTitle

func (cfg *ExternalPrysmConfig) GetConfigTitle() string

The the title for the config

func (*ExternalPrysmConfig) GetName

func (cfg *ExternalPrysmConfig) GetName() string

Get the name of the client

func (*ExternalPrysmConfig) GetParameters

func (cfg *ExternalPrysmConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*ExternalPrysmConfig) GetValidatorImage

func (cfg *ExternalPrysmConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type ExternalTekuConfig

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

	// The URL of the HTTP endpoint
	HttpUrl config.Parameter `yaml:"httpUrl,omitempty"`

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

	// The Docker Hub tag for Teku
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for an external Teku client

func NewExternalTekuConfig

func NewExternalTekuConfig(cfg *RocketPoolConfig) *ExternalTekuConfig

Generates a new ExternalTekuClient configuration

func (*ExternalTekuConfig) GetApiUrl

func (cfg *ExternalTekuConfig) GetApiUrl() string

Get the API url from the config

func (*ExternalTekuConfig) GetConfigTitle

func (cfg *ExternalTekuConfig) GetConfigTitle() string

The the title for the config

func (*ExternalTekuConfig) GetName

func (cfg *ExternalTekuConfig) GetName() string

Get the name of the client

func (*ExternalTekuConfig) GetParameters

func (cfg *ExternalTekuConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*ExternalTekuConfig) GetValidatorImage

func (cfg *ExternalTekuConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type FallbackNormalConfig

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

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

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

Configuration for fallback Lighthouse

func NewFallbackNormalConfig

func NewFallbackNormalConfig(cfg *RocketPoolConfig) *FallbackNormalConfig

Generates a new FallbackNormalConfig configuration

func (*FallbackNormalConfig) GetConfigTitle

func (config *FallbackNormalConfig) GetConfigTitle() string

The the title for the config

func (*FallbackNormalConfig) GetParameters

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

Get the config.Parameters for this config

type FallbackPrysmConfig

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

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

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

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

Configuration for fallback Prysm

func NewFallbackPrysmConfig

func NewFallbackPrysmConfig(cfg *RocketPoolConfig) *FallbackPrysmConfig

Generates a new FallbackPrysmConfig configuration

func (*FallbackPrysmConfig) GetConfigTitle

func (config *FallbackPrysmConfig) GetConfigTitle() string

The the title for the config

func (*FallbackPrysmConfig) GetParameters

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

Get the config.Parameters for this config

type GethConfig

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

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

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

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

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

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

	// The Docker Hub tag for Geth
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`

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

Configuration for Geth

func NewGethConfig

func NewGethConfig(cfg *RocketPoolConfig) *GethConfig

Generates a new Geth configuration

func (*GethConfig) GetConfigTitle

func (cfg *GethConfig) GetConfigTitle() string

The the title for the config

func (*GethConfig) GetParameters

func (cfg *GethConfig) GetParameters() []*config.Parameter

Get the config.Parameters for this config

type GrafanaConfig

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

	// The HTTP port to serve on
	Port config.Parameter `yaml:"port,omitempty"`

	// The Docker Hub tag for Grafana
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`
}

Configuration for Grafana

func NewGrafanaConfig

func NewGrafanaConfig(cfg *RocketPoolConfig) *GrafanaConfig

Generates a new Grafana config

func (*GrafanaConfig) GetConfigTitle

func (cfg *GrafanaConfig) GetConfigTitle() string

The the title for the config

func (*GrafanaConfig) GetParameters

func (cfg *GrafanaConfig) GetParameters() []*config.Parameter

Get the parameters for this config

type LegacyRocketPoolConfig

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

poolsea 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

func (config *LegacyRocketPoolConfig) GetGasLimit() (uint64, error)

Parse and return the gas limit

func (*LegacyRocketPoolConfig) GetMaxFee

func (config *LegacyRocketPoolConfig) GetMaxFee() (*big.Int, error)

Parse and return the max fee in wei

func (*LegacyRocketPoolConfig) GetMaxPriorityFee

func (config *LegacyRocketPoolConfig) GetMaxPriorityFee() (*big.Int, error)

Parse and return the max priority fee in wei

func (*LegacyRocketPoolConfig) GetSelectedEth1Client

func (config *LegacyRocketPoolConfig) GetSelectedEth1Client() *ClientOption

Get the selected clients from a config

func (*LegacyRocketPoolConfig) GetSelectedEth1FallbackClient

func (config *LegacyRocketPoolConfig) GetSelectedEth1FallbackClient() *ClientOption

func (*LegacyRocketPoolConfig) GetSelectedEth2Client

func (config *LegacyRocketPoolConfig) GetSelectedEth2Client() *ClientOption

func (*LegacyRocketPoolConfig) Serialize

func (config *LegacyRocketPoolConfig) Serialize() ([]byte, error)

Serialize a config to yaml bytes

type LighthouseConfig

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

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

	// Custom command line flags for the BN
	AdditionalBnFlags config.Parameter `yaml:"additionalBnFlags,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for Lighthouse

func NewLighthouseConfig

func NewLighthouseConfig(cfg *RocketPoolConfig) *LighthouseConfig

Generates a new Lighthouse configuration

func (*LighthouseConfig) GetConfigTitle

func (cfg *LighthouseConfig) GetConfigTitle() string

The the title for the config

func (*LighthouseConfig) GetName

func (cfg *LighthouseConfig) GetName() string

Get the name of the client

func (*LighthouseConfig) GetParameters

func (cfg *LighthouseConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*LighthouseConfig) GetUnsupportedCommonParams

func (cfg *LighthouseConfig) GetUnsupportedCommonParams() []string

Get the common params that this client doesn't support

func (*LighthouseConfig) GetValidatorImage

func (cfg *LighthouseConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type LodestarConfig

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

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

	// Custom command line flags for the BN
	AdditionalBnFlags config.Parameter `yaml:"additionalBnFlags,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for Lodestar

func NewLodestarConfig

func NewLodestarConfig(cfg *RocketPoolConfig) *LodestarConfig

Generates a new Lodestar configuration

func (*LodestarConfig) GetConfigTitle

func (cfg *LodestarConfig) GetConfigTitle() string

The the title for the config

func (*LodestarConfig) GetName

func (cfg *LodestarConfig) GetName() string

Get the name of the client

func (*LodestarConfig) GetParameters

func (cfg *LodestarConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*LodestarConfig) GetUnsupportedCommonParams

func (cfg *LodestarConfig) GetUnsupportedCommonParams() []string

Get the common params that this client doesn't support

func (*LodestarConfig) GetValidatorImage

func (cfg *LodestarConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type Metrics

type Metrics struct {
	Enabled  bool          `yaml:"enabled,omitempty"`
	Params   []ClientParam `yaml:"params,omitempty"`
	Settings []UserParam   `yaml:"settings,omitempty"`
}

func (*Metrics) GetParamByEnvName

func (metrics *Metrics) GetParamByEnvName(env string) *ClientParam

Get a metrics parameter by its environment variable name

type MevBoostConfig

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

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

	// The mode for relay selection
	SelectionMode config.Parameter `yaml:"selectionMode,omitempty"`

	// Regulated, all types
	EnableRegulatedAllMev config.Parameter `yaml:"enableRegulatedAllMev,omitempty"`

	// Regulated, no sandwiching
	EnableRegulatedNoSandwich config.Parameter `yaml:"enableRegulatedNoSandwich,omitempty"`

	// Unregulated, all types
	EnableUnregulatedAllMev config.Parameter `yaml:"enableUnregulatedAllMev,omitempty"`

	// Unregulated, no sandwiching
	EnableUnregulatedNoSandwich config.Parameter `yaml:"enableUnregulatedNoSandwich,omitempty"`

	// Flashbots relay
	FlashbotsRelay config.Parameter `yaml:"flashbotsEnabled,omitempty"`

	// bloXroute ethical relay
	BloxRouteEthicalRelay config.Parameter `yaml:"bloxRouteEthicalEnabled,omitempty"`

	// bloXroute max profit relay
	BloxRouteMaxProfitRelay config.Parameter `yaml:"bloxRouteMaxProfitEnabled,omitempty"`

	// bloXroute regulated relay
	BloxRouteRegulatedRelay config.Parameter `yaml:"bloxRouteRegulatedEnabled,omitempty"`

	// Blocknative relay
	BlocknativeRelay config.Parameter `yaml:"blocknativeEnabled,omitempty"`

	// Eden relay
	EdenRelay config.Parameter `yaml:"edenEnabled,omitempty"`

	// Ultra sound relay
	UltrasoundRelay config.Parameter `yaml:"ultrasoundEnabled,omitempty"`

	// Aestus relay
	AestusRelay config.Parameter `yaml:"aestusEnabled,omitempty"`

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

	// Toggle for forwarding the HTTP port outside of Docker
	OpenRpcPort config.Parameter `yaml:"openRpcPort,omitempty"`

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

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

	// The URL of an external MEV-Boost client
	ExternalUrl config.Parameter `yaml:"externalUrl"`
	// contains filtered or unexported fields
}

Configuration for MEV-Boost

func NewMevBoostConfig

func NewMevBoostConfig(cfg *RocketPoolConfig) *MevBoostConfig

Generates a new MEV-Boost configuration

func (*MevBoostConfig) GetAvailableProfiles

func (cfg *MevBoostConfig) GetAvailableProfiles() (bool, bool, bool, bool)

Get the profiles that are available for the current network

func (*MevBoostConfig) GetAvailableRelays

func (cfg *MevBoostConfig) GetAvailableRelays() []config.MevRelay

Get the relays that are available for the current network

func (*MevBoostConfig) GetConfigTitle

func (cfg *MevBoostConfig) GetConfigTitle() string

The title for the config

func (*MevBoostConfig) GetEnabledMevRelays

func (cfg *MevBoostConfig) GetEnabledMevRelays() []config.MevRelay

Get which MEV-boost relays are enabled

func (*MevBoostConfig) GetParameters

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

Get the config.Parameters for this config

func (*MevBoostConfig) GetRelayString

func (cfg *MevBoostConfig) GetRelayString() string

type NativeConfig

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

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

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

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

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

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

Configuration for Native mode

func NewNativeConfig

func NewNativeConfig(cfg *RocketPoolConfig) *NativeConfig

Generates a new Smartnode configuration

func (*NativeConfig) GetConfigTitle

func (cfg *NativeConfig) GetConfigTitle() string

The the title for the config

func (*NativeConfig) GetParameters

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

Get the parameters for this config

type NethermindConfig

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

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

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

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

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

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

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

	// Flag for downloading complete chain history instead of starting from Beacon deployment
	DownloadCompleteHistory config.Parameter `yaml:"downloadCompleteHistory,omitempty"`

	// Additional modules to enable on the primary JSON RPC endpoint
	AdditionalModules config.Parameter `yaml:"additionalModules,omitempty"`

	// Additional JSON RPC URLs
	AdditionalUrls config.Parameter `yaml:"additionalUrls,omitempty"`

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

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

Configuration for Nethermind

func NewNethermindConfig

func NewNethermindConfig(cfg *RocketPoolConfig) *NethermindConfig

Generates a new Nethermind configuration

func (*NethermindConfig) GetConfigTitle

func (cfg *NethermindConfig) GetConfigTitle() string

The the title for the config

func (*NethermindConfig) GetParameters

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

Get the parameters for this config

type NimbusConfig

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

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

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

	// The Docker Hub tag for the BN
	BnContainerTag config.Parameter `yaml:"bnContainerTag,omitempty"`

	// The Docker Hub tag for the VC
	VcContainerTag config.Parameter `yaml:"vcContainerTag,omitempty"`

	// The pruning mode to use in the BN
	PruningMode config.Parameter `yaml:"pruningMode,omitempty"`

	// Custom command line flags for the BN
	AdditionalBnFlags config.Parameter `yaml:"additionalBnFlags,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for Nimbus

func NewNimbusConfig

func NewNimbusConfig(cfg *RocketPoolConfig) *NimbusConfig

Generates a new Nimbus configuration

func (*NimbusConfig) GetConfigTitle

func (cfg *NimbusConfig) GetConfigTitle() string

The the title for the config

func (*NimbusConfig) GetName

func (cfg *NimbusConfig) GetName() string

Get the name of the client

func (*NimbusConfig) GetParameters

func (cfg *NimbusConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*NimbusConfig) GetUnsupportedCommonParams

func (cfg *NimbusConfig) GetUnsupportedCommonParams() []string

Get the common params that this client doesn't support

func (*NimbusConfig) GetValidatorImage

func (cfg *NimbusConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type PrometheusConfig

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

	// The port to serve metrics on
	Port config.Parameter `yaml:"port,omitempty"`

	// Toggle for forwarding the API port outside of Docker
	OpenPort config.Parameter `yaml:"openPort,omitempty"`

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

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

Configuration for Prometheus

func NewPrometheusConfig

func NewPrometheusConfig(cfg *RocketPoolConfig) *PrometheusConfig

Generates a new Prometheus config

func (*PrometheusConfig) GetConfigTitle

func (cfg *PrometheusConfig) GetConfigTitle() string

The the title for the config

func (*PrometheusConfig) GetParameters

func (cfg *PrometheusConfig) GetParameters() []*config.Parameter

Get the parameters for this config

type PrysmConfig

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 config.Parameter `yaml:"maxPeers,omitempty"`

	// The RPC port for BN / VC connections
	RpcPort config.Parameter `yaml:"rpcPort,omitempty"`

	// Toggle for forwarding the RPC API outside of Docker
	OpenRpcPort config.Parameter `yaml:"openRpcPort,omitempty"`

	// The Docker Hub tag for the Prysm BN
	BnContainerTag config.Parameter `yaml:"bnContainerTag,omitempty"`

	// The Docker Hub tag for the Prysm VC
	VcContainerTag config.Parameter `yaml:"vcContainerTag,omitempty"`

	// Custom command line flags for the BN
	AdditionalBnFlags config.Parameter `yaml:"additionalBnFlags,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for Prysm

func NewPrysmConfig

func NewPrysmConfig(cfg *RocketPoolConfig) *PrysmConfig

Generates a new Prysm configuration

func (*PrysmConfig) GetConfigTitle

func (cfg *PrysmConfig) GetConfigTitle() string

The the title for the config

func (*PrysmConfig) GetName

func (cfg *PrysmConfig) GetName() string

Get the name of the client

func (*PrysmConfig) GetParameters

func (cfg *PrysmConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*PrysmConfig) GetUnsupportedCommonParams

func (cfg *PrysmConfig) GetUnsupportedCommonParams() []string

Get the common params that this client doesn't support

func (*PrysmConfig) GetValidatorImage

func (cfg *PrysmConfig) GetValidatorImage() string

Get the Docker container name of the validator client

type RocketPoolConfig

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

	Version string `yaml:"-"`

	RocketPoolDirectory string `yaml:"-"`

	IsNativeMode bool `yaml:"-"`

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

	// Fallback settings
	UseFallbackClients config.Parameter `yaml:"useFallbackClients,omitempty"`
	ReconnectDelay     config.Parameter `yaml:"reconnectDelay,omitempty"`

	// Consensus client settings
	ConsensusClientMode     config.Parameter `yaml:"consensusClientMode,omitempty"`
	ConsensusClient         config.Parameter `yaml:"consensusClient,omitempty"`
	ExternalConsensusClient config.Parameter `yaml:"externalConsensusClient,omitempty"`

	// Metrics settings
	EnableMetrics           config.Parameter `yaml:"enableMetrics,omitempty"`
	EnableODaoMetrics       config.Parameter `yaml:"enableODaoMetrics,omitempty"`
	EcMetricsPort           config.Parameter `yaml:"ecMetricsPort,omitempty"`
	BnMetricsPort           config.Parameter `yaml:"bnMetricsPort,omitempty"`
	VcMetricsPort           config.Parameter `yaml:"vcMetricsPort,omitempty"`
	NodeMetricsPort         config.Parameter `yaml:"nodeMetricsPort,omitempty"`
	ExporterMetricsPort     config.Parameter `yaml:"exporterMetricsPort,omitempty"`
	WatchtowerMetricsPort   config.Parameter `yaml:"watchtowerMetricsPort,omitempty"`
	EnableBitflyNodeMetrics config.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"`
	Lodestar           *LodestarConfig           `yaml:"lodestar,omitempty"`
	Nimbus             *NimbusConfig             `yaml:"nimbus,omitempty"`
	Prysm              *PrysmConfig              `yaml:"prysm,omitempty"`
	Teku               *TekuConfig               `yaml:"teku,omitempty"`
	ExternalLighthouse *ExternalLighthouseConfig `yaml:"externalLighthouse,omitempty"`
	ExternalNimbus     *ExternalNimbusConfig     `yaml:"externalNimbus,omitempty"`
	ExternalLodestar   *ExternalLodestarConfig   `yaml:"externalLodestar,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
	EnableMevBoost config.Parameter `yaml:"enableMevBoost,omitempty"`
	MevBoost       *MevBoostConfig  `yaml:"mevBoost,omitempty"`

	// Addons
	GraffitiWallWriter addontypes.SmartnodeAddon `yaml:"addon-gww,omitempty"`
}

The master configuration struct

func LoadFromFile

func LoadFromFile(path string) (*RocketPoolConfig, error)

Load configuration settings from a file

func NewRocketPoolConfig

func NewRocketPoolConfig(rpDir string, isNativeMode bool) *RocketPoolConfig

Creates a new poolsea Pool configuration instance

func (*RocketPoolConfig) ChangeNetwork

func (cfg *RocketPoolConfig) ChangeNetwork(newNetwork config.Network)

Handle a network change on all of the parameters

func (*RocketPoolConfig) CreateCopy

func (cfg *RocketPoolConfig) CreateCopy() *RocketPoolConfig

Create a copy of this configuration.

func (*RocketPoolConfig) Deserialize

func (cfg *RocketPoolConfig) Deserialize(masterMap map[string]map[string]string) error

Deserializes a settings file into this config

func (*RocketPoolConfig) GenerateEnvironmentVariables

func (cfg *RocketPoolConfig) GenerateEnvironmentVariables() map[string]string

Generates a collection of environment variables based on this config's settings

func (*RocketPoolConfig) GetChanges

func (cfg *RocketPoolConfig) GetChanges(oldConfig *RocketPoolConfig) (map[string][]config.ChangedSetting, map[config.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

func (cfg *RocketPoolConfig) GetConfigTitle() string

The the title for the config

func (*RocketPoolConfig) GetEventLogInterval

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

Get the configuration for the selected execution client

func (*RocketPoolConfig) GetParameters

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

Get the parameters for this config

func (*RocketPoolConfig) GetSelectedConsensusClient

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

Get the selected CC and mode

func (*RocketPoolConfig) GetSelectedConsensusClientConfig

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

Get the configuration for the selected consensus client

func (*RocketPoolConfig) GetSubconfigs

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

Get the subconfigurations for this config

func (*RocketPoolConfig) IsDoppelgangerEnabled

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

Check if doppelganger protection is enabled

func (*RocketPoolConfig) Serialize

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

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

func (*RocketPoolConfig) UpdateDefaults

func (cfg *RocketPoolConfig) UpdateDefaults() error

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

func (*RocketPoolConfig) Validate

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

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

type SmartnodeConfig

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

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

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

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

	// Which network we're on
	Network config.Parameter `yaml:"network,omitempty"`

	// Manual max fee override
	ManualMaxFee config.Parameter `yaml:"manualMaxFee,omitempty"`

	// Manual priority fee override
	PriorityFee config.Parameter `yaml:"priorityFee,omitempty"`

	// Threshold for automatic transactions
	AutoTxGasThreshold config.Parameter `yaml:"minipoolStakeGasThreshold,omitempty"`

	// The amount of ETH in a minipool's balance before auto-distribute kicks in
	DistributeThreshold config.Parameter `yaml:"distributeThreshold,omitempty"`

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

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

	// Token for Oracle DAO members to use when uploading Merkle trees to Web3.Storage
	Web3StorageApiToken config.Parameter `yaml:"web3StorageApiToken,omitempty"`

	// Manual override for the watchtower's max fee
	WatchtowerMaxFeeOverride config.Parameter `yaml:"watchtowerMaxFeeOverride,omitempty"`

	// Manual override for the watchtower's priority fee
	WatchtowerPrioFeeOverride config.Parameter `yaml:"watchtowerPrioFeeOverride,omitempty"`

	// The epoch to switch over to TWAP for RPL price reporting
	RplTwapEpoch config.Parameter `yaml:"rplTwapEpoch,omitempty"`

	// The epoch to start using the new network balance calculation implementation
	BalancesModernizationEpoch config.Parameter `yaml:"balancesModernizationEpoch,omitempty"`

	// The epoch to start using the new fee distributor share calculation
	NewFeeDistributorCalcEpoch config.Parameter `yaml:"newFeeDistributorCalcEpoch,omitempty"`
	// contains filtered or unexported fields
}

Configuration for the Smartnode

func NewSmartnodeConfig

func NewSmartnodeConfig(cfg *RocketPoolConfig) *SmartnodeConfig

Generates a new Smartnode configuration

func (*SmartnodeConfig) GetArbitrumMessengerAddress

func (cfg *SmartnodeConfig) GetArbitrumMessengerAddress() string

func (*SmartnodeConfig) GetBalanceBatcherAddress

func (cfg *SmartnodeConfig) GetBalanceBatcherAddress() string

func (*SmartnodeConfig) GetChainID

func (cfg *SmartnodeConfig) GetChainID() uint

func (*SmartnodeConfig) GetConfigTitle

func (cfg *SmartnodeConfig) GetConfigTitle() string

The the title for the config

func (*SmartnodeConfig) GetCustomKeyPasswordFilePath

func (cfg *SmartnodeConfig) GetCustomKeyPasswordFilePath() string

func (*SmartnodeConfig) GetCustomKeyPath

func (cfg *SmartnodeConfig) GetCustomKeyPath() string

func (*SmartnodeConfig) GetEcMigratorContainerTag

func (cfg *SmartnodeConfig) GetEcMigratorContainerTag() string

func (*SmartnodeConfig) GetFeeRecipientFilePath

func (cfg *SmartnodeConfig) GetFeeRecipientFilePath() string

func (*SmartnodeConfig) GetFlashbotsProtectUrl

func (cfg *SmartnodeConfig) GetFlashbotsProtectUrl() string

func (*SmartnodeConfig) GetMinipoolPerformancePath

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

func (*SmartnodeConfig) GetMulticallAddress

func (cfg *SmartnodeConfig) GetMulticallAddress() string

func (*SmartnodeConfig) GetOneInchOracleAddress

func (cfg *SmartnodeConfig) GetOneInchOracleAddress() string

func (*SmartnodeConfig) GetOptimismMessengerAddress

func (cfg *SmartnodeConfig) GetOptimismMessengerAddress() string

func (*SmartnodeConfig) GetParameters

func (cfg *SmartnodeConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*SmartnodeConfig) GetPasswordPath

func (cfg *SmartnodeConfig) GetPasswordPath() string

func (*SmartnodeConfig) GetPasswordPathInCLI

func (cfg *SmartnodeConfig) GetPasswordPathInCLI() string

func (*SmartnodeConfig) GetPolygonMessengerAddress

func (cfg *SmartnodeConfig) GetPolygonMessengerAddress() string

func (*SmartnodeConfig) GetPreviousRewardsPoolAddresses

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

func (*SmartnodeConfig) GetPruneProvisionerContainerTag

func (config *SmartnodeConfig) GetPruneProvisionerContainerTag() string

func (*SmartnodeConfig) GetRegenerateRewardsTreeRequestPath

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

func (*SmartnodeConfig) GetRethAddress

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

func (*SmartnodeConfig) GetRewardsSubmissionBlockMaps

func (cfg *SmartnodeConfig) GetRewardsSubmissionBlockMaps() []uint64

func (*SmartnodeConfig) GetRewardsTreePath

func (cfg *SmartnodeConfig) GetRewardsTreePath(interval uint64, daemon bool) string

func (*SmartnodeConfig) GetRplFaucetAddress

func (cfg *SmartnodeConfig) GetRplFaucetAddress() string

func (*SmartnodeConfig) GetRplTokenAddress

func (cfg *SmartnodeConfig) GetRplTokenAddress() string

func (*SmartnodeConfig) GetRplTwapPoolAddress

func (cfg *SmartnodeConfig) GetRplTwapPoolAddress() string

func (*SmartnodeConfig) GetSmartnodeContainerTag

func (cfg *SmartnodeConfig) GetSmartnodeContainerTag() string

func (*SmartnodeConfig) GetSnapshotApiDomain

func (cfg *SmartnodeConfig) GetSnapshotApiDomain() string

func (*SmartnodeConfig) GetSnapshotDelegationAddress

func (cfg *SmartnodeConfig) GetSnapshotDelegationAddress() string

func (*SmartnodeConfig) GetSnapshotID

func (config *SmartnodeConfig) GetSnapshotID() string

func (*SmartnodeConfig) GetStakeUrl

func (cfg *SmartnodeConfig) GetStakeUrl() string

func (*SmartnodeConfig) GetStorageAddress

func (cfg *SmartnodeConfig) GetStorageAddress() string

func (*SmartnodeConfig) GetTxWatchUrl

func (cfg *SmartnodeConfig) GetTxWatchUrl() string

func (*SmartnodeConfig) GetV100ClaimNodeAddress

func (cfg *SmartnodeConfig) GetV100ClaimNodeAddress() common.Address

func (*SmartnodeConfig) GetV100ClaimTrustedNodeAddress

func (cfg *SmartnodeConfig) GetV100ClaimTrustedNodeAddress() common.Address

func (*SmartnodeConfig) GetV100MinipoolManagerAddress

func (cfg *SmartnodeConfig) GetV100MinipoolManagerAddress() common.Address

func (*SmartnodeConfig) GetV100RewardsPoolAddress

func (cfg *SmartnodeConfig) GetV100RewardsPoolAddress() common.Address

func (*SmartnodeConfig) GetV110MinipoolFactoryAddress

func (cfg *SmartnodeConfig) GetV110MinipoolFactoryAddress() common.Address

func (*SmartnodeConfig) GetV110MinipoolQueueAddress

func (cfg *SmartnodeConfig) GetV110MinipoolQueueAddress() common.Address

func (*SmartnodeConfig) GetV110NetworkPricesAddress

func (cfg *SmartnodeConfig) GetV110NetworkPricesAddress() common.Address

func (*SmartnodeConfig) GetV110NodeDepositAddress

func (cfg *SmartnodeConfig) GetV110NodeDepositAddress() common.Address

func (*SmartnodeConfig) GetV110NodeStakingAddress

func (cfg *SmartnodeConfig) GetV110NodeStakingAddress() common.Address

func (*SmartnodeConfig) GetValidatorKeychainPath

func (cfg *SmartnodeConfig) GetValidatorKeychainPath() string

func (*SmartnodeConfig) GetValidatorKeychainPathInCLI

func (cfg *SmartnodeConfig) GetValidatorKeychainPathInCLI() string

func (*SmartnodeConfig) GetVotingSnapshotID

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

func (*SmartnodeConfig) GetWalletPath

func (cfg *SmartnodeConfig) GetWalletPath() string

func (*SmartnodeConfig) GetWalletPathInCLI

func (cfg *SmartnodeConfig) GetWalletPathInCLI() string

func (*SmartnodeConfig) GetWatchtowerFolder

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

func (*SmartnodeConfig) GetWatchtowerStatePath

func (config *SmartnodeConfig) GetWatchtowerStatePath() string

func (*SmartnodeConfig) GetZkSyncEraMessengerAddress

func (cfg *SmartnodeConfig) GetZkSyncEraMessengerAddress() string

type TekuConfig

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 config.Parameter `yaml:"jvmHeapSize,omitempty"`

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

	// The archive mode flag
	ArchiveMode config.Parameter `yaml:"archiveMode,omitempty"`

	// The Docker Hub tag for Lighthouse
	ContainerTag config.Parameter `yaml:"containerTag,omitempty"`

	// Custom command line flags for the BN
	AdditionalBnFlags config.Parameter `yaml:"additionalBnFlags,omitempty"`

	// Custom command line flags for the VC
	AdditionalVcFlags config.Parameter `yaml:"additionalVcFlags,omitempty"`
}

Configuration for Teku

func NewTekuConfig

func NewTekuConfig(cfg *RocketPoolConfig) *TekuConfig

Generates a new Teku configuration

func (*TekuConfig) GetConfigTitle

func (cfg *TekuConfig) GetConfigTitle() string

The the title for the config

func (*TekuConfig) GetName

func (cfg *TekuConfig) GetName() string

Get the name of the client

func (*TekuConfig) GetParameters

func (cfg *TekuConfig) GetParameters() []*config.Parameter

Get the parameters for this config

func (*TekuConfig) GetUnsupportedCommonParams

func (cfg *TekuConfig) GetUnsupportedCommonParams() []string

Get the common params that this client doesn't support

func (*TekuConfig) GetValidatorImage

func (cfg *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