local

package
v1.14.3 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2025 License: BSD-3-Clause Imports: 77 Imported by: 1

Documentation

Index

Constants

View Source
const (
	DefaultNumNodes = 5
)
View Source
const (
	MaxPort = math.MaxUint16
)

Variables

View Source
var (
	ErrSnapshotNotFound = errors.New("snapshot not found")
)

interface compliance

Functions

func NewConfigForNetwork added in v1.6.1

func NewConfigForNetwork(binaryPath string, numNodes uint32, networkID uint32) (network.Config, error)

NewConfigForNetwork creates a network config for the specified network ID. This uses the proper genesis configuration from github.com/luxfi/genesis/configs. For non-local networks (mainnet/testnet), it dynamically injects initial stakers based on the generated node staking keys. Supported network IDs:

  • 96369: LUX Mainnet
  • 96368: LUX Testnet
  • 1337: Local development network

func NewConfigForNetworkWithCustomGenesis added in v1.6.1

func NewConfigForNetworkWithCustomGenesis(binaryPath string, numNodes uint32, genesisJSON string) (network.Config, error)

NewConfigForNetworkWithCustomGenesis creates a network config with a custom genesis string. Use this for networks not defined in the configs package or for testing.

func NewDefaultConfig

func NewDefaultConfig(binaryPath string) network.Config

NewDefaultConfig creates a new default network config

func NewDefaultConfigNNodes

func NewDefaultConfigNNodes(binaryPath string, numNodes uint32) (network.Config, error)

NewDefaultConfigNNodes creates a new default network config, with an arbitrary number of nodes

func NewDefaultNetwork

func NewDefaultNetwork(
	log luxlog.Logger,
	binaryPath string,
	reassignPortsIfUsed bool,
) (network.Network, error)

NewDefaultNetwork returns a new network using a pre-defined network configuration. The following addresses are pre-funded: X-Chain Address 1: X-custom18jma8ppw3nhx5r4ap8clazz0dps7rv5u9xde7p X-Chain Address 1 Key: PrivateKey-ewoqjP7PxY4yr3iLTpLisriqt94hdyDFNgchSxGGztUrTXtNN X-Chain Address 2: X-custom16045mxr3s2cjycqe2xfluk304xv3ezhkhsvkpr X-Chain Address 2 Key: PrivateKey-2fzYBh3bbWemKxQmMfX6DSuL2BFmDSLQWTvma57xwjQjtf8gFq P-Chain Address 1: P-custom18jma8ppw3nhx5r4ap8clazz0dps7rv5u9xde7p P-Chain Address 1 Key: PrivateKey-ewoqjP7PxY4yr3iLTpLisriqt94hdyDFNgchSxGGztUrTXtNN P-Chain Address 2: P-custom16045mxr3s2cjycqe2xfluk304xv3ezhkhsvkpr P-Chain Address 2 Key: PrivateKey-2fzYBh3bbWemKxQmMfX6DSuL2BFmDSLQWTvma57xwjQjtf8gFq C-Chain Address: 0x8db97C7cEcE249c2b98bDC0226Cc4C2A57BF52FC C-Chain Address Key: 56289e99c94b6912bfc12adc093c9b51124f0dc54ac7a766b2bc5ccf558d8027 The following nodes are validators: * NodeID-7Xhw2mDxuDS44j42TCB6U5579esbSt3Lg * NodeID-MFrZFVCXPv5iCn6M9K6XduxGTYp891xXZ * NodeID-NFBbbJ4qCmNaCzeW7sxErhvWqvEQMnYcN * NodeID-GWPcbFJZFfZreETSoWjPimr846mXEKCtu * NodeID-P7oB2McjBGgW2NXXWVYjV8JEDFoW9xDE5

func NewLocalConfig added in v1.6.1

func NewLocalConfig(binaryPath string, numNodes uint32) (network.Config, error)

NewLocalConfig creates a network config for local development (network ID 1337) This is equivalent to NewDefaultConfigNNodes but uses the configs package.

func NewMainnetConfig added in v1.6.1

func NewMainnetConfig(binaryPath string, numNodes uint32) (network.Config, error)

NewMainnetConfig creates a network config for LUX Mainnet (network ID 96369)

func NewNetwork

func NewNetwork(
	log luxlog.Logger,
	networkConfig network.Config,
	rootDir string,
	snapshotsDir string,
	reassignPortsIfUsed bool,
) (network.Network, error)

NewNetwork returns a new network that uses the given log. Files (e.g. logs, databases) default to being written at directory [rootDir]. If there isn't a directory at [dir] one will be created. If len([dir]) == 0, files will be written underneath a new temporary directory. Snapshots are saved to snapshotsDir, defaults to defaultSnapshotsDir if not given

func NewNetworkFromSnapshot

func NewNetworkFromSnapshot(
	log luxlog.Logger,
	snapshotName string,
	rootDir string,
	snapshotsDir string,
	binaryPath string,
	pluginDir string,
	chainConfigs map[string]string,
	upgradeConfigs map[string]string,
	subnetConfigs map[string]string,
	flags map[string]interface{},
	reassignPortsIfUsed bool,
) (network.Network, error)

NewNetwork returns a new network from the given snapshot

func NewTestnetConfig added in v1.6.1

func NewTestnetConfig(binaryPath string, numNodes uint32) (network.Config, error)

NewTestnetConfig creates a network config for LUX Testnet (network ID 96368)

Types

type NetworkState

type NetworkState struct {
	// Map from subnet id to elastic subnet tx id
	SubnetID2ElasticSubnetID map[string]string `json:"subnetID2ElasticSubnetID"`
}

NetworkState defines dynamic network information not available on blockchain db

type NodeProcess

type NodeProcess interface {
	// Sends a SIGINT to this process and returns the process's
	// exit code.
	// If [ctx] is cancelled, sends a SIGKILL to this process and descendants.
	// We assume sending a SIGKILL to a process will always successfully kill it.
	// Subsequent calls to [Stop] have no effect.
	Stop(ctx context.Context) int
	// Returns the status of the process.
	Status() status.Status
}

NodeProcess as an interface so we can mock running Lux binaries in tests

type NodeProcessCreator

type NodeProcessCreator interface {
	GetNodeVersion(config node.Config) (string, error)
	NewNodeProcess(config node.Config, args ...string) (NodeProcess, error)
}

NodeProcessCreator is an interface for new node process creation

type TestMsg

type TestMsg struct {
	// contains filtered or unexported fields
}

func NewTestMsg

func NewTestMsg(op message.Op, bytes []byte, bypassThrottling bool) *TestMsg

func (*TestMsg) BypassThrottling

func (m *TestMsg) BypassThrottling() bool

func (*TestMsg) Bytes

func (m *TestMsg) Bytes() []byte

func (*TestMsg) BytesSavedCompression

func (*TestMsg) BytesSavedCompression() int

func (*TestMsg) Op

func (m *TestMsg) Op() message.Op

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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