services

package
v1.3.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2022 License: MIT Imports: 22 Imported by: 4

Documentation

Overview

Package services contain the key components of the Chainlink node. This includes the Application, JobRunner, LogListener, and Scheduler.

Application

The Application is the main component used for starting and stopping the Chainlink node.

JobRunner

The JobRunner keeps track of Runs within a Job and ensures that they're executed in order. Within each Run, the tasks are also executed from the JobRunner.

JobSubscriber

The JobSubscriber coordinates running job events with the EventLog in the Store, and also subscribes to the given address on the Ethereum blockchain.

Scheduler

The Scheduler ensures that recurring events are executed according to their schedule, and one-time events occur only when the specified time has passed.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CheckFunc added in v1.2.0

type CheckFunc func() (unwell bool, meta Meta)

type Checkable added in v1.2.0

type Checkable interface {
	// Ready should return nil if ready, or an error message otherwise.
	Ready() error
	// Healthy should return nil if healthy, or an error message otherwise.
	Healthy() error
}

Checkable should be implemented by any type requiring health checks.

type Checker added in v1.2.0

type Checker interface {
	// Register a service for health checks.
	Register(name string, service Checkable) error
	// Unregister a service.
	Unregister(name string) error
	// IsReady returns the current readiness of the system.
	// A system is considered ready if all checks are passing (no errors)
	IsReady() (ready bool, errors map[string]error)
	// IsHealthy returns the current health of the system.
	// A system is considered healthy if all checks are passing (no errors)
	IsHealthy() (healthy bool, errors map[string]error)

	Start() error
	Close() error
}

Checker provides a service which can be probed for system health.

func NewChecker added in v1.2.0

func NewChecker() Checker

type Config added in v1.2.0

type Config interface {
	AutoPprofProfileRoot() string
	AutoPprofPollInterval() models.Duration
	AutoPprofGatherDuration() models.Duration
	AutoPprofGatherTraceDuration() models.Duration
	AutoPprofMaxProfileSize() utils.FileSize
	AutoPprofCPUProfileRate() int
	AutoPprofMemProfileRate() int
	AutoPprofBlockProfileRate() int
	AutoPprofMutexProfileFraction() int
	AutoPprofMemThreshold() utils.FileSize
	AutoPprofGoroutineThreshold() int
}

type Meta added in v1.2.0

type Meta map[string]interface{}

type Nurse added in v1.2.0

type Nurse struct {
	utils.StartStopOnce
	// contains filtered or unexported fields
}

func NewNurse added in v1.2.0

func NewNurse(cfg Config, log logger.Logger) *Nurse

func (*Nurse) AddCheck added in v1.2.0

func (n *Nurse) AddCheck(reason string, checkFunc CheckFunc)

func (*Nurse) Close added in v1.2.0

func (n *Nurse) Close() error

func (*Nurse) GatherVitals added in v1.2.0

func (n *Nurse) GatherVitals(reason string, meta Meta)

func (*Nurse) Start added in v1.2.0

func (n *Nurse) Start() error

type ServiceCtx added in v1.3.0

type ServiceCtx interface {
	// Start the service. Must quit immediately if the context is cancelled.
	// The given context applies to Start function only and must not be retained.
	Start(context.Context) error
	// Close stops the Service.
	// Invariants: Usually after this call the Service cannot be started
	// again, you need to build a new Service to do so.
	Close() error

	Checkable
}

ServiceCtx is a former Service interface, that changed Start function to receive a context. This is needed for services that make HTTP calls or DB queries in Start.

type State added in v1.2.0

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

type Status added in v1.2.0

type Status string
const (
	StatusPassing Status = "passing"
	StatusFailing Status = "failing"
)

Directories

Path Synopsis
job
ocr
pg
evm
types
Types are shared with external relay libraries so they can implement the interfaces required to run as a core OCR job.
Types are shared with external relay libraries so they can implement the interfaces required to run as a core OCR job.
signatures
cryptotest
Package cryptotest provides convenience functions for kyber-based APIs.
Package cryptotest provides convenience functions for kyber-based APIs.
ethdss
Package ethdss implements the Distributed Schnorr Signature protocol from the ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
Package ethdss implements the Distributed Schnorr Signature protocol from the ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
ethschnorr
Package ethschnorr implements a version of the Schnorr signature which is ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
Package ethschnorr implements a version of the Schnorr signature which is ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
secp256k1
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
vrf

Jump to

Keyboard shortcuts

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