Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type State ¶
type State struct { ID uint64 // incrementing ID of a sync Height uint64 // height at the moment when State is requested for a sync FromHeight, ToHeight uint64 // the starting and the ending point of a sync FromHash, ToHash tmbytes.HexBytes Start, End time.Time Error error // the error that might happen within a sync }
State collects all the information about a sync.
type Syncer ¶
type Syncer struct {
// contains filtered or unexported fields
}
There are two main processes running in Syncer: 1. Main syncing loop(s.syncLoop)
- Performs syncing from the subjective header up to the network head
- Syncs by requesting missing headers from Exchange or
- By accessing cache of pending network headers received from PubSub
2. Receives new headers from PubSub subnetwork (s.incomingNetHead)
- Once received, tries to append it to the store
- Or, if not adjacent to head of the store,
- verifies against the latest known subjective header
- adds the header to pending cache, thereby making it the latest known subjective header
- and triggers syncing loop to catch up to that point.
func NewSyncer ¶
func NewSyncer(exchange header.Exchange, store header.Store, sub header.Subscriber, blockTime time.Duration) *Syncer
NewSyncer creates a new instance of Syncer.
Click to show internal directories.
Click to hide internal directories.