app

package
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2023 License: GPL-3.0 Imports: 64 Imported by: 0

Documentation

Overview

Package app provides the top app-level abstraction and entrypoint for a charon DVC instance. The sub-packages also provide app-level functionality.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Protocols added in v0.13.0

func Protocols() []protocol.ID

Protocols returns the list of supported Protocols in order of precedence.

func Run

func Run(ctx context.Context, conf Config) (err error)

Run is the entrypoint for running a charon DVC instance. All processes and their dependencies are wired and added to the life cycle manager which handles starting and graceful shutdown.

Types

type Config

type Config struct {
	P2P                     p2p.Config
	Log                     log.Config
	Feature                 featureset.Config
	LockFile                string
	NoVerify                bool
	PrivKeyFile             string
	MonitoringAddr          string
	ValidatorAPIAddr        string
	BeaconNodeAddrs         []string
	JaegerAddr              string
	JaegerService           string
	SimnetBMock             bool
	SimnetVMock             bool
	SimnetValidatorKeysDir  string
	SyntheticBlockProposals bool
	BuilderAPI              bool

	TestConfig TestConfig
}

type TestConfig

type TestConfig struct {
	p2p.TestPingConfig

	// Lock provides the lock explicitly, skips loading from disk.
	Lock *cluster.Lock
	// P2PKey provides the p2p privkey explicitly, skips loading from keystore on disk.
	P2PKey *ecdsa.PrivateKey
	// ParSigExFunc provides an in-memory partial signature exchange.
	ParSigExFunc func() core.ParSigEx
	// LcastTransportFunc provides an in-memory leader cast transport.
	LcastTransportFunc func() leadercast.Transport
	// SimnetKeys provides private key shares for the simnet validatormock signer.
	SimnetKeys []*bls_sig.SecretKey
	// SimnetBMockOpts defines additional simnet beacon mock options.
	SimnetBMockOpts []beaconmock.Option
	// BroadcastCallback is called when a duty is completed and sent to the broadcast component.
	BroadcastCallback func(context.Context, core.Duty, core.PubKey, core.SignedData) error
	// BuilderRegistration provides a channel for tests to trigger builder registration by the validator mock,
	BuilderRegistration <-chan *eth2api.VersionedValidatorRegistration
	// PrioritiseCallback is called with priority protocol results.
	PrioritiseCallback func(context.Context, core.Duty, []priority.TopicResult) error
	// TCPNodeCallback provides test logic access to the libp2p host.
	TCPNodeCallback func(host.Host)
	// LibP2POpts provide test specific libp2p options.
	LibP2POpts []libp2p.Option
}

TestConfig defines additional test-only config.

Directories

Path Synopsis
Package errors provides errors with structured fields and stack traces.
Package errors provides errors with structured fields and stack traces.
Package eth2wrap provides a wrapper for eth2http.Service adding prometheus metrics and error wrapping.
Package eth2wrap provides a wrapper for eth2http.Service adding prometheus metrics and error wrapping.
genwrap
Command genwrap provides a code generator for eth2client provider methods implemented by eth2multi.Service.
Command genwrap provides a code generator for eth2client provider methods implemented by eth2multi.Service.
Package expbackoff implements exponential backoff.
Package expbackoff implements exponential backoff.
Package featureset defines a set of global features and their rollout status.
Package featureset defines a set of global features and their rollout status.
Package forkjoin provides an API for "doing work concurrently (fork) and then waiting for the results (join)".
Package forkjoin provides an API for "doing work concurrently (fork) and then waiting for the results (join)".
Package lifecycle provides a life cycle manager abstracting the starting and stopping of processes by registered start or stop hooks.
Package lifecycle provides a life cycle manager abstracting the starting and stopping of processes by registered start or stop hooks.
log
Package log provides global logging functions to be used throughout the charon app.
Package log provides global logging functions to be used throughout the charon app.
loki
Package loki provides a simple best-effort loki log ingestion client supporting batch sends.
Package loki provides a simple best-effort loki log ingestion client supporting batch sends.
Package promauto is a drop-in replacement of github.com/prometheus/client_golang/prometheus/promauto and adds support for wrapping all metrics with runtime labels.
Package promauto is a drop-in replacement of github.com/prometheus/client_golang/prometheus/promauto and adds support for wrapping all metrics with runtime labels.
Package retry provides a generic async function executor with retries for robustness against network failures.
Package retry provides a generic async function executor with retries for robustness against network failures.
Package tracer provides a global OpenTelemetry tracer.
Package tracer provides a global OpenTelemetry tracer.
z
Package z provides an API for structured logging fields by wrapping zap.Field.
Package z provides an API for structured logging fields by wrapping zap.Field.

Jump to

Keyboard shortcuts

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