Documentation ¶
Index ¶
- Constants
- func InstallService(opts InstallOptions) error
- func LoadHyperdriveSettings(networksDir string) ([]*config.HyperdriveSettings, error)
- func LoadStakeWiseSettings(networksDir string) ([]*swconfig.StakeWiseSettings, error)
- func SaveConfig(cfg *GlobalConfig, directory string, filename string) error
- func StartServiceAsUser(uid uint32, hyperdriveBin string, configPath string) bool
- func SyncRatioToPercent(in float64) float64
- type ConstellationClient
- type GlobalConfig
- func (c *GlobalConfig) ChangeNetwork(newNetwork config.Network)
- func (c *GlobalConfig) ConstellationApiKeyPath() string
- func (c *GlobalConfig) CreateCopy() *GlobalConfig
- func (c *GlobalConfig) DeserializeModules() error
- func (c *GlobalConfig) GetAllModuleConfigs() []hdconfig.IModuleConfig
- func (c *GlobalConfig) GetChanges(oldConfig *GlobalConfig) ([]*config.ChangedSection, map[config.ContainerID]bool, bool)
- func (c *GlobalConfig) GetEnabledModuleConfigNames() []string
- func (c *GlobalConfig) HyperdriveApiKeyPath() string
- func (c *GlobalConfig) LoadExternalIP()
- func (c *GlobalConfig) ModulesDirectory() string
- func (c *GlobalConfig) Serialize() map[string]any
- func (c *GlobalConfig) StakeWiseApiKeyPath() string
- func (c *GlobalConfig) UpdateDefaults()
- func (c *GlobalConfig) Validate() []string
- func (c *GlobalConfig) ValidatorsDirectory() string
- type HyperdriveClient
- func (c *HyperdriveClient) DeleteVolume(volumeName string) error
- func (c *HyperdriveClient) DeployMetricsConfigurations(config *GlobalConfig) error
- func (c *HyperdriveClient) DownService(composeFiles []string, includeVolumes bool) error
- func (c *HyperdriveClient) GenerateDaemonAuthKeys(config *GlobalConfig) error
- func (c *HyperdriveClient) GetClientVolumeName(containerName, volumeTarget string) (string, error)
- func (c *HyperdriveClient) GetClientVolumeSource(containerName string, volumeTarget string) (string, error)
- func (c *HyperdriveClient) GetDirSizeViaEcMigrator(container string, targetDir string, image string) (uint64, error)
- func (c *HyperdriveClient) GetDocker() (*docker.Client, error)
- func (c *HyperdriveClient) GetDockerContainerShutdownTime(containerName string) (time.Time, error)
- func (c *HyperdriveClient) GetDockerImage(containerName string) (string, error)
- func (c *HyperdriveClient) GetDockerStatus(containerName string) (string, error)
- func (c *HyperdriveClient) GetRunningContainers(projectName string) (map[string]bool, error)
- func (c *HyperdriveClient) GetServiceVersion() (string, error)
- func (c *HyperdriveClient) GetValidatorContainers(projectName string) ([]string, error)
- func (c *HyperdriveClient) GetVolumeSize(volumeName string) (int64, error)
- func (c *HyperdriveClient) LoadBackupConfig() (*GlobalConfig, error)
- func (c *HyperdriveClient) LoadConfig() (*GlobalConfig, bool, error)
- func (c *HyperdriveClient) PrintDaemonLogs(composeFiles []string, tail string, logPaths ...string) error
- func (c *HyperdriveClient) PrintServiceCompose(composeFiles []string) error
- func (c *HyperdriveClient) PrintServiceLogs(composeFiles []string, tail string, serviceNames ...string) error
- func (c *HyperdriveClient) PrintServiceStatus(composeFiles []string) error
- func (c *HyperdriveClient) PurgeData(composeFiles []string, restart bool) error
- func (c *HyperdriveClient) RemoveContainer(containerName string) error
- func (c *HyperdriveClient) RestartContainer(containerName string) error
- func (c *HyperdriveClient) RunEcMigrator(container string, volume string, targetDir string, mode string, image string) error
- func (c *HyperdriveClient) RunNethermindPruneStarter(container string) error
- func (c *HyperdriveClient) RunPruneProvisioner(container string, volume string, image string) error
- func (c *HyperdriveClient) SaveConfig(cfg *GlobalConfig) error
- func (c *HyperdriveClient) StartContainer(containerName string) error
- func (c *HyperdriveClient) StartService(composeFiles []string) error
- func (c *HyperdriveClient) StopContainer(containerName string) error
- func (c *HyperdriveClient) StopService(composeFiles []string) error
- func (c *HyperdriveClient) TerminateService(composeFiles []string, configPath string) error
- type InstallOptions
- type StakewiseClient
Constants ¶
const ( InstallerName string = "install.sh" InstallerURL string = "https://github.com/nodeset-org/hyperdrive/releases/download/%s/" + InstallerName SettingsFile string = "user-settings.yml" BackupSettingsFile string = "user-settings-backup.yml" )
Config
Variables ¶
This section is empty.
Functions ¶
func InstallService ¶ added in v1.1.0
func InstallService(opts InstallOptions) error
Install Hyperdrive
func LoadHyperdriveSettings ¶ added in v1.1.0
func LoadHyperdriveSettings(networksDir string) ([]*config.HyperdriveSettings, error)
Load the Hyperdrive settings from the network settings files on disk
func LoadStakeWiseSettings ¶ added in v1.1.0
func LoadStakeWiseSettings(networksDir string) ([]*swconfig.StakeWiseSettings, error)
Load the StakeWise settings from the network settings files on disk
func SaveConfig ¶
func SaveConfig(cfg *GlobalConfig, directory string, filename string) error
Saves a config
func StartServiceAsUser ¶ added in v1.1.1
Starts Hyperdrive as the provided user via `su`
func SyncRatioToPercent ¶
When printing sync percents, we should avoid printing 100%. This function is only called if we're still syncing, and the `%0.2f` token will round up if we're above 99.99%.
Types ¶
type ConstellationClient ¶ added in v1.1.0
type ConstellationClient struct { Api *csclient.ApiClient Context *context.HyperdriveContext Logger *slog.Logger }
Constellation client
func NewConstellationClientFromCtx ¶ added in v1.1.0
func NewConstellationClientFromCtx(c *cli.Context, hdClient *HyperdriveClient) (*ConstellationClient, error)
Create new Constellation client from CLI context Only use this function from commands that may work if the Daemon service doesn't exist
func (*ConstellationClient) GetServiceVersion ¶ added in v1.1.0
func (c *ConstellationClient) GetServiceVersion() (string, error)
Get the service version
type GlobalConfig ¶ added in v0.2.3
type GlobalConfig struct { ExternalIP string // Hyperdrive Hyperdrive *hdconfig.HyperdriveConfig HyperdriveResources *hdconfig.MergedResources // StakeWise StakeWise *swconfig.StakeWiseConfig StakeWiseResources *swconfig.StakeWiseResources // Constellation Constellation *csconfig.ConstellationConfig ConstellationResources *csconfig.ConstellationResources }
Wrapper for global configuration
func LoadConfigFromFile ¶
func LoadConfigFromFile(configPath string, hdSettings []*config.HyperdriveSettings, swSettings []*swconfig.StakeWiseSettings, csSettings []*csconfig.ConstellationSettings) (*GlobalConfig, error)
Loads a config without updating it if it exists
func NewGlobalConfig ¶ added in v0.2.3
func NewGlobalConfig(hdCfg *hdconfig.HyperdriveConfig, hdSettings []*hdconfig.HyperdriveSettings, swCfg *swconfig.StakeWiseConfig, swSettings []*swconfig.StakeWiseSettings, csCfg *csconfig.ConstellationConfig, csSettings []*csconfig.ConstellationSettings) (*GlobalConfig, error)
Make a new global config
func (*GlobalConfig) ChangeNetwork ¶ added in v0.2.3
func (c *GlobalConfig) ChangeNetwork(newNetwork config.Network)
Changes the current network, propagating new parameter settings if they are affected
func (*GlobalConfig) ConstellationApiKeyPath ¶ added in v1.1.0
func (c *GlobalConfig) ConstellationApiKeyPath() string
func (*GlobalConfig) CreateCopy ¶ added in v0.2.3
func (c *GlobalConfig) CreateCopy() *GlobalConfig
Creates a copy of the configuration
func (*GlobalConfig) DeserializeModules ¶ added in v0.2.3
func (c *GlobalConfig) DeserializeModules() error
Deserialize the config's modules (assumes the Hyperdrive config itself has already been deserialized)
func (*GlobalConfig) GetAllModuleConfigs ¶ added in v0.2.3
func (c *GlobalConfig) GetAllModuleConfigs() []hdconfig.IModuleConfig
Get the configs for all of the modules in the system
func (*GlobalConfig) GetChanges ¶ added in v0.2.3
func (c *GlobalConfig) GetChanges(oldConfig *GlobalConfig) ([]*config.ChangedSection, 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 (*GlobalConfig) GetEnabledModuleConfigNames ¶ added in v0.2.3
func (c *GlobalConfig) GetEnabledModuleConfigNames() []string
Get the configs for all of the modules in the system that are enabled
func (*GlobalConfig) HyperdriveApiKeyPath ¶ added in v1.1.0
func (c *GlobalConfig) HyperdriveApiKeyPath() string
func (*GlobalConfig) LoadExternalIP ¶ added in v1.0.0
func (c *GlobalConfig) LoadExternalIP()
Attempts to load the system's external IP address
func (*GlobalConfig) ModulesDirectory ¶ added in v0.2.3
func (c *GlobalConfig) ModulesDirectory() string
func (*GlobalConfig) Serialize ¶ added in v0.2.3
func (c *GlobalConfig) Serialize() map[string]any
Serialize the config and all modules
func (*GlobalConfig) StakeWiseApiKeyPath ¶ added in v1.1.0
func (c *GlobalConfig) StakeWiseApiKeyPath() string
func (*GlobalConfig) UpdateDefaults ¶ added in v0.2.3
func (c *GlobalConfig) UpdateDefaults()
Updates the default parameters based on the current network value
func (*GlobalConfig) Validate ¶ added in v0.2.3
func (c *GlobalConfig) Validate() []string
Checks to see if the current configuration is valid; if not, returns a list of errors
func (*GlobalConfig) ValidatorsDirectory ¶ added in v0.2.3
func (c *GlobalConfig) ValidatorsDirectory() string
type HyperdriveClient ¶
type HyperdriveClient struct { Api *client.ApiClient Context *context.HyperdriveContext Logger *slog.Logger // contains filtered or unexported fields }
Hyperdrive client
func NewHyperdriveClientFromCtx ¶
func NewHyperdriveClientFromCtx(c *cli.Context) (*HyperdriveClient, error)
Create new Hyperdrive client from CLI context
func NewHyperdriveClientFromHyperdriveCtx ¶ added in v1.1.0
func NewHyperdriveClientFromHyperdriveCtx(hdCtx *context.HyperdriveContext) (*HyperdriveClient, error)
Create new Hyperdrive client from a custom context
func (*HyperdriveClient) DeleteVolume ¶
func (c *HyperdriveClient) DeleteVolume(volumeName string) error
Deletes a volume
func (*HyperdriveClient) DeployMetricsConfigurations ¶ added in v1.0.1
func (c *HyperdriveClient) DeployMetricsConfigurations(config *GlobalConfig) error
Create the metrics and modules folders, and deploy the config templates for Prometheus and Grafana
func (*HyperdriveClient) DownService ¶ added in v1.0.1
func (c *HyperdriveClient) DownService(composeFiles []string, includeVolumes bool) error
Stop the Hyperdrive service, shutting it down and removing the Docker artifacts
func (*HyperdriveClient) GenerateDaemonAuthKeys ¶ added in v1.1.0
func (c *HyperdriveClient) GenerateDaemonAuthKeys(config *GlobalConfig) error
Create the metrics and modules folders, and deploy the config templates for Prometheus and Grafana
func (*HyperdriveClient) GetClientVolumeName ¶
func (c *HyperdriveClient) GetClientVolumeName(containerName, volumeTarget string) (string, error)
Gets the name of the client volume
func (*HyperdriveClient) GetClientVolumeSource ¶
func (c *HyperdriveClient) GetClientVolumeSource(containerName string, volumeTarget string) (string, error)
Gets the absolute file path of the client volume
func (*HyperdriveClient) GetDirSizeViaEcMigrator ¶
func (c *HyperdriveClient) GetDirSizeViaEcMigrator(container string, targetDir string, image string) (uint64, error)
Gets the size of the target directory via the EC migrator for importing, which should have the same permissions as exporting
func (*HyperdriveClient) GetDocker ¶
func (c *HyperdriveClient) GetDocker() (*docker.Client, error)
Get the Docker client
func (*HyperdriveClient) GetDockerContainerShutdownTime ¶
func (c *HyperdriveClient) GetDockerContainerShutdownTime(containerName string) (time.Time, error)
Get the time that the given container shut down
func (*HyperdriveClient) GetDockerImage ¶
func (c *HyperdriveClient) GetDockerImage(containerName string) (string, error)
Get the current Docker image used by the given container
func (*HyperdriveClient) GetDockerStatus ¶
func (c *HyperdriveClient) GetDockerStatus(containerName string) (string, error)
Get the current Docker image used by the given container
func (*HyperdriveClient) GetRunningContainers ¶ added in v1.0.0
func (c *HyperdriveClient) GetRunningContainers(projectName string) (map[string]bool, error)
Get a list of running project containers (values are always true, the map is just for quick name lookup)
func (*HyperdriveClient) GetServiceVersion ¶
func (c *HyperdriveClient) GetServiceVersion() (string, error)
Get the Hyperdrive service version
func (*HyperdriveClient) GetValidatorContainers ¶
func (c *HyperdriveClient) GetValidatorContainers(projectName string) ([]string, error)
Get the Docker images with the project ID as a prefix that run the VC start script in their command line arguments
func (*HyperdriveClient) GetVolumeSize ¶
func (c *HyperdriveClient) GetVolumeSize(volumeName string) (int64, error)
Gets the disk usage of the given volume
func (*HyperdriveClient) LoadBackupConfig ¶
func (c *HyperdriveClient) LoadBackupConfig() (*GlobalConfig, error)
Load the backup config
func (*HyperdriveClient) LoadConfig ¶
func (c *HyperdriveClient) LoadConfig() (*GlobalConfig, bool, error)
Load the config Returns the global config and whether or not it was newly generated
func (*HyperdriveClient) PrintDaemonLogs ¶ added in v1.0.0
func (c *HyperdriveClient) PrintDaemonLogs(composeFiles []string, tail string, logPaths ...string) error
Print the Hyperdrive daemon logs
func (*HyperdriveClient) PrintServiceCompose ¶
func (c *HyperdriveClient) PrintServiceCompose(composeFiles []string) error
Print the Hyperdrive service compose config
func (*HyperdriveClient) PrintServiceLogs ¶
func (c *HyperdriveClient) PrintServiceLogs(composeFiles []string, tail string, serviceNames ...string) error
Print the Hyperdrive service logs
func (*HyperdriveClient) PrintServiceStatus ¶
func (c *HyperdriveClient) PrintServiceStatus(composeFiles []string) error
Print the Hyperdrive service status
func (*HyperdriveClient) PurgeData ¶
func (c *HyperdriveClient) PurgeData(composeFiles []string, restart bool) error
Deletes the data directory, including the node wallet and all validator keys, and restarts the Docker containers if requested
func (*HyperdriveClient) RemoveContainer ¶
func (c *HyperdriveClient) RemoveContainer(containerName string) error
Deletes a container
func (*HyperdriveClient) RestartContainer ¶
func (c *HyperdriveClient) RestartContainer(containerName string) error
Restart a container
func (*HyperdriveClient) RunEcMigrator ¶
func (c *HyperdriveClient) RunEcMigrator(container string, volume string, targetDir string, mode string, image string) error
Runs the EC migrator
func (*HyperdriveClient) RunNethermindPruneStarter ¶
func (c *HyperdriveClient) RunNethermindPruneStarter(container string) error
Runs the prune provisioner
func (*HyperdriveClient) RunPruneProvisioner ¶
func (c *HyperdriveClient) RunPruneProvisioner(container string, volume string, image string) error
Runs the prune provisioner
func (*HyperdriveClient) SaveConfig ¶
func (c *HyperdriveClient) SaveConfig(cfg *GlobalConfig) error
Save the config
func (*HyperdriveClient) StartContainer ¶
func (c *HyperdriveClient) StartContainer(containerName string) error
Start a container
func (*HyperdriveClient) StartService ¶
func (c *HyperdriveClient) StartService(composeFiles []string) error
Start the Hyperdrive service
func (*HyperdriveClient) StopContainer ¶
func (c *HyperdriveClient) StopContainer(containerName string) error
Shut down a container
func (*HyperdriveClient) StopService ¶
func (c *HyperdriveClient) StopService(composeFiles []string) error
Pause the Hyperdrive service, shutting it down without removing the Docker artifacts
func (*HyperdriveClient) TerminateService ¶
func (c *HyperdriveClient) TerminateService(composeFiles []string, configPath string) error
Stop Hyperdrive and remove the config folder
type InstallOptions ¶ added in v1.1.0
type InstallOptions struct { RequireEscalation bool Verbose bool NoDeps bool Version string InstallPath string RuntimePath string LocalInstallScriptPath string LocalInstallPackagePath string }
Options for installation
type StakewiseClient ¶
type StakewiseClient struct { Api *swclient.ApiClient Context *context.HyperdriveContext Logger *slog.Logger }
Stakewise client
func NewStakewiseClientFromCtx ¶
func NewStakewiseClientFromCtx(c *cli.Context, hdClient *HyperdriveClient) (*StakewiseClient, error)
Create new Stakewise client from CLI context Only use this function from commands that may work if the Daemon service doesn't exist
func NewStakewiseClientFromHyperdriveCtx ¶ added in v1.1.0
func NewStakewiseClientFromHyperdriveCtx(hdCtx *context.HyperdriveContext, hdClient *HyperdriveClient) (*StakewiseClient, error)
Create new Stakewise client from a custom context Only use this function from commands that may work if the Daemon service doesn't exist
func (*StakewiseClient) GetServiceVersion ¶ added in v1.1.0
func (c *StakewiseClient) GetServiceVersion() (string, error)
Get the service version