Documentation ¶
Index ¶
Constants ¶
const ( // Open indicates an open state Open = iota // Closing indicates a closing state Closing = Open + 1 // Closed indicates a closed state Closed = Closing + 1 )
Variables ¶
var ( // ErrInvalidRange indicates invalid range. ErrInvalidRange = errors.New("invalid open/close values") )
var WindowSize uint64 = 8
WindowSize defines the size of window
Functions ¶
This section is empty.
Types ¶
type BlockSync ¶
type BlockSync interface { lifecycle.StartStopper TargetHeight() uint64 ProcessSyncRequest(ctx context.Context, peer peerstore.PeerInfo, sync *iproto.BlockSync) error ProcessBlock(ctx context.Context, blk *block.Block) error ProcessBlockSync(ctx context.Context, blk *block.Block) error }
BlockSync defines the interface of blocksyncer
func NewBlockSyncer ¶
func NewBlockSyncer( cfg config.Config, chain blockchain.Blockchain, ap actpool.ActPool, cs consensus.Consensus, opts ...Option, ) (BlockSync, error)
NewBlockSyncer returns a new block syncer instance
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config represents the config to setup blocksync
type Option ¶
Option is the option to override the blocksync config
func WithNeighbors ¶
WithNeighbors is the option to set the neighbors callback
func WithUnicastOutBound ¶
func WithUnicastOutBound(unicastHandler UnicastOutbound) Option
WithUnicastOutBound is the option to set the unicast callback
type SlidingWindow ¶
type SlidingWindow struct { State int // contains filtered or unexported fields }
SlidingWindow implements a sliding window
func NewSlidingWindow ¶
func NewSlidingWindow() *SlidingWindow
NewSlidingWindow returns a SlidingWindow instance
func (*SlidingWindow) Next ¶
func (sw *SlidingWindow) Next() uint64
Next returns the next close value of the sliding window
func (*SlidingWindow) SetRange ¶
func (sw *SlidingWindow) SetRange(left uint64, right uint64) error
SetRange set the initial range for sliding window
func (*SlidingWindow) TurnClose ¶
func (sw *SlidingWindow) TurnClose() bool
TurnClose returns true if state transitions Open --> Closing/Closed
func (*SlidingWindow) TurnOpen ¶
func (sw *SlidingWindow) TurnOpen() bool
TurnOpen returns true if state transitions Closing/Closed --> Open
func (*SlidingWindow) Update ¶
func (sw *SlidingWindow) Update(value uint64)
Update updates the window [close, open]