node

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2025 License: Apache-2.0 Imports: 33 Imported by: 1

Documentation

Overview

Package node is the main entry point, where the Node struct, which represents a full node, is defined.

Adding new p2p.Reactor(s)

To add a new p2p.Reactor, use the CustomReactors option:

node, err := NewNode(
		config,
		privVal,
		nodeKey,
		clientCreator,
		genesisDocProvider,
		dbProvider,
		metricsProvider,
		logger,
		CustomReactors(map[string]p2p.Reactor{"CUSTOM": customReactor}),
)

Replacing existing p2p.Reactor(s)

To replace the built-in p2p.Reactor, use the CustomReactors option:

node, err := NewNode(
		config,
		privVal,
		nodeKey,
		clientCreator,
		genesisDocProvider,
		dbProvider,
		metricsProvider,
		logger,
		CustomReactors(map[string]p2p.Reactor{"BLOCKSYNC": customBlocksyncReactor}),
)

The list of existing reactors can be found in CustomReactors documentation.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MetricsProvider

type MetricsProvider func(chainID string) (*p2p.Metrics, *proxy.Metrics)

MetricsProvider returns a consensus, p2p and mempool Metrics.

func DefaultMetricsProvider

func DefaultMetricsProvider(config *cfg.InstrumentationConfig) MetricsProvider

DefaultMetricsProvider returns Metrics build using Prometheus client library if Prometheus is enabled. Otherwise, it returns no-op Metrics.

type Node

type Node struct {
	service.BaseService
	// contains filtered or unexported fields
}

Node is the highest level interface to a full PellDVS node. It includes all configuration information and running services.

func DefaultNewNode

func DefaultNewNode(config *cfg.Config, logger log.Logger) (*Node, error)

DefaultNewNode returns a PellDVS node with default settings for the It implements NodeProvider.

func NewNode

func NewNode(config *cfg.Config,
	privValidator types.PrivValidator,
	nodeKey *p2p.NodeKey,
	clientCreator proxy.ClientCreator,
	dbProvider cfg.DBProvider,
	aggregator aggtypes.Aggregator,
	dvsReader reader.DVSReader,
	metricsProvider MetricsProvider,
	logger log.Logger,
	options ...Option,
) (*Node, error)

NewNode returns a new, ready to go, PellDVS Node.

func NewNodeWithContext

func NewNodeWithContext(ctx context.Context,
	config *cfg.Config,
	privValidator types.PrivValidator,
	nodeKey *p2p.NodeKey,
	clientCreator proxy.ClientCreator,
	requestIndexDBProvider cfg.DBProvider,
	aggregator aggtypes.Aggregator,
	dvsReader reader.DVSReader,
	metricsProvider MetricsProvider,
	logger log.Logger,
	options ...Option,
) (*Node, error)

NewNodeWithContext is cancellable version of NewNode.

func (*Node) Config

func (n *Node) Config() *cfg.Config

Config returns the Node's config.

func (*Node) ConfigureRPC

func (n *Node) ConfigureRPC() (*rpccore.Environment, error)

ConfigureRPC makes sure RPC has all the objects it needs to operate.

func (*Node) IsListening

func (n *Node) IsListening() bool

func (*Node) Listeners

func (n *Node) Listeners() []string

func (*Node) NodeInfo

func (n *Node) NodeInfo() p2p.NodeInfo

NodeInfo returns the Node's Info from the Switch.

func (*Node) OnStart

func (n *Node) OnStart() error

OnStart starts the Node. It implements service.Service.

func (*Node) OnStop

func (n *Node) OnStop()

OnStop stops the Node. It implements service.Service.

func (*Node) PrivValidator

func (n *Node) PrivValidator() types.PrivValidator

PrivValidator returns the Node's PrivValidator. XXX: for convenience only!

func (*Node) ProxyApp

func (n *Node) ProxyApp() proxy.AppConns

ProxyApp returns the Node's AppConns, representing its connections to the AVSI application.

func (*Node) Switch

func (n *Node) Switch() *p2p.Switch

Switch returns the Node's Switch.

type Option

type Option func(*Node)

Option sets a parameter for the node.

func CustomReactors

func CustomReactors(reactors map[string]p2p.Reactor) Option

CustomReactors allows you to add custom reactors (name -> p2p.Reactor) to the node's Switch.

WARNING: using any name from the below list of the existing reactors will result in replacing it with the custom one.

  • MEMPOOL
  • BLOCKSYNC
  • CONSENSUS
  • EVIDENCE
  • PEX
  • STATESYNC

type Provider

type Provider func(*cfg.Config, log.Logger) (*Node, error)

Provider takes a config and a logger and returns a ready to go Node.

Jump to

Keyboard shortcuts

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