multinet

package
v1.14.33 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2025 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Overview

Package multinet provides support for running multiple heterogeneous networks in parallel with shared BadgerDB for cross-chain ACID transactions

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChainConfig

type ChainConfig struct {
	ChainID  string `json:"chainID"`
	VMID     string `json:"vmID"`
	PChainID string `json:"pChainID,omitempty"`
	Genesis  []byte `json:"genesis,omitempty"`
	IsEVM    bool   `json:"isEVM"`
}

ChainConfig defines configuration for a chain within a network

type ChainInstance

type ChainInstance struct {
	ChainID     string
	PChainID    string
	ParentNetID uint32
	Validators  []ids.NodeID
	Status      NetworkStatus
}

ChainInstance represents a running chain

type ConsensusManager

type ConsensusManager struct {
	NetworkID uint32
	Type      string // "snowman" or "avalanche"
	Params    ConsensusParams
	// contains filtered or unexported fields
}

ConsensusManager handles consensus for a network

type ConsensusParams

type ConsensusParams struct {
	K                 int           `json:"k"`
	Alpha             int           `json:"alpha"`
	BetaVirtuous      int           `json:"betaVirtuous"`
	BetaRogue         int           `json:"betaRogue"`
	ConcurrentPolls   int           `json:"concurrentPolls"`
	OptimalProcessing int           `json:"optimalProcessing"`
	MaxProcessing     int           `json:"maxProcessing"`
	MaxTimeProcessing time.Duration `json:"maxTimeProcessing"`
}

ConsensusParams defines consensus parameters

func DefaultConsensusParams

func DefaultConsensusParams() ConsensusParams

DefaultConsensusParams returns default consensus parameters

type CrossChainTx

type CrossChainTx struct {
	ID          string
	SourceNet   uint32
	SourceChain string
	DestNet     uint32
	DestChain   string
	Amount      uint64
	Asset       string
	Status      TxStatus
	Timestamp   time.Time
}

CrossChainTx represents a cross-chain transaction

type CrossChainTxCoordinator

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

CrossChainTxCoordinator coordinates transactions across chains

func NewCrossChainTxCoordinator

func NewCrossChainTxCoordinator(db *badger.DB) *CrossChainTxCoordinator

NewCrossChainTxCoordinator creates a new cross-chain transaction coordinator

type MultiNetworkManager

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

MultiNetworkManager manages multiple networks running in parallel

func NewMultiNetworkManager

func NewMultiNetworkManager(logger log.Logger, sharedDBPath string) (*MultiNetworkManager, error)

NewMultiNetworkManager creates a new multi-network manager

func (*MultiNetworkManager) AddNetwork

func (m *MultiNetworkManager) AddNetwork(config NetworkConfig) error

AddNetwork adds a network configuration

func (*MultiNetworkManager) GetNetworkStatus

func (m *MultiNetworkManager) GetNetworkStatus() map[uint32]NetworkStatus

GetNetworkStatus returns the status of all networks

func (*MultiNetworkManager) Shutdown

func (m *MultiNetworkManager) Shutdown() error

Shutdown gracefully shuts down all networks

func (*MultiNetworkManager) StartAll

func (m *MultiNetworkManager) StartAll() error

StartAll starts all configured networks in parallel

func (*MultiNetworkManager) StartNetwork

func (m *MultiNetworkManager) StartNetwork(networkID uint32) error

StartNetwork starts a specific network

func (*MultiNetworkManager) SubmitCrossChainTx

func (m *MultiNetworkManager) SubmitCrossChainTx(tx *CrossChainTx) error

SubmitCrossChainTx submits a cross-chain transaction

type NetworkConfig

type NetworkConfig struct {
	NetworkID   uint32        `json:"networkID"`
	Name        string        `json:"name"`
	Type        NetworkType   `json:"type"`
	ParentID    uint32        `json:"parentID,omitempty"` // For chains
	HTTPPort    int           `json:"httpPort"`
	StakingPort int           `json:"stakingPort"`
	DataDir     string        `json:"dataDir"`
	Validators  int           `json:"validators"`
	ChainConfig []ChainConfig `json:"chains,omitempty"`
}

NetworkConfig defines configuration for a single network

type NetworkInstance

type NetworkInstance struct {
	Config    NetworkConfig
	Network   network.Network
	Status    NetworkStatus
	Chains    map[string]*ChainInstance
	StartTime time.Time
}

NetworkInstance represents a running network

type NetworkStatus

type NetworkStatus string

NetworkStatus represents the status of a network

const (
	NetworkStatusStopped  NetworkStatus = "stopped"
	NetworkStatusStarting NetworkStatus = "starting"
	NetworkStatusRunning  NetworkStatus = "running"
	NetworkStatusStopping NetworkStatus = "stopping"
	NetworkStatusError    NetworkStatus = "error"
)

type NetworkType

type NetworkType string

NetworkType represents the type of network

const (
	NetworkTypePrimary NetworkType = "primary" // Mainnet or Testnet
	NetworkTypeChain   NetworkType = "chain"   // L1/L2 chains
)

type TxStatus

type TxStatus string

TxStatus represents transaction status

const (
	TxStatusPending    TxStatus = "pending"
	TxStatusValidating TxStatus = "validating"
	TxStatusCommitted  TxStatus = "committed"
	TxStatusFailed     TxStatus = "failed"
)

Jump to

Keyboard shortcuts

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