Expand description
The syncer downloads and verifies large numbers of blocks from peers to Zebra.
It is used when Zebra is a long way behind the current chain tip.
Modules§
- downloads 🔒
- A download stream for Zebra’s block syncer.
- end_
of_ support - End of support checking task.
- gossip 🔒
- A task that gossips newly verified
block::Hash
es to peers. - progress 🔒
- Progress tracking for blockchain syncing.
- recent_
sync_ 🔒lengths - A channel which holds a list of recent syncer response lengths.
- status 🔒
- Syncer chain tip status, based on recent block locator responses from peers.
Structs§
- Chain
Sync - Checked
Tip 🔒 - Helps work around defects in the bitcoin protocol by checking whether the returned hashes actually extend a chain tip.
- Config
- Sync configuration section.
- Recent
Sync Lengths - A helper type which holds a list of recent syncer response lengths. These sync lengths can be used to work out if Zebra has reached the end of the chain.
- Sync
Status - A helper type to determine if the synchronizer has likely reached the chain tip.
Enums§
- Block
Gossip Error - Errors that can occur when gossiping committed blocks
Constants§
- BLOCK_
DOWNLOAD_ 🔒RETRY_ LIMIT - Controls how many times we will retry each block download.
- BLOCK_
DOWNLOAD_ 🔒TIMEOUT - Controls how long we wait for a block download request to complete.
- BLOCK_
VERIFY_ 🔒TIMEOUT - Controls how long we wait for a block verify request to complete.
- DEFAULT_
CHECKPOINT_ CONCURRENCY_ LIMIT - The default for the user-specified lookahead limit.
- FANOUT 🔒
- Controls the number of peers used for each ObtainTips and ExtendTips request.
- FINAL_
CHECKPOINT_ 🔒BLOCK_ VERIFY_ TIMEOUT - A shorter timeout used for the first few blocks after the final checkpoint.
- FINAL_
CHECKPOINT_ 🔒BLOCK_ VERIFY_ TIMEOUT_ LIMIT - The number of blocks after the final checkpoint that get the shorter timeout.
- GENESIS_
TIMEOUT_ 🔒RETRY - Controls how long we wait to retry a failed attempt to download and verify the genesis block.
- MAX_
TIPS_ RESPONSE_ HASH_ COUNT - The expected maximum number of hashes in an ObtainTips or ExtendTips response.
- MIN_
CHECKPOINT_ CONCURRENCY_ LIMIT - A lower bound on the user-specified checkpoint verification concurrency limit.
- MIN_
CONCURRENCY_ LIMIT - A lower bound on the user-specified concurrency limit.
- PEER_
GOSSIP_ DELAY - Controls how long we wait between gossiping successive blocks or transactions.
- SYNC_
RESTART_ 🔒DELAY - Controls how long we wait to restart syncing after finishing a sync run.
- TIPS_
RESPONSE_ TIMEOUT - Controls how long we wait for a tips response to return.
- VERIFICATION_
PIPELINE_ SCALING_ MULTIPLIER - A multiplier used to calculate the extra number of blocks we allow in the verifier, state, and block commit pipelines, on top of the lookahead limit.
Functions§
- gossip_
best_ tip_ block_ hashes - Run continuously, gossiping newly verified
block::Hash
es to peers. - show_
block_ chain_ progress - Logs Zebra’s estimated progress towards the chain tip every minute or so, and updates a terminal progress bar every few seconds.