Documentation
¶
Index ¶
- Variables
- func LoadLocalGenesis() (map[string]interface{}, error)
- func NewGenesis(networkID uint32, xChainBalances []AddrAndBalance, ...) ([]byte, error)
- type AddrAndBalance
- type ChainSpec
- type Config
- type ElasticChainSpec
- type Network
- type ParticipantsSpec
- type PermissionlessValidatorSpec
- type RemoveChainValidatorSpec
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func LoadLocalGenesis ¶
LoadLocalGenesis loads the local network genesis from disk and returns it as a map[string]interface{}
func NewGenesis ¶ added in v1.6.1
func NewGenesis( networkID uint32, xChainBalances []AddrAndBalance, cChainBalances []AddrAndBalance, genesisVdrs []ids.NodeID, ) ([]byte, error)
NewGenesis returns a genesis JSON where: The nodes in [genesisVdrs] are validators. The C-Chain and X-Chain balances are given by [cChainBalances] and [xChainBalances]. Note that many of the genesis fields (i.e. reward addresses) are randomly generated or hard-coded.
Types ¶
type AddrAndBalance ¶
AddrAndBalance holds both an address and its balance
type Config ¶
type Config struct {
// Must not be empty
Genesis string `json:"genesis"`
// May have length 0
// (i.e. network may have no nodes on creation.)
NodeConfigs []node.Config `json:"nodeConfigs"`
// Flags that will be passed to each node in this network.
// It can be empty.
// Config flags may also be passed in a node's config struct
// or config file.
// The precedence of flags handling is, from highest to lowest:
// 1. Flags defined in a node's node.Config
// 2. Flags defined in a network's network.Config
// 3. Flags defined in a node's config file
// For example, if a network.Config has flag W set to X,
// and a node within that network has flag W set to Y,
// and the node's config file has flag W set to Z,
// then the node will be started with flag W set to Y.
Flags map[string]interface{} `json:"flags"`
// Binary path to use per default, if not specified in node config
BinaryPath string `json:"binaryPath"`
// Chain config files to use per default, if not specified in node config
ChainConfigFiles map[string]string `json:"chainConfigFiles"`
// Upgrade config files to use per default, if not specified in node config
UpgradeConfigFiles map[string]string `json:"upgradeConfigFiles"`
// P-Chain config files to use per default, if not specified in node config
PChainConfigFiles map[string]string `json:"pChainConfigFiles"`
}
Config that defines a network when it is created.
type ElasticChainSpec ¶ added in v1.6.1
type ElasticChainSpec struct {
ChainID *string
AssetName string
AssetSymbol string
InitialSupply uint64
MaxSupply uint64
MinConsumptionRate uint64
MaxConsumptionRate uint64
MinValidatorStake uint64
MaxValidatorStake uint64
MinStakeDuration time.Duration
MaxStakeDuration time.Duration
MinDelegationFee uint32
MinDelegatorStake uint64
MaxValidatorWeightFactor byte
UptimeRequirement uint32
}
type Network ¶
type Network interface {
// Returns nil if all the nodes in the network are healthy.
// A stopped network is considered unhealthy.
// Timeout is given by the context parameter.
Healthy(context.Context) error
// Stop all the nodes.
// Returns ErrStopped if Stop() was previously called.
Stop(context.Context) error
// Start a new node with the given config.
// Returns ErrStopped if Stop() was previously called.
AddNode(node.Config) (node.Node, error)
// Stop the node with this name.
// Returns ErrStopped if Stop() was previously called.
RemoveNode(ctx context.Context, name string) error
// Pause the node with this name.
// Returns ErrStopped if Stop() was previously called.
PauseNode(ctx context.Context, name string) error
// Resume the node with this name.
// Returns ErrStopped if Stop() was previously called.
ResumeNode(ctx context.Context, name string) error
// Return the node with this name.
// Returns ErrStopped if Stop() was previously called.
GetNode(name string) (node.Node, error)
// Return all the nodes in this network.
// Node name --> Node.
// Returns ErrStopped if Stop() was previously called.
GetAllNodes() (map[string]node.Node, error)
// Returns the names of all nodes in this network.
// Returns ErrStopped if Stop() was previously called.
GetNodeNames() ([]string, error)
// Save network snapshot
// Network is stopped in order to do a safe preservation
// Returns the full local path to the snapshot dir
SaveSnapshot(context.Context, string) (string, error)
// Remove network snapshot
RemoveSnapshot(string) error
// Get name of available snapshots
GetSnapshotNames() ([]string, error)
// Restart a given node using the same config, optionally changing binary path, plugin dir,
// track chains, a map of chain configs, a map of upgrade configs, and
// a map of chain configs
RestartNode(context.Context, string, string, string, string, map[string]string, map[string]string, map[string]string) error
// Create the specified chains
CreateChains(context.Context, []ChainSpec) ([]ids.ID, error)
// Create chain participant groups (validators)
CreateParticipantGroups(context.Context, []ParticipantsSpec) ([]ids.ID, error)
// Transform chain into elastic chain
TransformChain(context.Context, []ElasticChainSpec) ([]ids.ID, []ids.ID, error)
// Add a validator into an elastic chain
AddPermissionlessValidators(context.Context, []PermissionlessValidatorSpec) error
// Remove a validator from a chain
RemoveChainValidators(context.Context, []RemoveChainValidatorSpec) error
// Get the elastic chain tx id for the given chain id
GetElasticChainID(context.Context, ids.ID) (ids.ID, error)
}
Network is an abstraction of an Lux network
type ParticipantsSpec ¶ added in v1.6.1
type RemoveChainValidatorSpec ¶ added in v1.6.1
Click to show internal directories.
Click to hide internal directories.