zebrad::components::sync

Constant MIN_CHECKPOINT_CONCURRENCY_LIMIT

source
pub const MIN_CHECKPOINT_CONCURRENCY_LIMIT: usize = zebra_consensus::MAX_CHECKPOINT_HEIGHT_GAP; // 400usize
Expand description

A lower bound on the user-specified checkpoint verification concurrency limit.

Set to the maximum checkpoint interval, so the pipeline holds around a checkpoint’s worth of blocks.

§Security

If a malicious node is chosen for an ObtainTips or ExtendTips request, it can provide up to 500 malicious block hashes. These block hashes will be distributed across all available peers. Assuming there are around 50 connected peers, the malicious node will receive approximately 10 of those block requests.

Malicious deserialized blocks can take up a large amount of RAM, see super::inbound::downloads::MAX_INBOUND_CONCURRENCY and #1880 for details. So we want to keep the lookahead limit reasonably small.

Once these malicious blocks start failing validation, the syncer will cancel all the pending download and verify tasks, drop all the blocks, and start a new ObtainTips with a new set of peers.