remote

package
v0.0.0-...-82f4cde Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: AGPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDeployedNetworkInsufficientHosts = fmt.Errorf("target network requires more hosts than the topology provides")

ErrDeployedNetworkInsufficientHosts is returned by Validate if our target network requires more hosts than the topology provides

View Source
var ErrDeployedNetworkNameCantIncludeWildcard = fmt.Errorf("network name cannont include wild-cards")

ErrDeployedNetworkNameCantIncludeWildcard is returned by Validate if network name contains '*'

View Source
var ErrDeployedNetworkRootDirExists = fmt.Errorf("unable to generate deployed network files into existing directory")

ErrDeployedNetworkRootDirExists is returned by Validate if we're given a target folder that already exists

Functions

This section is empty.

Types

type BootstrappedNetwork

type BootstrappedNetwork struct {
	NumRounds                 uint64  `json:"numRounds"`
	RoundTransactionsCount    uint64  `json:"roundTransactionsCount"`
	GeneratedAccountsCount    uint64  `json:"generatedAccountsCount"`
	GeneratedAssetsCount      uint64  `json:"generatedAssetsCount"`
	GeneratedApplicationCount uint64  `json:"generatedApplicationCount"`
	SourceWalletName          string  `json:"sourceWalletName"`
	BalanceRange              []int64 `json:"acctBalanceRange"`
	DeterministicKeys         bool    `json:"deterministicKeys"`
}

BootstrappedNetwork contains the specs for generating db files

func LoadBootstrappedData

func LoadBootstrappedData(file string) (data BootstrappedNetwork, err error)

LoadBootstrappedData loads a bootstrappedFile structure from a json file

type BuildConfig

type BuildConfig struct {
	NetworkName       string
	NetworkPort       string
	NetworkPort2      string
	NetworkPort3      string
	NetworkPort4      string
	APIEndpoint       string
	APIEndpoint2      string
	APIEndpoint3      string
	APIEndpoint4      string
	AdminAPIToken     string
	APIToken          string
	EnableTelemetry   bool
	TelemetryURI      string
	MetricsURI        string
	RunAsService      bool
	CrontabSchedule   string
	EnableAlgoh       bool
	DashboardEndpoint string
	MiscStringString  []string
}

BuildConfig is the configuration input for `netgoal build`, for actually processing templates

func LoadBuildConfig

func LoadBuildConfig(file string) (cfg BuildConfig, err error)

LoadBuildConfig loads a BuildConfig structure from a json file

type DeployedNetwork

type DeployedNetwork struct {
	GenesisData     gen.GenesisData
	Topology        topology
	Hosts           []HostConfig
	BootstrappedNet BootstrappedNetwork
	// contains filtered or unexported fields
}

DeployedNetwork represents the complete configuration specification for a deployed network

func (DeployedNetwork) BuildNetworkFromTemplate

func (cfg DeployedNetwork) BuildNetworkFromTemplate(buildCfg BuildConfig, rootDir string) (err error)

BuildNetworkFromTemplate uses the specified template to deploy a new private network under the specified root directory.

func (DeployedNetwork) GenerateCloudTemplate

func (cfg DeployedNetwork) GenerateCloudTemplate(templates HostTemplates, targetFolder string) (err error)

GenerateCloudTemplate generates the Cloud Topology Template file that will be processed by the cloud provisioning toolchain.

func (DeployedNetwork) GenerateDatabaseFiles

func (cfg DeployedNetwork) GenerateDatabaseFiles(fileCfgs BootstrappedNetwork, genesisFolder string) error

GenerateDatabaseFiles generates database files according to the configurations

func (*DeployedNetwork) SetUseBoostrappedFiles

func (cfg *DeployedNetwork) SetUseBoostrappedFiles(boostrappedFile bool) bool

SetUseBoostrappedFiles sets the override flag indicating we should use existing genesis files instead of generating new ones. This is useful for permanent networks like devnet and testnet. Returns the previous value.

func (*DeployedNetwork) SetUseExistingGenesisFiles

func (cfg *DeployedNetwork) SetUseExistingGenesisFiles(useExisting bool) bool

SetUseExistingGenesisFiles sets the override flag indicating we should use existing genesis files instead of generating new ones. This is useful for permanent networks like devnet and testnet. Returns the previous value.

func (DeployedNetwork) Validate

func (cfg DeployedNetwork) Validate(buildCfg BuildConfig, rootDir string) (err error)

Validate uses the specified template to deploy a new private network under the specified root directory.

func (DeployedNetwork) ValidateTopology

func (cfg DeployedNetwork) ValidateTopology(templates HostTemplates) error

ValidateTopology reconciles the requested topology and the provided host templates and ensures all referenced host types are valid.

type DeployedNetworkConfig

type DeployedNetworkConfig struct {
	Hosts []HostConfig
}

DeployedNetworkConfig represents the complete configuration specification for a deployed network

