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"


This section is empty.


This section is empty.


type BlockchainReactor

type BlockchainReactor struct {
	// 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, src p2p.Peer, msgBytes []byte)

            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.