Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultChainConfigs() map[string]FlagsMap
- func DefaultJSONMarshal(v interface{}) ([]byte, error)
- func NewPrivateKeys(keyCount int) ([]*secp256k1.PrivateKey, error)
- func NewTestGenesis(networkID uint32, nodes []*Node, keysToFund []*secp256k1.PrivateKey) (*genesis.UnparsedConfig, error)
- func StopNetwork(ctx context.Context, dir string) error
- func WaitForHealthy(ctx context.Context, node *Node) error
- type FlagsMap
- type Network
- func (n *Network) AddEphemeralNode(ctx context.Context, w io.Writer, flags FlagsMap) (*Node, error)
- func (n *Network) Create(rootDir string) error
- func (n *Network) EnsureNodeConfig(node *Node) error
- func (n *Network) EnvFileContents() string
- func (n *Network) EnvFilePath() string
- func (n *Network) GetNodeURIs() []NodeURI
- func (n *Network) Read() error
- func (n *Network) Start(ctx context.Context, w io.Writer) error
- func (n *Network) StartNode(ctx context.Context, w io.Writer, node *Node) error
- func (n *Network) Stop(ctx context.Context) error
- func (n *Network) WaitForHealthy(ctx context.Context, w io.Writer) error
- func (n *Network) Write() error
- type Node
- func (n *Node) EnsureBLSSigningKey() error
- func (n *Node) EnsureKeys() error
- func (n *Node) EnsureNodeID() error
- func (n *Node) EnsureStakingKeypair() error
- func (n *Node) GetProofOfPossession() (*signer.ProofOfPossession, error)
- func (n *Node) InitiateStop() error
- func (n *Node) IsHealthy(ctx context.Context) (bool, error)
- func (n *Node) Read() error
- func (n *Node) SetNetworkingConfig(bootstrapIDs []string, bootstrapIPs []string)
- func (n *Node) Start(w io.Writer) error
- func (n *Node) Stop(ctx context.Context) error
- func (n *Node) WaitForStopped(ctx context.Context) error
- func (n *Node) Write() error
- type NodeProcess
- type NodeRuntime
- type NodeRuntimeConfig
- type NodeURI
- type XChainBalanceMap
Constants ¶
const ( DefaultNetworkTimeout = 2 * time.Minute // Minimum required to ensure connectivity-based health checks will pass DefaultNodeCount = 2 // Arbitrary number of pre-funded keys to create by default DefaultPreFundedKeyCount = 50 // A short minimum stake duration enables testing of staking logic. DefaultMinStakeDuration = time.Second )
const ( // Constants defining the names of shell variables whose value can // configure network orchestration. NetworkDirEnvName = "TMPNET_NETWORK_DIR" RootDirEnvName = "TMPNET_ROOT_DIR" )
const (
AvalancheGoPathEnvName = "AVALANCHEGO_PATH"
)
const (
DefaultNodeTickerInterval = 50 * time.Millisecond
)
Variables ¶
var ErrNotRunning = errors.New("not running")
Functions ¶
func DefaultChainConfigs ¶ added in v1.10.18
A set of chain configurations appropriate for testing.
func DefaultJSONMarshal ¶
Marshal to json with default prefix and indent.
func NewPrivateKeys ¶ added in v1.10.18
func NewPrivateKeys(keyCount int) ([]*secp256k1.PrivateKey, error)
Helper simplifying creation of a set of private keys
func NewTestGenesis ¶
func NewTestGenesis( networkID uint32, nodes []*Node, keysToFund []*secp256k1.PrivateKey, ) (*genesis.UnparsedConfig, error)
Create a genesis struct valid for bootstrapping a test network. Note that many of the genesis fields (e.g. reward addresses) are randomly generated or hard-coded.
func StopNetwork ¶ added in v1.10.18
Stops the nodes of the network configured in the provided directory.
Types ¶
type FlagsMap ¶
type FlagsMap map[string]interface{}
Defines a mapping of flag keys to values intended to be supplied to an invocation of an AvalancheGo node.
func DefaultFlags ¶ added in v1.10.18
func DefaultFlags() FlagsMap
A set of flags appropriate for testing.
func ReadFlagsMap ¶
Utility function simplifying construction of a FlagsMap from a file.
func (FlagsMap) GetStringVal ¶
GetStringVal simplifies retrieving a map value as a string.
func (FlagsMap) SetDefaults ¶
SetDefaults ensures the effectiveness of flag overrides by only setting values supplied in the defaults map that are not already explicitly set.
type Network ¶
type Network struct { // Path where network configuration and data is stored Dir string // Configuration common across nodes Genesis *genesis.UnparsedConfig ChainConfigs map[string]FlagsMap // Default configuration to use when creating new nodes DefaultFlags FlagsMap DefaultRuntimeConfig NodeRuntimeConfig // Keys pre-funded in the genesis on both the X-Chain and the C-Chain PreFundedKeys []*secp256k1.PrivateKey // Nodes that constitute the network Nodes []*Node }
Collects the configuration for running a temporary avalanchego network
func NewDefaultNetwork ¶ added in v1.11.9
Initializes a new network with default configuration.
func ReadNetwork ¶ added in v1.10.18
Reads a network from the provided directory.
func (*Network) AddEphemeralNode ¶
func (*Network) Create ¶ added in v1.10.18
Creates the network on disk, choosing its network id and generating its genesis in the process.
func (*Network) EnsureNodeConfig ¶ added in v1.10.18
Ensures the provided node has the configuration it needs to start. If the data dir is not set, it will be defaulted to [nodeParentDir]/[node ID]. For a not-yet-created network, no action will be taken. TODO(marun) Reword or refactor to account for the differing behavior pre- vs post-start
func (*Network) EnvFileContents ¶ added in v1.10.18
func (*Network) EnvFilePath ¶ added in v1.10.18
func (*Network) GetNodeURIs ¶ added in v1.10.18
func (*Network) StartNode ¶ added in v1.10.18
Starts the provided node after configuring it for the network.
func (*Network) WaitForHealthy ¶ added in v1.10.18
Waits until all nodes in the network are healthy.
type Node ¶
type Node struct { // Set by EnsureNodeID which is also called when the node is read. NodeID ids.NodeID // Flags that will be supplied to the node at startup Flags FlagsMap // An ephemeral node is not expected to be a persistent member of the network and // should therefore not be used as for bootstrapping purposes. IsEphemeral bool // The configuration used to initialize the node runtime. RuntimeConfig *NodeRuntimeConfig // Runtime state, intended to be set by NodeRuntime URI string StakingAddress string // contains filtered or unexported fields }
Node supports configuring and running a node participating in a temporary network.
func (*Node) EnsureBLSSigningKey ¶ added in v1.10.18
Ensures a BLS signing key is generated if not already present.
func (*Node) EnsureKeys ¶ added in v1.10.18
Ensures staking and signing keys are generated if not already present and that the node ID (derived from the staking keypair) is set.
func (*Node) EnsureNodeID ¶ added in v1.10.18
Derives the node ID. Requires that a tls keypair is present.
func (*Node) EnsureStakingKeypair ¶ added in v1.10.18
Ensures a staking keypair is generated if not already present.
func (*Node) GetProofOfPossession ¶ added in v1.10.18
func (n *Node) GetProofOfPossession() (*signer.ProofOfPossession, error)
Derives the nodes proof-of-possession. Requires the node to have a BLS signing key.
func (*Node) InitiateStop ¶ added in v1.10.18
func (*Node) SetNetworkingConfig ¶ added in v1.10.18
Sets networking configuration for the node. Convenience method for setting networking flags.
func (*Node) WaitForStopped ¶ added in v1.10.18
type NodeProcess ¶ added in v1.10.18
type NodeProcess struct {
// contains filtered or unexported fields
}
Defines local-specific node configuration. Supports setting default and node-specific values.
func (*NodeProcess) InitiateStop ¶ added in v1.10.18
func (p *NodeProcess) InitiateStop() error
Signals the node process to stop.
func (*NodeProcess) IsHealthy ¶ added in v1.10.18
func (p *NodeProcess) IsHealthy(ctx context.Context) (bool, error)
func (*NodeProcess) Start ¶ added in v1.10.18
func (p *NodeProcess) Start(w io.Writer) error
Start waits for the process context to be written which indicates that the node will be accepting connections on its staking port. The network will start faster with this synchronization due to the avoidance of exponential backoff if a node tries to connect to a beacon that is not ready.
func (*NodeProcess) WaitForStopped ¶ added in v1.10.18
func (p *NodeProcess) WaitForStopped(ctx context.Context) error
Waits for the node process to stop.
type NodeRuntime ¶ added in v1.10.18
type NodeRuntime interface { Start(w io.Writer) error InitiateStop() error WaitForStopped(ctx context.Context) error IsHealthy(ctx context.Context) (bool, error) // contains filtered or unexported methods }
NodeRuntime defines the methods required to support running a node.
type NodeRuntimeConfig ¶ added in v1.10.18
type NodeRuntimeConfig struct {
AvalancheGoPath string
}
Configuration required to configure a node runtime.
type XChainBalanceMap ¶
Helper type to simplify configuring X-Chain genesis balances