Help us shape the future of Go! Take the 2026 Go Developer Survey

multinet

package
v1.14.24 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 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(log 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