Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultConfig = Config{ Interval: 30 * time.Second, ProcessSyncRequestTTL: 10 * time.Second, BufferSize: 200, IntervalSize: 20, MaxRepeat: 3, RepeatDecayStep: 1, }
DefaultConfig is the default config
Functions ¶
This section is empty.
Types ¶
type BlockByHeight ¶
BlockByHeight returns the block of a given height
type BlockSync ¶
type BlockSync interface {
lifecycle.StartStopper
nodestats.StatsReporter
// TargetHeight returns the target height to sync to
TargetHeight() uint64
// ProcessSyncRequest processes a block sync request
ProcessSyncRequest(context.Context, peer.AddrInfo, uint64, uint64) error
// ProcessBlock processes an incoming block
ProcessBlock(context.Context, string, *block.Block) error
// SyncStatus report block sync status
SyncStatus() (startingHeight uint64, currentHeight uint64, targetHeight uint64, syncSpeedDesc string)
}
BlockSync defines the interface of blocksyncer
func NewBlockSyncer ¶
func NewBlockSyncer( cfg Config, tipHeightHandler TipHeight, blockByHeightHandler BlockByHeight, commitBlockHandler CommitBlock, p2pNeighbor Neighbors, uniCastHandler UniCastOutbound, blockP2pPeer BlockPeer, ) (BlockSync, error)
NewBlockSyncer returns a new block syncer instance
func NewDummyBlockSyncer ¶
func NewDummyBlockSyncer() BlockSync
NewDummyBlockSyncer creates a dummy BlockSync
type CommitBlock ¶
CommitBlock commits a block to blockchain
type Config ¶
type Config struct {
Interval time.Duration `yaml:"interval"` // update duration
ProcessSyncRequestTTL time.Duration `yaml:"processSyncRequestTTL"`
BufferSize uint64 `yaml:"bufferSize"`
IntervalSize uint64 `yaml:"intervalSize"`
// MaxRepeat is the maximal number of repeat of a block sync request
MaxRepeat int `yaml:"maxRepeat"`
// RepeatDecayStep is the step for repeat number decreasing by 1
RepeatDecayStep int `yaml:"repeatDecayStep"`
}
Config is the config struct for the BlockSync
Click to show internal directories.
Click to hide internal directories.