Documentation
¶
Overview ¶
Package multinet provides support for running multiple heterogeneous networks in parallel with shared BadgerDB for cross-chain ACID transactions
Index ¶
- type ChainConfig
- type ChainInstance
- type ConsensusManager
- type ConsensusParams
- type CrossChainTx
- type CrossChainTxCoordinator
- type MultiNetworkManager
- func (m *MultiNetworkManager) AddNetwork(config NetworkConfig) error
- func (m *MultiNetworkManager) GetNetworkStatus() map[uint32]NetworkStatus
- func (m *MultiNetworkManager) Shutdown() error
- func (m *MultiNetworkManager) StartAll() error
- func (m *MultiNetworkManager) StartNetwork(networkID uint32) error
- func (m *MultiNetworkManager) SubmitCrossChainTx(tx *CrossChainTx) error
- type NetworkConfig
- type NetworkInstance
- type NetworkStatus
- type NetworkType
- type TxStatus
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 )