Documentation
¶
Index ¶
- Variables
- func LoadLocalGenesis() (map[string]interface{}, error)
- func NewOdysseyGoGenesis(networkID uint32, aChainBalances []AddrAndBalance, ...) ([]byte, error)
- type AddrAndBalance
- type BlockchainSpec
- type Config
- type ElasticSubnetSpec
- type Network
- type PermissionlessValidatorSpec
- type RemoveSubnetValidatorSpec
- type SubnetSpec
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 NewOdysseyGoGenesis ¶
func NewOdysseyGoGenesis( networkID uint32, aChainBalances []AddrAndBalance, dChainBalances []AddrAndBalance, genesisVdrs []ids.NodeID, ) ([]byte, error)
Return a genesis JSON where: The nodes in [genesisVdrs] are validators. The D-Chain and A-Chain balances are given by [dChainBalances] and [aChainBalances]. 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 BlockchainSpec ¶
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"`
// Subnet config files to use per default, if not specified in node config
SubnetConfigFiles map[string]string `json:"subnetConfigFiles"`
}
Config that defines a network when it is created.
type ElasticSubnetSpec ¶
type ElasticSubnetSpec struct {
SubnetID *string
AssetName string
AssetSymbol string
InitialSupply uint64
MaxSupply uint64
MinConsumptionRate uint64
MaxConsumptionRate uint64
MinValidatorStake uint64
MaxValidatorStake uint64
MinValidatorStakeDuration time.Duration
MaxValidatorStakeDuration time.Duration
MinDelegatorStakeDuration time.Duration
MaxDelegatorStakeDuration 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 subnets, a map of chain configs, a map of upgrade configs, and
// a map of subnet configs
RestartNode(context.Context, string, string, string, string, map[string]string, map[string]string, map[string]string) error
// Create the specified blockchains
CreateBlockchains(context.Context, []BlockchainSpec) ([]ids.ID, error)
// Create the given numbers of subnets
CreateSubnets(context.Context, []SubnetSpec) ([]ids.ID, error)
// Transform subnet into elastic subnet
TransformSubnet(context.Context, []ElasticSubnetSpec) ([]ids.ID, []ids.ID, error)
// Add a validator into an elastic subnet
AddPermissionlessValidators(context.Context, []PermissionlessValidatorSpec) error
// Remove a validator from a subnet
RemoveSubnetValidators(context.Context, []RemoveSubnetValidatorSpec) error
// Get the elastic subnet tx id for the given subnet id
GetElasticSubnetID(context.Context, ids.ID) (ids.ID, error)
}
Network is an abstraction of an Odyssey network
type SubnetSpec ¶
Click to show internal directories.
Click to hide internal directories.