func InitDeployedNetworkConfig

func InitDeployedNetworkConfig(file string, buildConfig BuildConfig) (cfg DeployedNetworkConfig, err error)

InitDeployedNetworkConfig loads the DeployedNetworkConfig from a file

func LoadDeployedNetworkConfigFromDir

func LoadDeployedNetworkConfigFromDir(rootDir string) (cfg DeployedNetworkConfig, err error)

LoadDeployedNetworkConfigFromDir loads a DeployedNetworkConfig from a directory

func (DeployedNetworkConfig) ResolveDeployedNetworkConfig

func (cfg DeployedNetworkConfig) ResolveDeployedNetworkConfig(genesisDataFile string, topologyFile string) (resolved DeployedNetwork, err error)

ResolveDeployedNetworkConfig resolves the DeployedNetworkConfig and returns a DeployedNetwork with GenesisData and Topology structures instantiated.

func (DeployedNetworkConfig) SaveToDisk

func (cfg DeployedNetworkConfig) SaveToDisk(rootDir string) (err error)

SaveToDisk allows writing the expanded template to disk - before we convert to DeployedNetworkConfig)

func (DeployedNetworkConfig) TryGetHostConfig

func (cfg DeployedNetworkConfig) TryGetHostConfig(hostName string) (config HostConfig, found bool)

TryGetHostConfig tries to find and return the HostConfig for the specified hostName

type ErrDeployedNetworkTemplate

type ErrDeployedNetworkTemplate struct {
	UnhandledTemplate string
}

ErrDeployedNetworkTemplate A template file contained {{Field}} sections that were not handled by a corresponding Field value in configuration.

func (ErrDeployedNetworkTemplate) Error

func (ednt ErrDeployedNetworkTemplate) Error() string

Error satisfies error interface

type HostConfig

type HostConfig struct {
	Name  string
	Group string
	Nodes []NodeConfig
}

HostConfig represents the configuration of a single deployed Host

type HostTemplates

type HostTemplates struct {
	Hosts map[string]cloudHost
}

HostTemplates contains a mapping (from name to cloudHost definition)

func LoadHostTemplates

func LoadHostTemplates(templateFile string) (templates HostTemplates, err error)

LoadHostTemplates returns a HostTemplates object populated from the definitions in templateFile

type NodeConfig

type NodeConfig struct {
	Name               string `json:",omitempty"`
	Wallets            []NodeWalletData
	NetAddress         string `json:",omitempty"`
	APIEndpoint        string `json:",omitempty"`
	APIToken           string `json:",omitempty"`
	AdminAPIToken      string `json:",omitempty"`
	EnableTelemetry    bool   // Needs to also be configured host-wide (assign logging host name)
	TelemetryURI       string `json:",omitempty"` // Needs to be HostConfig
	EnableMetrics      bool   // Needs to also be configured host-wide (register DNS entry)
	MetricsURI         string `json:",omitempty"`
	EnableService      bool
	CronTabSchedule    string `json:",omitempty"`
	EnableBlockStats   bool
	DashboardEndpoint  string `json:",omitempty"`
	DeadlockOverride   int    `json:",omitempty"` // -1 = Disable deadlock detection, 0 = Use Default for build, 1 = Enable
	ConfigJSONOverride string `json:",omitempty"` // Raw json to merge into config.json after other modifications are complete

	// NodeNameMatchRegex is tested against Name in generated configs and if matched the rest of the configs in this record are applied as a template
	NodeNameMatchRegex string `json:",omitempty"`

	// FractionApply if > 0.0 is used as a probability of applying to generated nodes to use these values as a template
	FractionApply float64 `json:",omitempty"`

	// AltConfigs have other values for NodeNameMatchRegex or FractionApply. Typically the root NodeConfig is the default template and AltConfig contains variations that match some regex or are applied randomly to some fraction.
	// This should not be used recursively, but only one deep, a root and a list of alt configs.
	AltConfigs []NodeConfig `json:",omitempty"`
}

NodeConfig represents the configuration settings to apply to a single node running on a host

func (NodeConfig) IsRelay

func (nc NodeConfig) IsRelay() bool

IsRelay returns true if the node is configured to be a relay

type NodeConfigGoal

type NodeConfigGoal struct {
	Name               string
	IsRelay            bool `json:",omitempty"`
	Wallets            []NodeWalletData
	P2PPeerID          string `json:",omitempty"`
	DeadlockDetection  int    `json:"-"`
	ConfigJSONOverride string `json:",omitempty"` // Raw json to merge into config.json after other modifications are complete
	PeerList           string `json:",omitempty"` // Semicolon separated list of peers to connect to. Only applicable for non-relays
}

NodeConfigGoal represents is a simplified version of NodeConfig used with 'goal network' commands

type NodeWalletData

type NodeWalletData struct {
	Name              string
	ParticipationOnly bool
}

NodeWalletData represents a single wallet instance on a node

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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