beacon

package
v1.10.1 Latest Latest
Warning

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

Go to latest
Published: May 19, 2026 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const MaxReusePortShards = 0

MaxReusePortShards is unlimited on Linux — the kernel flow-hashes across all open SO_REUSEPORT sockets. 0 means "use the configured 2× NumCPU default in ListenAndServe."

Variables

This section is empty.

Functions

This section is empty.

Types

type Server

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

func New

func New() *Server

func NewWithPeers

func NewWithPeers(beaconID uint32, peers []string) *Server

NewWithPeers creates a beacon server with gossip peer support. beaconID uniquely identifies this beacon instance (0 = standalone). peers is a list of peer beacon addresses for gossip exchange.

func (*Server) Addr

func (s *Server) Addr() net.Addr

Addr returns the server's bound address. Only valid after Ready() fires.

func (*Server) Close

func (s *Server) Close() error

func (*Server) CloseCompatWSS added in v1.10.1

func (s *Server) CloseCompatWSS() error

CloseCompatWSS shuts down the WSS bridge. Idempotent. Used by graceful shutdown paths and tests.

func (*Server) EnableCompatWSS added in v1.10.1

func (s *Server) EnableCompatWSS(bindAddr string, pubKeyLookup bwss.PubKeyLookupFn) error

EnableCompatWSS attaches a WSS-bridge listener for compat-mode daemons. After Start, the beacon's relay worker checks the WSS peer map BEFORE the UDP tier-1/2 lookups: relay packets destined for a WSS-connected daemon are written over WSS instead of UDP. Inbound WSS frames feed into handlePacket the same way UDP datagrams do, so the existing dispatch logic (BeaconMsgRelay, BeaconMsgDiscover, etc.) handles them without changes.

pubKeyLookup must return the Ed25519 pubkey registered for nodeID. In the rendezvous binary this is plumbed to the in-process registry's pubkey index.

Call this BEFORE ListenAndServe so the wssServer is in place when the first UDP datagram arrives.

func (*Server) ListenAndServe

func (s *Server) ListenAndServe(addr string) error

func (*Server) LocalNodeCount

func (s *Server) LocalNodeCount() int

LocalNodeCount returns the number of locally registered nodes.

func (*Server) PeerNodeCount

func (s *Server) PeerNodeCount() int

PeerNodeCount returns the number of nodes known via gossip from peer beacons.

func (*Server) Ready

func (s *Server) Ready() <-chan struct{}

Ready returns a channel that is closed when the server has bound its port.

func (*Server) RelayDropped added in v1.9.0

func (s *Server) RelayDropped() uint64

RelayDropped returns the count of relay packets dropped (capacity / errors).

func (*Server) RelayForwarded added in v1.9.0

func (s *Server) RelayForwarded() uint64

RelayForwarded returns the count of relay packets the beacon has forwarded since startup. Used by /api/stats to surface observable evidence that the relay path is live.

func (*Server) RelayNotFound added in v1.9.0

func (s *Server) RelayNotFound() uint64

RelayNotFound returns the count of relay packets dropped because the destination node was not registered with the beacon.

func (*Server) SendPunchCommand

func (s *Server) SendPunchCommand(nodeID uint32, targetIP net.IP, targetPort uint16) error

SendPunchCommand tells a node to send UDP to a target endpoint.

func (*Server) ServeHealth

func (s *Server) ServeHealth(addr string) error

ServeHealth starts a simple HTTP server with a /healthz endpoint for load balancer health checks.

func (*Server) SetAdvertiseAddr added in v1.9.1

func (s *Server) SetAdvertiseAddr(addr string)

SetAdvertiseAddr sets the address this beacon registers with the registry. When empty (default), the beacon auto-detects from its TCP local addr to the registry — which on a GCP MIG deployment yields the INTERNAL VPC address (10.128.0.x), unreachable from external daemons. MIG-deployed beacons must set this to the public DNAT entrypoint (e.g. the rendezvous reserved IP on UDP 9001) so external clients receive a routable address from beacon_list.

func (*Server) SetHealthy

func (s *Server) SetHealthy(ok bool)

SetHealthy sets the health status (for graceful drain on scale-down).

func (*Server) SetRegistry

func (s *Server) SetRegistry(addr string)

SetRegistry sets the registry address for dynamic peer discovery. Safe to call at any time — protected by mu so the discovery loop does not race against a post-startup SetRegistry call.

func (*Server) SetRegistryAdminToken added in v1.10.0

func (s *Server) SetRegistryAdminToken(token string)

SetRegistryAdminToken sets the admin token sent with beacon_register. Required when the registry enforces SEC-002 beacon registration auth.

func (*Server) WSSMetrics added in v1.10.1

func (s *Server) WSSMetrics() bwss.Metrics

WSSMetrics returns the live WSS-bridge metrics, or zero values if EnableCompatWSS was never called. Used by the dashboard / Prom scrape to expose compat-mode visibility.

Directories

Path Synopsis
Package wss is the beacon-side WSS listener for compat-mode daemons.
Package wss is the beacon-side WSS listener for compat-mode daemons.

Jump to

Keyboard shortcuts

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