mirror of
https://github.com/status-im/status-go.git
synced 2026-09-01 09:31:12 +00:00
* feat: add Pausable interface, PausableTicker, and ServiceRegistry Introduce the core primitives for lifecycle-aware service control: - common/pausable.go: Pausable interface (PausableName/Pause/Resume), PauseBroadcaster embed (MarkPaused/MarkResumed/IsPaused/Subscribe), Subscription interface for goroutine loops. - common/pausable_ticker.go: PausableTicker — wraps time.Ticker with a nil-channel pause trick so loops block cheaply without extra goroutines. - pkg/backend/node/service_registry.go: ServiceRegistry — central registry of Pausable services with Register/Pause/Resume/PauseAll/ResumeAll/List. * fix: Various fixes for the pausable service, pausable ticker and service registry
Structure
A Status node is a container of services. These services are passed to geth and registered with geth as APIs and Protocols.
Status node manages all the services and the geth node.
Status node is managed by api/geth_backend.go
So:
GethBackend manages StatusNode, StatusNode manages GethNode