Documentation
¶
Overview ¶
Package netconf provides the configuration of an Omni network, an instance of the Omni cross chain protocol.
Index ¶
- func BindFlag(flags *pflag.FlagSet, network *ID)
- func ChainNamer(network ID) func(uint64) string
- func ChainVersionNamer(network ID) func(version xchain.ChainVersion) string
- func ConsensusChainIDStr2Uint64(id string) (uint64, error)
- func IntervalFromPeriod(network ID, period time.Duration) uint64
- func IsAny(id ID, targets ...ID) bool
- func IsEthereumChain(network ID, chainID uint64) bool
- func IsOmniConsensus(network ID, chainID uint64) bool
- func IsOmniExecution(network ID, chainID uint64) bool
- func MetadataByID(network ID, chainID uint64) evmchain.Metadata
- type Chain
- type Deployment
- type ID
- type Network
- func (n Network) Chain(id uint64) (Chain, bool)
- func (n Network) ChainIDs() []uint64
- func (n Network) ChainName(id uint64) string
- func (n Network) ChainNamesByIDs() map[uint64]string
- func (n Network) ChainVersionName(chainVer xchain.ChainVersion) string
- func (n Network) ChainVersionNames() map[xchain.ChainVersion]string
- func (n Network) ChainVersionsTo(dstChainID uint64) []xchain.ChainVersion
- func (n Network) EVMChains() []Chain
- func (n Network) EthereumChain() (Chain, bool)
- func (n Network) OmniConsensusChain() (Chain, bool)
- func (n Network) OmniEVMChain() (Chain, bool)
- func (n Network) StreamName(stream xchain.StreamID) string
- func (n Network) StreamsBetween(srcChainID uint64, dstChainID uint64) []xchain.StreamID
- func (n Network) StreamsFrom(srcChainID uint64) []xchain.StreamID
- func (n Network) StreamsTo(dstChainID uint64) []xchain.StreamID
- func (n Network) Validate() error
- type Static
- func (s Static) ConsensusRPC() string
- func (s Static) ConsensusSeeds() []string
- func (s Static) ExecutionRPC() string
- func (s Static) ExecutionSeeds() []string
- func (s Static) OmniConsensusChain() Chain
- func (s Static) OmniConsensusChainIDStr() string
- func (s Static) OmniConsensusChainIDUint64() uint64
- func (s Static) PortalDeployment(chainID uint64) (Deployment, bool)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChainNamer ¶ added in v0.1.4
func ChainVersionNamer ¶ added in v0.1.9
func ChainVersionNamer(network ID) func(version xchain.ChainVersion) string
func ConsensusChainIDStr2Uint64 ¶ added in v0.1.2
ConsensusChainIDStr2Uint64 parses the uint suffix from the provided a consensus chain ID string.
func IntervalFromPeriod ¶ added in v0.1.9
IntervalFromPeriod returns the minimum number of blocks between attestations for a given block period. TODO(kevin): Move this to e2e/types once MinAttestPeriod is added to PortalRegistry.
func IsEthereumChain ¶ added in v0.1.10
IsEthereumChainID returns true if the chainID is the EthereumChainID for the given network.
func IsOmniConsensus ¶ added in v0.1.4
IsOmniConsensus returns true if provided chainID is the omni consensus chain for the network.
func IsOmniExecution ¶ added in v0.1.4
IsOmniExecution returns true if provided chainID is the omni execution chain for the network.
Types ¶
type Chain ¶
type Chain struct { ID uint64 // Chain ID asa per https://chainlist.org Name string // Chain name as per https://chainlist.org PortalAddress common.Address // Address of the omni portal contract on the chain DeployHeight uint64 // Height that the portal contracts were deployed BlockPeriod time.Duration // Block period of the chain Shards []xchain.ShardID // Supported xmsg shards AttestInterval uint64 // Attest to every Nth block, even if empty. }
Chain defines the configuration of an execution chain that supports the Omni cross chain protocol. This is most supported Rollup EVMs, but also the Omni EVM, and the Omni Consensus chain.
func (Chain) ChainVersions ¶ added in v0.1.9
func (c Chain) ChainVersions() []xchain.ChainVersion
ChainVersions returns the uniq set of chain versions supported by the chain. This is inferred from the supported shards.
func (Chain) ConfLevels ¶ added in v0.1.8
ConfLevels returns the uniq set of confirmation levels supported by the chain. This is inferred from the supported shards.
func (Chain) ShardsUint64 ¶ added in v0.1.9
type Deployment ¶ added in v0.1.3
type ID ¶ added in v0.1.2
type ID string
ID is a network identifier.
const ( // Simnet is a simulated network for very simple testing of individual binaries. // It is a single binary with mocked clients (no networking). Simnet ID = "simnet" // Single binary with mocked clients (no network) // Devnet is the most basic single-machine deployment of the Omni cross chain protocol. // It uses docker compose to setup a network with multi containers. // E.g. 2 geth nodes, 4 halo validators, a relayer, and 2 anvil rollups. Devnet ID = "devnet" // Staging is the Omni team's internal staging network, similar to a internal testnet. // It connects to real public rollup testnets (e.g. Arbitrum testnet). // It is deployed to GCP using terraform. // E.g. 1 Erigon, 1 Geth, 4 halo validators, 2 halo sentries, 1 relayer. Staging ID = "staging" // Omega is a Omni public testnet. Omega ID = "omega" // Mainnet is the Omni public mainnet. Mainnet ID = "mainnet" )
func (ID) IsEphemeral ¶ added in v0.1.2
IsEphemeral returns true if the network is short-lived, therefore ephemeral.
func (ID) IsProtected ¶ added in v0.1.2
IsProtected returns true if the network is long-lived, therefore protected.
type Network ¶
type Network struct { ID ID `json:"name"` // ID of the network. e.g. "simnet", "testnet", "staging", "mainnet" Chains []Chain `json:"chains"` // Chains that are part of the network }
Network defines a deployment of the Omni cross chain protocol. It spans an omni chain (both execution and consensus) and a set of supported rollup EVMs.
func AwaitOnChain ¶ added in v0.1.4
func AwaitOnChain(ctx context.Context, netID ID, portalRegistry *bindings.PortalRegistry, expected []string) (Network, error)
AwaitOnChain blocks and returns network configuration as soon as it can be loaded from the on-chain registry. It only returns an error if the context is canceled.
func SimnetNetwork ¶ added in v0.1.9
func SimnetNetwork() Network
SimnetNetwork defines the simnet network configuration. Simnet is the only statically defined network, all others are dynamically defined in manifests.
func (Network) Chain ¶
Chain returns the chain config for the given ID or false if it does not exist.
func (Network) ChainIDs ¶
ChainIDs returns the all chain IDs in the network. This is a convenience method.
func (Network) ChainName ¶
ChainName returns the chain name for the given ID or an empty string if it does not exist.
func (Network) ChainNamesByIDs ¶
ChainNamesByIDs returns the all chain IDs and names in the network. This is a convenience method.
func (Network) ChainVersionName ¶ added in v0.1.9
func (n Network) ChainVersionName(chainVer xchain.ChainVersion) string
ChainVersionName returns the chain version name for the given ID or an empty string if it does not exist.
func (Network) ChainVersionNames ¶ added in v0.1.9
func (n Network) ChainVersionNames() map[xchain.ChainVersion]string
ChainVersionNames returns the all chain version names in the network. This is a convenience method.
func (Network) ChainVersionsTo ¶ added in v0.1.9
func (n Network) ChainVersionsTo(dstChainID uint64) []xchain.ChainVersion
ChainVersionsTo returns the all chain versions submitted to the provided destination chain.
func (Network) EVMChains ¶ added in v0.1.2
EVMChains returns all evm chains in the network. It excludes the omni consensus chain.
func (Network) EthereumChain ¶
EthereumChain returns the ethereum Layer1 chain config or false if it does not exist.
func (Network) OmniConsensusChain ¶ added in v0.1.2
OmniConsensusChain returns the Omni consensus chain config or false if it does not exist.
func (Network) OmniEVMChain ¶ added in v0.1.2
OmniEVMChain returns the Omni execution chain config or false if it does not exist.
func (Network) StreamName ¶ added in v0.1.9
StreamName returns the stream name for the given stream ID.
func (Network) StreamsBetween ¶ added in v0.1.8
StreamsBetween returns the all streams between the provided source and destination chain.
func (Network) StreamsFrom ¶ added in v0.1.8
StreamsFrom returns the all streams from the provided source chain.
type Static ¶ added in v0.1.2
type Static struct { Network ID Version string OmniExecutionChainID uint64 AVSContractAddress common.Address Portals []Deployment MaxValidators uint32 ConsensusGenesisJSON []byte ConsensusSeedTXT []byte ExecutionGenesisJSON []byte ExecutionSeedTXT []byte }
Static defines static config and data for a network.
func (Static) ConsensusRPC ¶ added in v0.1.9
func (Static) ConsensusSeeds ¶ added in v0.1.5
func (Static) ExecutionRPC ¶ added in v0.1.9
func (Static) ExecutionSeeds ¶ added in v0.1.5
func (Static) OmniConsensusChain ¶ added in v0.1.9
OmniConsensusChain returns the omni consensus Chain struct.
func (Static) OmniConsensusChainIDStr ¶ added in v0.1.2
OmniConsensusChainIDStr returns the chain ID string for the Omni consensus chain. It is calculated as "omni-<OmniConsensusChainIDUint64>".
func (Static) OmniConsensusChainIDUint64 ¶ added in v0.1.2
OmniConsensusChainIDUint64 returns the chain ID uint64 for the Omni consensus chain. It is calculated as 1_000_000 + OmniExecutionChainID.
func (Static) PortalDeployment ¶ added in v0.1.3
func (s Static) PortalDeployment(chainID uint64) (Deployment, bool)
PortalDeployment returns the portal deployment for the given chainID. If there is none, it returns an empty deployment.