Documentation
¶
Index ¶
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 NewDijetsNodeGenesis ¶
func NewDijetsNodeGenesis( networkID uint32, xChainBalances []AddrAndBalance, cChainBalances []AddrAndBalance, genesisVdrs []ids.NodeID, ) ([]byte, error)
Return 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 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 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
// 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) error
// Create the given numbers of subnets
CreateSubnets(context.Context, uint32) error
}
Network is an abstraction of an Dijets network
Click to show internal directories.
Click to hide internal directories.