Documentation ¶
Index ¶
- Constants
- Variables
- func GetOrCreateNodeKey(logger *zap.Logger, path string) (crypto.PrivKey, error)
- func LockMemory()
- func NewInstrumentedGRPCServer(logger *zap.Logger) *grpc.Server
- func SetRestrictiveUmask()
- type GuardianSet
- type GuardianSetState
- func (st *GuardianSetState) Cleanup()
- func (st *GuardianSetState) Get() *GuardianSet
- func (st *GuardianSetState) GetAll() map[common.Address]map[peer.ID]*gossipv1.Heartbeat
- func (st *GuardianSetState) LastHeartbeat(addr common.Address) map[peer.ID]*gossipv1.Heartbeat
- func (st *GuardianSetState) Set(set *GuardianSet)
- func (st *GuardianSetState) SetHeartbeat(addr common.Address, peerId peer.ID, hb *gossipv1.Heartbeat) error
- type MessagePublication
Constants ¶
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" )
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).
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.
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 ¶
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 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 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) LastHeartbeat ¶
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.