common

package
v0.0.0-...-59ef1fd Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2021 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ReadinessEthSyncing        readiness.Component = "ethSyncing"
	ReadinessSolanaSyncing     readiness.Component = "solanaSyncing"
	ReadinessTerraSyncing      readiness.Component = "terraSyncing"
	ReadinessBSCSyncing        readiness.Component = "bscSyncing"
	ReadinessPolygonSyncing    readiness.Component = "polygonSyncing"
	ReadinessEthRopstenSyncing readiness.Component = "ethRopstenSyncing"
)
View Source
const MaxGuardianCount = 19

MaxGuardianCount specifies the maximum number of guardians supported by on-chain contracts.

Matching constants:

  • MAX_LEN_GUARDIAN_KEYS in Solana contract (limited by transaction size - 19 is the maximum amount possible)

The Eth and Terra contracts do not specify a maximum number and support more than that, but presumably, chain-specific transaction size limits will apply at some point (untested).

View Source
const MaxNodesPerGuardian = 15

MaxNodesPerGuardian specifies the maximum amount of nodes per guardian key that we'll accept whenever we maintain any per-guardian, per-node state.

There currently isn't any state clean up, so the value is on the high side to prevent accidentally reaching the limit due to operational mistakes.

View Source
const MaxStateAge = 1 * time.Minute

MaxStateAge specified the maximum age of state entries in seconds. Expired entries are purged from the state by Cleanup().

Variables

View Source
var NodeKeygenCmd = &cobra.Command{
	Use:   "node-keygen [KEYFILE]",
	Short: "Create node key at the specified path",
	Run:   runNodeKeygen,
	Args:  cobra.ExactArgs(1),
}

Functions

func GetOrCreateNodeKey

func GetOrCreateNodeKey(logger *zap.Logger, path string) (crypto.PrivKey, error)

func LockMemory

func LockMemory()

LockMemory locks current and future pages in memory to protect secret keys from being swapped out to disk. It's possible (and strongly recommended) to deploy Wormhole such that keys are only ever stored in memory and never touch the disk. This is a privileged operation and requires CAP_IPC_LOCK.

func NewInstrumentedGRPCServer

func NewInstrumentedGRPCServer(logger *zap.Logger) *grpc.Server

func SetRestrictiveUmask

func SetRestrictiveUmask()

SetRestrictiveUmask masks the group and world bits. This ensures that key material and sockets we create aren't accidentally group- or world-readable.

Types

type GuardianSet

type GuardianSet struct {
	// Guardian's public key hashes truncated by the ETH standard hashing mechanism (20 bytes).
	Keys []common.Address
	// On-chain set index
	Index uint32
}

func (*GuardianSet) KeyIndex

func (g *GuardianSet) KeyIndex(addr common.Address) (int, bool)

KeyIndex returns a given address index from the guardian set. Returns (-1, false) if the address wasn't found and (addr, true) otherwise.

func (*GuardianSet) KeysAsHexStrings

func (g *GuardianSet) KeysAsHexStrings() []string

type GuardianSetState

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

func NewGuardianSetState

func NewGuardianSetState() *GuardianSetState

func (*GuardianSetState) Cleanup

func (st *GuardianSetState) Cleanup()

Cleanup removes expired entries from the state.

func (*GuardianSetState) Get

func (st *GuardianSetState) Get() *GuardianSet

func (*GuardianSetState) GetAll

func (st *GuardianSetState) GetAll() map[common.Address]map[peer.ID]*gossipv1.Heartbeat

GetAll returns all stored heartbeats.

func (*GuardianSetState) LastHeartbeat

func (st *GuardianSetState) LastHeartbeat(addr common.Address) map[peer.ID]*gossipv1.Heartbeat

LastHeartbeat returns the most recent heartbeat message received for a given guardian node, or nil if none have been received.

func (*GuardianSetState) Set

func (st *GuardianSetState) Set(set *GuardianSet)

func (*GuardianSetState) SetHeartbeat

func (st *GuardianSetState) SetHeartbeat(addr common.Address, peerId peer.ID, hb *gossipv1.Heartbeat) error

SetHeartbeat stores a verified heartbeat observed by a given guardian.

type MessagePublication

type MessagePublication struct {
	TxHash    common.Hash // TODO: rename to identifier? on Solana, this isn't actually the tx hash
	Timestamp time.Time

	Nonce            uint32
	Sequence         uint64
	ConsistencyLevel uint8
	EmitterChain     vaa.ChainID
	EmitterAddress   vaa.Address
	Payload          []byte
}

Jump to

Keyboard shortcuts

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