21 lines
1012 B
Rust
21 lines
1012 B
Rust
//! Constants shared by some Zebra node services.
|
|
|
|
/// We limit the maximum number of blocks in each checkpoint. Each block uses a
|
|
/// constant amount of memory for the supporting data structures and futures.
|
|
///
|
|
/// We choose a checkpoint gap that allows us to verify one checkpoint for
|
|
/// every `ObtainTips` or `ExtendTips` response.
|
|
///
|
|
/// `zcashd`'s maximum `FindBlocks` response size is 500 hashes. `zebrad` uses
|
|
/// 1 hash to verify the tip, and discards 1-2 hashes to work around `zcashd`
|
|
/// bugs. So the most efficient gap is slightly less than 500 blocks.
|
|
pub const MAX_CHECKPOINT_HEIGHT_GAP: usize = 400;
|
|
|
|
/// We limit the memory usage and download contention for each checkpoint,
|
|
/// based on the cumulative size of the serialized blocks in the chain.
|
|
///
|
|
/// Deserialized blocks (in memory) are slightly larger than serialized blocks
|
|
/// (on the network or disk). But they should be within a constant factor of the
|
|
/// serialized size.
|
|
pub const MAX_CHECKPOINT_BYTE_COUNT: u64 = 32 * 1024 * 1024;
|