v2

package
v0.0.0-...-fb002f8 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2024 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// BlockchainChannel is a channel for blocks and status updates (`BlockStore` height)
	BlockchainChannel = byte(0x40)
)
View Source
const (
	// MetricsSubsystem is a subsystem shared by all metrics exposed by this
	// package.
	MetricsSubsystem = "blockchain"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockchainReactor

type BlockchainReactor struct {
	p2p.BaseReactor
	// contains filtered or unexported fields
}

BlockchainReactor handles fast sync protocol.

func NewBlockchainReactor

func NewBlockchainReactor(
	state state.State,
	blockApplier blockApplier,
	store blockStore,
	fastSync bool) *BlockchainReactor

NewBlockchainReactor creates a new reactor instance.

func (*BlockchainReactor) AddPeer

func (r *BlockchainReactor) AddPeer(peer p2p.Peer)

AddPeer implements Reactor interface

func (*BlockchainReactor) GetChannels

func (r *BlockchainReactor) GetChannels() []*p2p.ChannelDescriptor

GetChannels implements Reactor

func (*BlockchainReactor) Receive

func (r *BlockchainReactor) Receive(chID byte, peer p2p.Peer, msgBytes []byte)

func (*BlockchainReactor) ReceiveEnvelope

func (r *BlockchainReactor) ReceiveEnvelope(e p2p.Envelope)

Receive implements Reactor by handling different message types.

func (*BlockchainReactor) RemovePeer

func (r *BlockchainReactor) RemovePeer(peer p2p.Peer, reason interface{})

RemovePeer implements Reactor interface.

func (*BlockchainReactor) SetLogger

func (r *BlockchainReactor) SetLogger(logger log.Logger)

SetLogger sets the logger of the reactor.

func (*BlockchainReactor) SetSwitch

func (r *BlockchainReactor) SetSwitch(sw *p2p.Switch)

SetSwitch implements Reactor interface.

func (*BlockchainReactor) Start

func (r *BlockchainReactor) Start() error

Start implements cmn.Service interface

func (*BlockchainReactor) Stop

func (r *BlockchainReactor) Stop() error

Stop implements cmn.Service interface.

func (*BlockchainReactor) SwitchToFastSync

func (r *BlockchainReactor) SwitchToFastSync(state state.State) error

SwitchToFastSync is called by the state sync reactor when switching to fast sync.

func (*BlockchainReactor) SyncHeight

func (r *BlockchainReactor) SyncHeight() int64

SyncHeight returns the height to which the BlockchainReactor has synced.

type Event

type Event queue.Item

Event is the type that can be added to the priority queue.

type Metrics

type Metrics struct {
	// events_in
	EventsIn metrics.Counter
	// events_in
	EventsHandled metrics.Counter
	// events_out
	EventsOut metrics.Counter
	// errors_in
	ErrorsIn metrics.Counter
	// errors_handled
	ErrorsHandled metrics.Counter
	// errors_out
	ErrorsOut metrics.Counter
	// events_shed
	EventsShed metrics.Counter
	// events_sent
	EventsSent metrics.Counter
	// errors_sent
	ErrorsSent metrics.Counter
	// errors_shed
	ErrorsShed metrics.Counter
}

Metrics contains metrics exposed by this package.

func NopMetrics

func NopMetrics() *Metrics

NopMetrics returns no-op Metrics.

func PrometheusMetrics

func PrometheusMetrics(namespace string, labelsAndValues ...string) *Metrics

PrometheusMetrics returns metrics for in and out events, errors, etc. handled by routines. Can we burn in the routine name here?

type PeerByID

type PeerByID []p2p.ID

PeerByID is a list of peers sorted by peerID.

func (PeerByID) Len

func (peers PeerByID) Len() int

func (PeerByID) Less

func (peers PeerByID) Less(i, j int) bool

func (PeerByID) Swap

func (peers PeerByID) Swap(i, j int)

type Routine

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

Routine is a structure that models a finite state machine as serialized stream of events processed by a handle function. This Routine structure handles the concurrency and messaging guarantees. Events are sent via `send` are handled by the `handle` function to produce an iterator `next()`. Calling `stop()` on a routine will conclude processing of all sent events and produce `final()` event representing the terminal state.

Jump to

Keyboard shortcuts

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