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 ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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 MultiStart ¶ added in v1.9.0
type MultiStart struct {
// contains filtered or unexported fields
}
MultiStart is a utility for starting multiple services together. The set of started services is tracked internally, so that they can be closed if any single service fails to start.
Example ¶
Output:
a started
b started
c start failure
b close failure
a closed
failed to start: c; failed to close: b
type Nurse ¶ added in v1.2.0
type Nurse struct {
utils.StartStopOnce
// contains filtered or unexported fields
}
func (*Nurse) AddCheck ¶ added in v1.2.0
func (n *Nurse) AddCheck(reason string, checkFunc CheckFunc)
func (*Nurse) GatherVitals ¶ added in v1.2.0
func (n *Nurse) GatherVitals(reason string, meta Meta)
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 represents a long-running service inside the Application.
Typically, a ServiceCtx will leverage utils.StartStopOnce to implement these calls in a safe manner.
Template ¶
Mockable Foo service with a run loop
//go:generate mockery --name Foo --output ../internal/mocks/ --case=underscore
type (
// Expose a public interface so we can mock the service.
Foo interface {
service.ServiceCtx
// ...
}
foo struct {
// ...
stop chan struct{}
done chan struct{}
utils.StartStopOnce
}
)
var _ Foo = (*foo)(nil)
func NewFoo() Foo {
f := &foo{
// ...
}
return f
}
func (f *foo) Start(ctx context.Context) error {
return f.StartOnce("Foo", func() error {
go f.run()
return nil
})
}
func (f *foo) Close() error {
return f.StopOnce("Foo", func() error {
// trigger goroutine cleanup
close(f.stop)
// wait for cleanup to complete
<-f.done
return nil
})
}
func (f *foo) run() {
// signal cleanup completion
defer close(f.done)
for {
select {
// ...
case <-f.stop:
// stop the routine
return
}
}
}
type StartClose ¶ added in v1.9.0
type StartClose interface {
Start(context.Context) error
Close() error
}
StartClose is a subset of the ServiceCtx interface.
Directories
¶
Path | Synopsis |
---|---|
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 //////////////////////////////////////////////////////////////////////////////
|
Package ethdss implements the Distributed Schnorr Signature protocol from the ////////////////////////////////////////////////////////////////////////////// |
ethschnorr
Package ethschnorr implements a version of the Schnorr signature which is //////////////////////////////////////////////////////////////////////////////
|
Package ethschnorr implements a version of the Schnorr signature which is ////////////////////////////////////////////////////////////////////////////// |
secp256k1
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} //////////////////////////////////////////////////////////////////////////////
|
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} ////////////////////////////////////////////////////////////////////////////// |