Versions in this module Expand all Collapse all v1 v1.2.2 Apr 7, 2024 Changes in this version + var ErrNoAtlasstatsProxy = errors.New("no connected proxy that sent the atlasstats message to be signed") + var ErrNoProxiedValidator = errors.New("no connected proxied validator") + var ErrNodeNotProxiedValidator = errors.New("node not a proxied validator") + var ErrNodeNotProxy = errors.New("node not a proxy") + type BackendForProxiedValidatorEngine interface + AddPeer func(node *enode.Node, purpose p2p.PurposeFlag) + Address func() common.Address + GetAnnounceVersion func() uint + GetProxiedValidatorEngine func() ProxiedValidatorEngine + GetValEnodeTableEntries func(validators []common.Address) (map[common.Address]*istanbul.AddressEntry, error) + IsProxiedValidator func() bool + IsValidating func() bool + Multicast func(addresses []common.Address, payload []byte, ethMsgCode uint64, sendToSelf bool) error + RemovePeer func(node *enode.Node, purpose p2p.PurposeFlag) + RetrieveEnodeCertificateMsgMap func() map[enode.ID]*istanbul.EnodeCertMsg + RetrieveValidatorConnSet func() (map[common.Address]bool, error) + SelfNode func() *enode.Node + Sign func([]byte) ([]byte, error) + Unicast func(peer consensus.Peer, payload []byte, ethMsgCode uint64) + UpdateAnnounceVersion func() + type BackendForProxyEngine interface + GetProxyEngine func() ProxyEngine + GetValEnodeTableEntries func(validators []common.Address) (map[common.Address]*istanbul.AddressEntry, error) + IsProxy func() bool + Multicast func(addresses []common.Address, payload []byte, ethMsgCode uint64, sendToSelf bool) error + RetrieveEnodeCertificateMsgMap func() map[enode.ID]*istanbul.EnodeCertMsg + RewriteValEnodeTableEntries func(entries map[common.Address]*istanbul.AddressEntry) error + SelfNode func() *enode.Node + SetEnodeCertificateMsgMap func(enodeCertificateMsgMap map[enode.ID]*istanbul.EnodeCertMsg) error + Unicast func(peer consensus.Peer, payload []byte, ethMsgCode uint64) + VerifyPendingBlockValidatorSignature func(data []byte, sig []byte) (common.Address, error) + VerifyValidatorConnectionSetSignature func(data []byte, sig []byte) (common.Address, error) + type ProxiedValidatorEngine interface + AddProxy func(node, externalNode *enode.Node) error + GetProxiesAndValAssignments func() ([]*Proxy, map[enode.ID][]common.Address, error) + GetValidatorProxyAssignments func(validators []common.Address) (map[common.Address]*Proxy, error) + IsProxyPeer func(peerID enode.ID) (bool, error) + NewEpoch func() error + RegisterProxyPeer func(proxyPeer consensus.Peer) error + RemoveProxy func(node *enode.Node) error + SendDelegateSignMsgToProxy func(msg []byte, peerID enode.ID) error + SendEnodeCertsToAllProxies func(map[enode.ID]*istanbul.EnodeCertMsg) error + SendForwardMsgToAllProxies func(finalDestAddresses []common.Address, ethMsgCode uint64, payload []byte) error + SendValEnodesShareMsgToAllProxies func() error + Start func() error + Stop func() error + UnregisterProxyPeer func(proxyPeer consensus.Peer) error + func NewProxiedValidatorEngine(backend BackendForProxiedValidatorEngine, config *istanbul.Config) (ProxiedValidatorEngine, error) + type ProxiedValidatorInfo struct + Address common.Address + IsPeered bool + Node *enode.Node + type Proxy struct + func (p *Proxy) ExternalNode() *enode.Node + func (p *Proxy) ID() enode.ID + func (p *Proxy) IsPeered() bool + func (p *Proxy) String() string + type ProxyEngine interface + GetProxiedValidatorsInfo func() ([]*ProxiedValidatorInfo, error) + HandleMsg func(peer consensus.Peer, msgCode uint64, payload []byte) (bool, error) + RegisterProxiedValidatorPeer func(proxiedValidatorPeer consensus.Peer) + SendDelegateSignMsgToProxiedValidator func(msg []byte) error + SendMsgToProxiedValidators func(msgCode uint64, msg *istanbul.Message) error + UnregisterProxiedValidatorPeer func(proxiedValidatorPeer consensus.Peer) + func NewProxyEngine(backend BackendForProxyEngine, config *istanbul.Config) (ProxyEngine, error) + type ProxyInfo struct + AssignedRemoteValidators []common.Address + DisconnectTS int64 + ExternalNode *enode.Node + InternalNode *enode.Node + IsPeered bool + func NewProxyInfo(p *Proxy, assignedVals []common.Address) *ProxyInfo