1use serde::{Deserialize, Serialize};
2
3use crate::block::{Block, Height};
4use crate::certificate::QuorumCertificate;
5use crate::epoch::EpochNumber;
6use crate::view::ViewNumber;
7
8pub const MAX_SYNC_BATCH: u64 = 100;
10
11#[derive(Debug, Clone, Serialize, Deserialize)]
13pub enum SyncRequest {
14 GetBlocks {
16 from_height: Height,
17 to_height: Height,
18 },
19 GetStatus,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25pub enum SyncResponse {
26 Blocks(Vec<(Block, Option<QuorumCertificate>)>),
29 Status {
31 last_committed_height: Height,
32 current_view: ViewNumber,
33 epoch: EpochNumber,
34 },
35 Error(String),
37}