Documentation ¶
Overview ¶
Package shared includes useful utilities globally accessible in the Prysm monorepo.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Service ¶
type Service interface { // Start spawns any goroutines required by the service. Start() // Stop terminates all goroutines belonging to the service, // blocking until they are all terminated. Stop() error // Returns error if the service is not considered healthy. Status() error }
Service is a struct that can be registered into a ServiceRegistry for easy dependency management.
type ServiceRegistry ¶
type ServiceRegistry struct {
// contains filtered or unexported fields
}
ServiceRegistry provides a useful pattern for managing services. It allows for ease of dependency management and ensures services dependent on others use the same references in memory.
func NewServiceRegistry ¶
func NewServiceRegistry() *ServiceRegistry
NewServiceRegistry starts a registry instance for convenience
func (*ServiceRegistry) FetchService ¶
func (s *ServiceRegistry) FetchService(service interface{}) error
FetchService takes in a struct pointer and sets the value of that pointer to a service currently stored in the service registry. This ensures the input argument is set to the right pointer that refers to the originally registered service.
func (*ServiceRegistry) RegisterService ¶
func (s *ServiceRegistry) RegisterService(service Service) error
RegisterService appends a service constructor function to the service registry.
func (*ServiceRegistry) StartAll ¶
func (s *ServiceRegistry) StartAll()
StartAll initialized each service in order of registration.
func (*ServiceRegistry) Statuses ¶
func (s *ServiceRegistry) Statuses() map[reflect.Type]error
Statuses returns a map of Service type -> error. The map will be populated with the results of each service.Status() method call.
func (*ServiceRegistry) StopAll ¶
func (s *ServiceRegistry) StopAll()
StopAll ends every service in reverse order of registration, logging a panic if any of them fail to stop.
Directories ¶
Path | Synopsis |
---|---|
Package attestationutil contains useful helpers for converting attestations into indexed form.
|
Package attestationutil contains useful helpers for converting attestations into indexed form. |
Package benchutil contains useful helpers for pregenerating filled data structures such as blocks/states for benchmarks.
|
Package benchutil contains useful helpers for pregenerating filled data structures such as blocks/states for benchmarks. |
Package bls implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme.
|
Package bls implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme. |
Package bytesutil defines helper methods for converting integers to byte slices.
|
Package bytesutil defines helper methods for converting integers to byte slices. |
Package cmd defines the command line flags for the shared utlities.
|
Package cmd defines the command line flags for the shared utlities. |
Package debug defines useful profiling utils that came originally with go-ethereum.
|
Package debug defines useful profiling utils that came originally with go-ethereum. |
Package event contains an event feed implementation for process communication.
|
Package event contains an event feed implementation for process communication. |
Package featureconfig defines which features are enabled for runtime in order to selectively enable certain features to maintain a stable runtime.
|
Package featureconfig defines which features are enabled for runtime in order to selectively enable certain features to maintain a stable runtime. |
Package hashutil includes all hash-function related helpers for Prysm.
|
Package hashutil includes all hash-function related helpers for Prysm. |
Package interop contains deterministic utilities for generating genesis states and keys.
|
Package interop contains deterministic utilities for generating genesis states and keys. |
Package iputils contains useful functions for ip address formatting.
|
Package iputils contains useful functions for ip address formatting. |
Package keystore contains useful functions for dealing with eth2 deposit inputs leveraging go-ethereum's own keystore package.
|
Package keystore contains useful functions for dealing with eth2 deposit inputs leveraging go-ethereum's own keystore package. |
Package logutil creates a Multi writer instance that write all logs that are written to stdout.
|
Package logutil creates a Multi writer instance that write all logs that are written to stdout. |
Package mathutil includes important helpers for eth2 such as fast integer square roots.
|
Package mathutil includes important helpers for eth2 such as fast integer square roots. |
Package mclockutil is a wrapper for a monotonic clock source.
|
Package mclockutil is a wrapper for a monotonic clock source. |
Package memorypool includes useful tools for creating common data structures in eth2 with optimal memory allocation.
|
Package memorypool includes useful tools for creating common data structures in eth2 with optimal memory allocation. |
Package messagehandler contains useful helpers for recovering from panic conditions at runtime and logging their trace.
|
Package messagehandler contains useful helpers for recovering from panic conditions at runtime and logging their trace. |
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
Package mputil contains useful helpers for converting multi-processor computation.
|
Package mputil contains useful helpers for converting multi-processor computation. |
Package p2putils contains useful helpers for eth2 fork-related functionality.
|
Package p2putils contains useful helpers for eth2 fork-related functionality. |
Package pagination contains useful pagination-related helpers.
|
Package pagination contains useful pagination-related helpers. |
Package params defines important constants that are essential to eth2 services.
|
Package params defines important constants that are essential to eth2 services. |
spectest
Package spectest allows for easy switching of chain configuration parameters in spec conformity unit tests.
|
Package spectest allows for easy switching of chain configuration parameters in spec conformity unit tests. |
Package prometheus defines a service which is used for metrics collection and health of a node in Prysm.
|
Package prometheus defines a service which is used for metrics collection and health of a node in Prysm. |
Package roughtime is a wrapper for a roughtime clock source.
|
Package roughtime is a wrapper for a roughtime clock source. |
Package runutil includes helpers for scheduling runnable, periodic functions.
|
Package runutil includes helpers for scheduling runnable, periodic functions. |
Package sliceutil implements set operations for specified data type Currently types which are tested and supported are: []uint32 []int32 []string []float32 []uint64 []int64 []string []float64 Intersection, Union, Not , IsIn are the operations which are supported on slices
|
Package sliceutil implements set operations for specified data type Currently types which are tested and supported are: []uint32 []int32 []string []float32 []uint64 []int64 []string []float64 Intersection, Union, Not , IsIn are the operations which are supported on slices |
Package slotutil includes ticker and timer-related functions for eth2.
|
Package slotutil includes ticker and timer-related functions for eth2. |
testing
Package testing includes useful mocks for slot tickers in unit tests.
|
Package testing includes useful mocks for slot tickers in unit tests. |
Package testutil defines common unit test utils such as asserting logs.
|
Package testutil defines common unit test utils such as asserting logs. |
Package traceutil includes useful functions for opentracing annotations.
|
Package traceutil includes useful functions for opentracing annotations. |
Package tracing sets up jaeger as an opentracing tool for services in Prysm.
|
Package tracing sets up jaeger as an opentracing tool for services in Prysm. |
Package trieutil defines utilities for sparse merkle tries for eth2.
|
Package trieutil defines utilities for sparse merkle tries for eth2. |
Package version executes and returns the version string for the currently running process.
|
Package version executes and returns the version string for the currently running process. |