Documentation
¶
Overview ¶
Package context provides consensus context for VMs
Index ¶
- func GetChainID(ctx context.Context) ids.ID
- func GetNetworkID(ctx context.Context) uint32
- func GetNodeID(ctx context.Context) ids.NodeID
- func GetTimestamp() int64
- func GetWarpSigner(ctx context.Context) interface{}
- func IsPrimaryNetwork(ctx context.Context) bool
- func WithContext(ctx context.Context, cc *Context) context.Context
- func WithIDs(ctx context.Context, ids IDs) context.Context
- func WithValidatorState(ctx context.Context, vs interface{}) context.Context
- type AtomicPutRequest
- type AtomicRequests
- type BCLookup
- type BlockchainIDLookup
- type Context
- type GetValidatorOutput
- type IDs
- type Keystore
- type Logger
- type Metrics
- type NetworkUpgrades
- type SharedMemory
- type ValidatorState
- type WarpSigner
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetChainID ¶
GetChainID gets the chain ID from context
func GetNetworkID ¶
GetNetworkID gets the numeric network ID from context (1=mainnet, 2=testnet)
func GetWarpSigner ¶ added in v1.22.2
GetWarpSigner gets the warp signer from context
func IsPrimaryNetwork ¶ added in v1.22.39
IsPrimaryNetwork checks if the network is the primary network (NetworkID == 1)
func WithContext ¶
WithContext adds consensus context to a context
Types ¶
type AtomicPutRequest ¶ added in v1.22.26
type AtomicPutRequest struct {
Key []byte // The key to store
Value []byte // The value to store
Traits [][]byte // Traits for indexing
}
AtomicPutRequest represents a put operation in shared memory
type AtomicRequests ¶ added in v1.22.26
type AtomicRequests struct {
RemoveRequests [][]byte // Keys to remove
PutRequests []*AtomicPutRequest // Key-value pairs to put
}
AtomicRequests contains atomic operations for a chain
type BCLookup ¶ added in v1.22.23
type BCLookup interface {
Lookup(alias string) (ids.ID, error)
PrimaryAlias(id ids.ID) (string, error)
Aliases(id ids.ID) ([]string, error)
}
BCLookup provides blockchain alias lookup
type BlockchainIDLookup ¶
type BlockchainIDLookup = BCLookup
BlockchainIDLookup is an alias for BCLookup for backward compatibility
type Context ¶
type Context struct {
// NetworkID is the numeric network identifier (1=mainnet, 2=testnet)
// EVM chain IDs are derived: mainnet=96369, testnet=96368
NetworkID uint32 `json:"networkID"`
// ChainID identifies the specific chain within the network
ChainID ids.ID `json:"chainID"`
NodeID ids.NodeID `json:"nodeID"`
PublicKey []byte `json:"publicKey"`
XChainID ids.ID `json:"xChainID"`
CChainID ids.ID `json:"cChainID"`
XAssetID ids.ID `json:"xAssetID"` // Primary asset ID (X-chain native)
ChainDataDir string `json:"chainDataDir"`
// Timing
StartTime time.Time `json:"startTime"`
ValidatorState interface{} // validators.State or ValidatorState interface
Keystore Keystore
Metrics interface{} // metrics.MultiGatherer or Metrics interface
Log interface{} // logging.Logger
BCLookup BCLookup // Blockchain alias lookup
WarpSigner interface{} // warp.Signer
NetworkUpgrades interface{} // upgrade.Config
// Lock for thread-safe access to context
Lock sync.RWMutex
}
Context provides consensus context for VMs
func FromContext ¶
FromContext extracts consensus context from a context
type GetValidatorOutput ¶
GetValidatorOutput contains validator information
type IDs ¶
type IDs struct {
NetworkID uint32 // 1=mainnet, 2=testnet
ChainID ids.ID
NodeID ids.NodeID
PublicKey []byte
XAssetID ids.ID // Primary asset ID (X-chain native)
ChainDataDir string `json:"chainDataDir"`
}
IDs holds the IDs for consensus context
type Keystore ¶
type Keystore interface {
GetDatabase(username, password string) (interface{}, error)
NewAccount(username, password string) error
}
Keystore provides key management
type Logger ¶ added in v1.19.12
type Logger interface {
Debug(msg string, fields ...interface{})
Info(msg string, fields ...interface{})
Warn(msg string, fields ...interface{})
Error(msg string, fields ...interface{})
Fatal(msg string, fields ...interface{})
}
Logger provides logging functionality
type NetworkUpgrades ¶ added in v1.19.12
type NetworkUpgrades interface {
// IsApricotPhase3Activated returns true if the Apricot Phase 3 upgrade is activated
IsApricotPhase3Activated(timestamp time.Time) bool
// IsApricotPhase5Activated returns true if the Apricot Phase 5 upgrade is activated
IsApricotPhase5Activated(timestamp time.Time) bool
// IsBanffActivated returns true if the Banff upgrade is activated
IsBanffActivated(timestamp time.Time) bool
// IsCortinaActivated returns true if the Cortina upgrade is activated
IsCortinaActivated(timestamp time.Time) bool
// IsDurangoActivated returns true if the Durango upgrade is activated
IsDurangoActivated(timestamp time.Time) bool
// IsEtnaActivated returns true if the Etna upgrade is activated
IsEtnaActivated(timestamp time.Time) bool
}
NetworkUpgrades contains network upgrade activation times
type SharedMemory ¶ added in v1.19.12
type SharedMemory interface {
peerChainID ids.ID,
traits [][]byte,
startTrait, startKey []byte,
limit int,
) (values [][]byte, lastTrait, lastKey []byte, err error)
Apply(requests map[ids.ID]*AtomicRequests, batch interface{}) error
}
SharedMemory provides cross-chain shared memory
type ValidatorState ¶
type ValidatorState interface {
GetChainID(ids.ID) (ids.ID, error)
GetNetworkID(ids.ID) (ids.ID, error)
GetValidatorSet(uint64, ids.ID) (map[ids.NodeID]uint64, error)
GetCurrentHeight(context.Context) (uint64, error)
GetMinimumHeight(context.Context) (uint64, error)
}
ValidatorState provides validator information This is kept as a minimal interface for compatibility with node package
func GetValidatorState ¶
func GetValidatorState(ctx context.Context) ValidatorState
GetValidatorState gets the validator state from context
type WarpSigner ¶ added in v1.19.12
type WarpSigner interface {
// Sign signs the given message and returns the signature
Sign(msg interface{}) ([]byte, error)
// PublicKey returns the BLS public key bytes
PublicKey() []byte
// NodeID returns the node ID associated with this signer
NodeID() ids.NodeID
}
WarpSigner provides BLS signing for Warp messages